LET ME HELP YOU
Welcome to MkDocs
For full documentation visit mkdocs.org官网.
MkDocs 使用说明
介绍
MkDocs 是一个静态网站生成器,专为构建项目文档而设计。它使用 Markdown 文件和一个 YAML 配置文件,生成一个漂亮的文档网站。其主要特点包括:
- 使用 Markdown 编写文档
- 支持多种主题
- 实时预览
- 部署到 GitHub Pages
安装
首先,你需要确保已经安装了 Python。然后,通过以下命令安装 MkDocs:
pip install mkdocs
你也可以选择安装一个主题,例如 mkdocs-material
:
pip install mkdocs-material
创建项目
使用以下命令创建一个新的 MkDocs 项目:
mkdocs new my-project
cd my-project
这将生成一个包含基本项目结构的目录 my-project
。
项目结构
典型的 MkDocs 项目结构如下:
my-project/
mkdocs.yml # 配置文件
docs/
index.md # 主页面内容
配置文件 mkdocs.yml
mkdocs.yml
是 MkDocs 的配置文件,包含站点的基本设置。以下是一个简单的示例:
site_name: 我的文档
nav:
- 首页: index.md
- 介绍: about.md
theme: material
配置选项
site_name
: 站点的名称,将显示在网站的导航栏中。nav
: 定义导航栏的内容和结构。可以是文件路径的列表,也可以是嵌套的目录结构。theme
: 定义使用的主题。可以是内置主题,也可以是第三方主题。
添加内容
你可以在 docs
目录中添加 Markdown 文件。例如,创建一个 about.md
文件:
# 介绍
这是一个关于项目的介绍。
还可以创建子目录来组织内容,例如:
docs/
index.md
about.md
user-guide/
installation.md
usage.md
在 mkdocs.yml
中更新导航结构:
nav:
- 首页: index.md
- 介绍: about.md
- 用户指南:
- 安装: user-guide/installation.md
- 使用: user-guide/usage.md
运行开发服务器
在项目目录中运行以下命令以启动内置的开发服务器:
mkdocs serve
然后在浏览器中打开 http://127.0.0.1:8000/
查看效果。开发服务器会实时更新你所做的任何更改。
mkdocs serve
命令可以自定义 IP 和端口。你可以使用 -a
或 --dev-addr
选项来指定 IP 地址和端口。默认情况下,mkdocs serve
会在 127.0.0.1:8000
上启动服务器。以下是一些例子:
示例用法
-
指定端口:
bash mkdocs serve -a 127.0.0.1:9000
这将会在本地 IP127.0.0.1
上的端口9000
启动开发服务器。 -
指定 IP 和端口:
bash mkdocs serve -a 192.168.1.100:8080
这将在局域网内的 IP192.168.1.100
上的端口8080
启动开发服务器。这样你可以在同一个网络内的其他设备上访问文档站点。 -
监听所有网络接口:
bash mkdocs serve -a 0.0.0.0:8000
这将会监听所有网络接口上的端口8000
,使得文档站点可以通过任意网络接口访问。
常见问题
-
防火墙或网络配置问题: 如果你在指定 IP 和端口后无法访问开发服务器,请检查你的防火墙设置和网络配置,确保所选的端口和 IP 可用并未被其他应用占用。
-
权限问题: 在一些系统上,绑定到特定的端口(例如,低于 1024 的端口)可能需要管理员权限。如果遇到权限问题,可以尝试使用高于 1024 的端口,或者以管理员身份运行命令。
通过这些设置,你可以灵活地配置 MkDocs 开发服务器,以满足不同的开发和测试需求。
构建站点
当你准备好发布文档时,运行以下命令以生成静态文件:
mkdocs build
这将在 site
目录中生成静态文件,可以部署到任何支持静态文件的网站服务器上。
自定义主题
你可以通过修改 mkdocs.yml
文件中的 theme
部分来自定义主题。例如,使用 mkdocs-material
主题:
theme:
name: material
自定义 CSS 和 JavaScript
你还可以通过添加自定义 CSS 或 JavaScript 文件来自定义外观。在 docs
目录中创建 stylesheets
和 javascripts
文件夹,并添加相应的文件:
docs/
stylesheets/
extra.css
javascripts/
extra.js
在 mkdocs.yml
中引用这些文件:
extra_css:
- stylesheets/extra.css
extra_javascript:
- javascripts/extra.js
配置插件
MkDocs 支持使用插件来扩展其功能。插件可以提供额外的功能,如搜索、版本控制、多语言支持等。例如,可以使用 search
插件来添加搜索功能:
plugins:
- search
下面是如何使用插件的详细说明,包括一些常见插件的示例。
安装插件
要使用 MkDocs 插件,你需要通过 pip
安装相应的插件包。例如,安装搜索插件:
pip install mkdocs-plugin-search
配置插件
安装插件后,你需要在 mkdocs.yml
文件中进行配置。例如,启用搜索插件:
site_name: 我的文档
theme:
name: material
plugins:
- search
常用插件示例
1. MkDocs Search
MkDocs Search 插件为网站添加了搜索功能。此插件通常默认包含在 MkDocs 安装包中,但如果你使用自定义主题或需要高级搜索功能,可以显式地配置它。
安装:
pip install mkdocs-plugin-search
配置:
plugins:
- search
2. MkDocs Redirects
MkDocs Redirects 插件允许你在文件路径更改时设置重定向,以避免链接断开。
安装:
pip install mkdocs-redirects
配置:
plugins:
- redirects
定义重定向规则:
redirects:
old-path.md: new-path.md
3. MkDocs GitHub Pages
MkDocs GitHub Pages 插件可以帮助你将 MkDocs 网站自动部署到 GitHub Pages。
安装:
pip install mkdocs-gh-pages
配置:
plugins:
- gh-deploy
4. MkDocs Minify
MkDocs Minify 插件可以在构建过程中压缩 HTML 文件,以减少文件大小和加载时间。
安装:
pip install mkdocs-minify-plugin
配置:
plugins:
- minify
5. MkDocs Versioning
MkDocs Versioning 插件允许你为文档创建多个版本,并在站点中进行切换。
安装:
pip install mike
配置:
plugins:
- mike
自定义插件
如果现有的插件不能满足你的需求,你还可以编写自己的 MkDocs 插件。下面是一个简单的示例插件,它会在每个页面的顶部添加一个自定义的注释。
- 创建插件目录和文件
在你的项目中创建一个 plugins
目录,并在其中创建一个 my_plugin.py
文件:
my-project/ mkdocs.yml docs/ plugins/ my_plugin.py
- 编写插件代码
在 my_plugin.py
文件中编写插件代码:
```python from mkdocs.plugins import BasePlugin from mkdocs.config import config_options
class MyPlugin(BasePlugin): config_scheme = ( ('note', config_options.Type(str, default='这是一个自定义注释')), )
def on_page_markdown(self, markdown, **kwargs):
note = self.config['note']
return f'{note}\n\n{markdown}'
```
- 在
mkdocs.yml
中启用插件
```yaml site_name: 我的文档
theme: name: material
plugins: - search - my_plugin: note: "警告:这只是一个示例!" ```
- 将插件路径添加到
PYTHONPATH
启动开发服务器前,需要将插件路径添加到 PYTHONPATH
:
bash export PYTHONPATH="${PYTHONPATH}:/path/to/my-project/plugins" mkdocs serve
插件钩子
MkDocs 插件可以使用多种钩子来修改站点的各个部分:
on_config
: 修改配置on_pre_build
: 构建前的操作on_page_markdown
: 修改页面的 Markdown 内容on_page_content
: 修改页面的 HTML 内容on_post_build
: 构建后的操作
部署到 GitHub Pages
MkDocs 提供了一个简单的命令可以将站点部署到 GitHub Pages。首先,确保你已经初始化了 git 仓库并添加了远程仓库。然后运行:
mkdocs gh-deploy
这将构建站点并将其推送到 gh-pages
分支。
手动部署
如果你不使用 GitHub Pages,还可以手动部署生成的静态文件。将 site
目录中的内容上传到你选择的服务器或托管服务上即可。
高级用法
多语言支持
MkDocs 本身不直接支持多语言,但可以通过插件或手动配置实现。例如,可以使用 mkdocs-multirepo-plugin
:
plugins:
- multirepo:
repo:
- name: en
url: git@github.com:user/repo-en.git
- name: zh
url: git@github.com:user/repo-zh.git
自动生成文档
可以使用工具如 pydoc
或 sphinx
来自动生成代码文档,然后集成到 MkDocs 项目中。例如,使用 sphinx
生成 HTML 文档并复制到 docs
目录中。
集成 CI/CD
可以使用 CI/CD 工具如 GitHub Actions 或 GitLab CI 自动化文档构建和部署。以下是一个 GitHub Actions 配置示例:
name: Deploy MkDocs
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: pip install mkdocs mkdocs-material
- name: Build MkDocs site
run: mkdocs build
- name: Deploy to GitHub Pages
run: mkdocs gh-deploy --force
更多信息
欲了解更多信息,请参阅 MkDocs 官方文档。那里有更详细的设置选项和高级用法介绍。