Skip to content

openeuler-mirror/openEuler-portal

Repository files navigation

openEuler-portal

openEuler 社区官网的源码仓库

目录结构

官网使用vitepress作为基础框架搭建,采用vue3+typescript。大部分功能仅通过静态文件渲染,只有少部分功能模块(日历、CVE、搜索、筛选)需要后端部署配合运行。

  app
    ├─ .vitepress
      ├─ public // 静态资源文件,不参与打包编译
      ├─ src // 业务
        ├─ api // 接口
        ├─ assets // 资源文件
        ├─ components // 组件
        ├─ i18 // 国际化
        ├─ shared // 公用方法/样式
        ├─ stores // 状态管理
        ├─ views // 业务vue文件
    ├─ en // 英文页面
    ├─ ru // 俄文页面
    ├─ zh // 中文页面

参与贡献

  1. Fork 本仓库
  2. 新建 feat/xxx 分支
  3. 提交代码
  4. 新建 Pull Request

注意:请使用git rebase -i合并 commit,确保每次 pr 只有一次 commit。操作流程请参考相关文档

规范说明

命名

命名形式

  1. camelCase: 驼峰式
  2. kebab-case: 短横线连接式
  3. PascalCase: 帕斯卡命名式
  4. Snake: 下划线连接式

说明

  1. 文件夹以及文件命名(除 Vue SFC)采用kebab-case
  2. Vue SFC 文件命名使用PascalCase, 在该文件中使用的 Vue 组件也使用PascalCase
  3. Vue 组件中emit事件使用kebab-case
  4. 变量以及方法命名使用camelCase, 资源文件使用Snake表明 light/dark, zh/en/ru,,eg: homeBanner_light_zh, 其中风格在前,语言在后
  5. CSS 使用kebab-case命名
  6. Icon 组件引入时增加 Icon 前缀,eg:import IconDownload from '~icons/app/download'

开发规范

  1. 所有接口类方法请写在app/.vitepress/src/api中,并按照jsdoc 注释规范给出注释,不同模块接口请按文件进行区分, eg: api-cve.ts
  2. 公共 utils 方法请按jsdoc 注释规范给出注释
  3. 变量命名做到见名知义,方法命名使用动词或动宾结构, eg: import warningImg from '@/assets/icons/warning.png, const getUserEmail=()=>{}
  4. 调用接口获取数据请使用try {} catch(error) {}进行校验
  5. 约束for...in的使用, 可以使用Object.keys().forEach
  6. 使用prettier插件作为格式化工具
  7. 提交之前请先进行 eslint 检查: 执行脚本,运行pnpm lint。确认无问题后提交。项目工程的git hooks 已配置相关校验,如git commit不成功,请查看相关错误信息,并进行修改
  8. git commit信息请尽量参照相关规范
  9. 其他注意事项请参考业界相关通用开发规范说明