export const metadata = { title: '开发文档指南', description: '了解如何在 ScienceOL 中创建和维护开发文档', }
本指南将帮助你了解如何在 SciecneOL Docs 中创建、修改和维护文档。遵循这些指南可确保文档的一致性和高质量。
文档项目的 Github 仓库地址为:[ScienceOL/docs](https://github.com/ScienceOL/docs),请自行完成仓库的克隆操作。ScienceOL 的文档使用 MDX(Markdown + JSX)格式,并采用以下目录结构组织:
/src/app/
├── (cn)/ # 中文文档
│ ├── workflow/ # 工作流相关文档
│ ├── development/ # 开发相关文档
│ └── ...
└── en/ # 英文文档(结构类似)
每个文档目录通常包含以下文件:
page.mdx- 目录主页layout.tsx- 定义页面布局和导航- 子目录及其对应
page.mdx
创建新文档之前,你应当已经在本地启动文档开发环境。clone 本项目并在根目录执行 yarn install && yarn dev 即可启动 docs 开发环境。
创建一个新的文档页面需遵循以下步骤:
- 在适当的目录结构下创建
.mdx文件,如:
/src/app/(cn)/development/your-feature/page.mdx
- 添加必要的前置元数据:
export const metadata = {
title: '你的文档标题',
description: '简短的描述',
}
{/* 可选添加 */}
export const sections = [
{ title: '第一部分', id: 'di-yi-bu-fen' },
{ title: 'id 必须与 title 关联', id: 'id-bi-xu-yu-title-guan-lian' },
]- 在相应模块父目录的
navigation.ts文件中添加导航链接。
相应模块父目录是指 /app 路径下的二级目录,例如对于 /app/(cn)/development/your-feature/page.mdx,相应的父目录为 /app/(cn)/development/
{
title: '文档类别',
links: [
// ... 现有链接
{ title: '你的文档', href: '/development/your-feature' },
],
}为保持文档一致性和质量,请遵循以下编写指南:
- 标题层次:使用单个
#作为页面主标题,##作为主要章节,###作为子章节,以此类推。
-
命名约定:
- 文件名统一使用
page.mdx - 目录名使用小写字母和连字符,如
api-reference
- 文件名统一使用
-
内容格式:
- 使用简洁明了的语言
- 代码块应该指定语言,如 ```tsx
- 添加适当的注释和说明
- 对于重要信息,使用组件如
<Note>或<Warn>突出显示
-
国际化:
- 中文内容放在
(cn)目录下 - 英文内容放在
en目录下,与(cn)目录对应
- 中文内容放在
项目提供了多种可在 MDX 中使用的组件,以增强文档效果:
以下是一些你可以在文档中使用的核心组件:
<Note>- 提示信息<Warn>- 警告信息<CodeGroup>- 代码分组展示<Properties>- 属性列表<Propertie>- 单个属性<Row>和<Col>- 布局组件<Button>- 按钮组件
你也可以为标题添加 API 信息,例如:
## Example {{ tag: 'POST', label: '/v1/example' }}<Note>
这是一个提示信息。
</Note>
<Warn>
这是一个警告信息。
</Warn>
<CodeGroup title="示例代码组" tag="GET" label="/v1/example">
```tsx
function Example() {
return <div>Example</div>
}
```
```python
def Example() -> None:
return
```
</CodeGroup>
<Properties>
<Property name="properties" type="string">
properties 用于包裹在 propertie 组的外层
</Property>
<Property name="propertie" type="string">
propertie 描述单个属性
</Property>
</Properties>
代码块应当指定语言,并可以添加标题和其他属性:
```tsx {{ title: '示例代码' }}
function Example() {
return <div>Example</div>
}
对应的展示效果如下:
function Example() {
return <div>Example</div>
}-
从
main分支创建新分支,使用以下命名格式:- 新功能文档:
feat/docs-feature-name - 文档错误修复:
fix/docs-issue-description
- 新功能文档:
-
在本地修改文档并测试
-
提交代码时使用清晰的提交信息,如:
docs: add workflow tutorialfix: correct api endpoint information
-
推送分支到远程仓库
-
创建 Pull Request 到
main分支 -
在 PR 描述中包含:
- 变更摘要
- 相关的 issue 链接(如有)
- 任何需要审阅者特别注意的地方
- 等待至少一个审阅者批准你的 PR
- 解决审阅过程中提出的任何问题
- PR 批准后,它将被合并到
main分支
文档合并到 main 分支后,将自动部署到 https://cloudocs.netlify.app/