Skip to content

🐍 Python 示例

展示 My Docs 在 Python 项目中的实际应用案例。

基础示例

示例 1:简单文档项目

# docs/mkdocs.yml
site_name: My Project
nav:
  - Home: index.md
  - About: about.md

# docs/index.md
# 欢迎来到 My Project

这是一个示例项目文档

示例 2:带代码高亮的文档

# API 使用示例

## 基本用法
```python
import requests

def get_data():
    response = requests.get('https://api.example.com/data')
    return response.json()
```

## 高级用法
```python
class DataProcessor:
    def __init__(self, api_url):
        self.api_url = api_url

    def process(self):
        data = self.get_data()
        return self.analyze(data)
```

实战项目示例

项目结构

my-project/
├── docs/
│   ├── mkdocs.yml
│   ├── index.md
│   ├── guide/
│   │   ├── installation.md
│   │   └── usage.md
│   └── api/
│       └── reference.md
├── src/
│   └── my_project/
└── tests/

完整配置示例

# mkdocs.yml
site_name: My Awesome Project
site_url: https://my-project.com
repo_url: https://github.com/user/my-project

theme:
  name: material
  palette:
    primary: teal
    accent: pink

nav:
  - 首页: index.md
  - 指南:
    - 安装: guide/installation.md
    - 使用: guide/usage.md
  - API 参考: api/reference.md

markdown_extensions:
  - pymdownx.highlight
  - pymdownx.superfences

高级功能示例

多标签代码示例

# 多语言示例

=== "Python"
    ```python
    def hello_python():
        print("Hello from Python!")
    ```

=== "JavaScript"
    ```javascript
    function helloJS() {
        console.log("Hello from JavaScript!");
    }
    ```

=== "Bash"
    ```bash
    echo "Hello from Bash!"
    ```

数学公式支持

# 数学公式示例

$$
E = mc^2
$$

行内公式: $f(x) = x^2$

图表示例

graph LR
    A[开始] --> B{条件判断}
    B -->|是| C[执行操作]
    B -->|否| D[结束]
    C --> D

集成示例

与 Jupyter Notebook 集成

# mkdocs.yml
plugins:
  - mkdocs-jupyter:
      execute: true
      include_source: true

API 文档生成

# 自动生成 API 文档示例
def generate_api_docs(module_path):
    """自动生成模块的 API 文档"""
    import inspect
    import os

    docs = []
    for name, obj in inspect.getmembers(module_path):
        if inspect.isclass(obj) or inspect.isfunction(obj):
            docs.append(f"## {name}\n\n{obj.__doc__}\n")

    return "\n".join(docs)

部署示例

GitHub Actions 自动化部署

# .github/workflows/deploy.yml
name: Deploy Docs
on:
  push:
    branches: [ main ]

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

Vercel 部署配置

// vercel.json
{
  "version": 2,
  "builds": [
    {
      "src": "mkdocs.yml",
      "use": "@vercel/static-build"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "/site/$1"
    }
  ]
}

最佳实践示例

文档组织结构

docs/
├── overview/          # 项目概述
├── getting-started/    # 快速开始
├── guides/             # 使用指南
├── api/               # API 参考
├── examples/          # 代码示例
└── faq/               # 常见问题

内容质量检查

# docs/check_quality.py
import os
import re

def check_markdown_quality(filepath):
    """检查 Markdown 文件质量"""
    with open(filepath, 'r', encoding='utf-8') as f:
        content = f.read()

    issues = []

    # 检查标题层级
    if not re.search(r'^# ', content, re.MULTILINE):
        issues.append("缺少一级标题")

    # 检查代码块
    code_blocks = re.findall(r'```.*?```', content, re.DOTALL)
    if not code_blocks:
        issues.append("建议添加代码示例")

    return issues

性能优化示例

构建优化配置

# mkdocs.yml
extra_css:
  - styles/optimized.css

extra_javascript:
  - js/optimized.js

markdown_extensions:
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
  - pymdownx.superfences

图片优化

# 优化图片使用

<!-- 使用 WebP 格式 -->
![示例图片](images/example.webp){ loading=lazy }

<!-- 响应式图片 -->
<img srcset="
  images/example-320w.jpg 320w,
  images/example-640w.jpg 640w,
  images/example-1024w.jpg 1024w
" sizes="(max-width: 600px) 100vw, 50vw" 
src="images/example-640w.jpg" alt="示例">

扩展功能示例

自定义插件

# plugins/custom_plugin.py
from mkdocs.plugins import BasePlugin

class CustomPlugin(BasePlugin):
    def on_page_markdown(self, markdown, page, config, files):
        # 自定义 Markdown 处理
        return markdown.replace('{{version}}', '1.0.0')

主题定制

/* styles/extra.css */
:root {
  --md-primary-fg-color: #2E7D32;
  --md-accent-fg-color: #00C853;
}

.md-header {
  background: linear-gradient(45deg, #2E7D32, #4CAF50);
}

查看更多示例: 完整项目示例