# 文档系统使用指南

本项目已完成完整的文档系统搭建，使用 **MkDocs + Material 主题 + mkdocstrings** 构建。

## 📚 文档系统特性

### ✅ 已完成功能

1. **完整的文档结构**
   - 首页和快速开始
   - 详细的用户指南
   - 教程与示例
   - 自动生成的 API 文档
   - 开发者指南

2. **现代化主题**
   - Material Design 风格
   - 支持中文
   - 深色/浅色模式切换
   - 响应式设计

3. **强大的功能**
   - 自动从代码生成 API 文档
   - 搜索功能
   - 代码高亮
   - 数学公式支持（MathJax）
   - 导航标签

4. **打包支持**
   - `setup.py` 和 `pyproject.toml` 配置
   - 支持 `pip install -e .` 开发模式
   - 支持 `pip install .` 常规安装
   - MIT License

## 🚀 使用文档系统

### 本地预览文档

```bash
# 启动开发服务器
pixi run mkdocs serve

# 访问 http://localhost:8000
```

### 构建静态网站

```bash
# 构建文档到 site/ 目录
pixi run mkdocs build
```

### 部署到 GitHub Pages

```bash
# 自动构建并部署
pixi run mkdocs gh-deploy
```

## 📁 文档结构

```
docs/
├── index.md                     # 首页
├── getting-started.md           # 快速开始
├── installation.md              # 安装指南
├── user-guide/                  # 用户指南
│   ├── index.md
│   ├── fragmenter-usage.md      # MacrolactoneFragmenter 使用
│   ├── ring-numbering.md        # 环编号系统
│   ├── visualization.md         # 可视化功能
│   ├── batch-processing.md      # 批量处理
│   └── data-export.md           # 数据导出
├── tutorials/                   # 教程
│   ├── index.md
│   ├── basic-tutorial.md
│   ├── advanced-usage.md
│   └── use-cases.md
├── api/                         # API 文档（自动生成）
│   ├── index.md
│   ├── macrolactone-fragmenter.md
│   ├── fragment-dataclass.md
│   ├── ring-numbering.md
│   ├── ring-visualization.md
│   └── utilities.md
├── development/                 # 开发者指南
│   ├── index.md
│   ├── contributing.md
│   ├── project-structure.md
│   └── testing.md
├── about/                       # 关于
│   ├── index.md
│   ├── changelog.md
│   └── license.md
├── stylesheets/                 # 自定义样式
│   └── extra.css
└── javascripts/                 # 自定义脚本
    └── mathjax.js
```

## 📝 如何添加新文档

### 1. 创建 Markdown 文件

在 `docs/` 目录下创建新的 `.md` 文件：

```bash
# 例如：创建新的教程
touch docs/tutorials/my-new-tutorial.md
```

### 2. 编辑文件内容

使用 Markdown 格式编写内容：

```markdown
# 我的新教程

## 简介

这是一个新教程...

## 示例代码

\`\`\`python
from src.macrolactone_fragmenter import MacrolactoneFragmenter

fragmenter = MacrolactoneFragmenter(ring_size=16)
\`\`\`
```

### 3. 添加到导航

编辑 `mkdocs.yml`，在 `nav` 部分添加链接：

```yaml
nav:
  - 教程与示例:
    - tutorials/index.md
    - 基础教程: tutorials/basic-tutorial.md
    - 我的新教程: tutorials/my-new-tutorial.md  # 新添加
```

### 4. 预览更改

```bash
pixi run mkdocs serve
```

## 🎨 自定义文档

### 修改主题颜色

编辑 `mkdocs.yml` 中的 `theme.palette` 部分：

```yaml
theme:
  palette:
    primary: indigo  # 修改为其他颜色：red, blue, green 等
    accent: indigo
```

### 添加自定义 CSS

编辑 `docs/stylesheets/extra.css`：

```css
/* 自定义样式 */
.my-custom-class {
    color: red;
}
```

### 修改导航结构

编辑 `mkdocs.yml` 中的 `nav` 部分。

## 📖 自动 API 文档

本项目使用 `mkdocstrings` 自动从 Python 代码生成 API 文档。

### 如何添加 API 文档

在 `docs/api/` 目录创建新的 `.md` 文件，使用特殊语法：

```markdown
# 我的模块 API

::: src.my_module.MyClass
    options:
      show_root_heading: true
      show_source: true
      heading_level: 2
```

这会自动提取 `src/my_module.py` 中 `MyClass` 的 docstring 并生成文档。

### Docstring 格式

使用 Google 风格的 docstring：

```python
def my_function(param1: str, param2: int) -> bool:
    """
    函数简短描述。
    
    详细描述...
    
    Args:
        param1: 第一个参数说明
        param2: 第二个参数说明
    
    Returns:
        返回值说明
    
    Raises:
        ValueError: 何时抛出此异常
    
    Example:
        >>> my_function("test", 42)
        True
    """
    pass
```

## 🔍 文档特性

### 代码块

支持语法高亮：

\`\`\`python
from src.macrolactone_fragmenter import MacrolactoneFragmenter
fragmenter = MacrolactoneFragmenter(ring_size=16)
\`\`\`

### 提示框

使用 admonition：

```markdown
!!! note "注意"
    这是一个注意提示。

!!! tip "提示"
    这是一个小贴士。

!!! warning "警告"
    这是一个警告。
```

### 标签页

使用 tabbed：

```markdown
=== "Python"
    \`\`\`python
    print("Hello")
    \`\`\`

=== "Bash"
    \`\`\`bash
    echo "Hello"
    \`\`\`
```

### 数学公式

使用 MathJax：

```markdown
行内公式：\\( E = mc^2 \\)

块公式：
\\[
\\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}
\\]
```

## 📦 打包和发布

### 本地安装

```bash
# 开发模式
pip install -e .

# 常规安装
pip install .
```

### 构建分发包

```bash
# 安装构建工具
pip install build

# 构建
python -m build

# 会生成：
# dist/macrolactone_fragmenter-1.2.0.tar.gz
# dist/macrolactone_fragmenter-1.2.0-py3-none-any.whl
```

### 发布到 PyPI

```bash
# 安装 twine
pip install twine

# 上传到 PyPI
twine upload dist/*

# 或先上传到 TestPyPI 测试
twine upload --repository testpypi dist/*
```

## 🚀 持续集成（CI）

可以配置 GitHub Actions 自动构建和部署文档。

创建 `.github/workflows/docs.yml`：

```yaml
name: Deploy Docs

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: 3.x
      - run: pip install mkdocs-material mkdocstrings[python]
      - run: mkdocs gh-deploy --force
```

## ℹ️ 注意事项

1. **RDKit 依赖**：PyPI 安装后仍需通过 conda 安装 RDKit
2. **文档更新**：修改代码后记得更新 docstring
3. **锚点链接**：使用英文标题更容易创建稳定的锚点
4. **图片路径**：放在 `docs/assets/images/` 目录

## 📊 项目状态

✅ 所有任务已完成：

1. ✅ 安装 MkDocs、Material 主题、mkdocstrings
2. ✅ 创建完整的文档结构
3. ✅ 自动生成 API 文档
4. ✅ 创建 setup.py 和 pyproject.toml
5. ✅ 支持 pip install 安装
6. ✅ 更新 README.md
7. ✅ 测试文档构建

## 🎉 完成！

文档系统已完全搭建完成，您可以：

1. 运行 `pixi run mkdocs serve` 查看文档
2. 使用 `pip install -e .` 安装项目
3. 继续完善教程和示例内容
4. 准备发布到 PyPI

---

**祝您使用愉快！** 🚀

