代码拉取完成,页面将自动刷新
openEuler 社区官网的源码仓库
官网使用vitepress
作为基础框架搭建,采用vue3
+typescript
。大部分功能仅通过静态文件渲染,只有少部分功能模块(日历、CVE、搜索、筛选)需要后端部署配合运行。
app
├─ .vitepress
├─ public // 静态资源文件,不参与打包编译
├─ src // 业务
├─ api // 接口
├─ assets // 资源文件
├─ components // 组件
├─ i18 // 国际化
├─ shared // 公用方法/样式
├─ stores // 状态管理
├─ views // 业务vue文件
├─ en // 英文页面
├─ ru // 俄文页面
├─ zh // 中文页面
feat/xxx
分支注意:请使用git rebase -i
合并 commit,确保每次 pr 只有一次 commit。操作流程请参考相关文档
camelCase
: 驼峰式kebab-case
: 短横线连接式PascalCase
: 帕斯卡命名式Snake
: 下划线连接式kebab-case
PascalCase
, 在该文件中使用的 Vue 组件也使用PascalCase
emit
事件使用kebab-case
camelCase
, 资源文件使用Snake
表明 light/dark, zh/en/ru,,eg: homeBanner_light_zh
, 其中风格在前,语言在后kebab-case
命名import IconDownload from '~icons/app/download'
app/.vitepress/src/api
中,并按照jsdoc 注释规范给出注释,不同模块接口请按文件进行区分, eg: api-cve.ts
import warningImg from '@/assets/icons/warning.png
, const getUserEmail=()=>{}
try {} catch(error) {}
进行校验for...in
的使用, 可以使用Object.keys().forEach
prettier
插件作为格式化工具pnpm lint
。确认无问题后提交。项目工程的git hooks 已配置相关校验,如git commit
不成功,请查看相关错误信息,并进行修改git commit
信息请尽量参照相关规范此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型