MkDocs 配置和优化指南¶
目录¶
完整配置文件¶
mkdocs.yml¶
site_name: 我的文档
site_description: 使用 MkDocs 构建的文档站点
site_url: https://seaflynn.github.io/doc-collect/
theme:
name: material
language: zh # 设置为中文
features:
# 导航功能
- navigation.tabs # 顶部标签页
- navigation.tabs.sticky # 固定标签页
- navigation.sections # 导航分组
- navigation.expand # 展开所有导航
- navigation.top # 回到顶部按钮
- navigation.instant # 即时加载页面
- navigation.tracking # 地址栏追踪锚点
- navigation.indexes # 分组主页
# 搜索功能
- search.highlight # 搜索高亮
- search.share # 搜索分享
- search.suggest # 搜索建议
# 内容功能
- content.tabs.link # 内容标签页链接
- content.code.copy # 代码复制按钮
- content.code.annotate # 代码注释
- content.action.edit # 编辑此页
- content.action.view # 查看源码
# 头部功能
- header.autohide # 滚动时自动隐藏头部
# 表格功能
- content.table # 表格排序
palette:
# 浅色模式
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/brightness-7
name: 切换至深色模式
# 深色模式
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/brightness-4
name: 切换至浅色模式
icon:
repo: fontawesome/brands/github
edit: material/pencil
view: material/eye
# 仓库信息
repo_url: https://github.com/seaflyNN/doc-collect
repo_name: seaflyNN/doc-collect
edit_uri: edit/main/docs/
markdown_extensions:
# 基础扩展
- abbr # 缩写
- admonition # 警告框
- attr_list # 属性列表
- def_list # 定义列表
- footnotes # 脚注
- md_in_html # HTML中的Markdown
- tables # 表格
- toc:
permalink: true
toc_depth: 3
# PyMdown 扩展
- pymdownx.arithmatex: # 数学公式
generic: true
- pymdownx.betterem: # 改进的强调
smart_enable: all
- pymdownx.caret # 插入符号
- pymdownx.details # 详情折叠
- pymdownx.emoji: # 表情符号
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.highlight: # 代码高亮
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
- pymdownx.inlinehilite # 行内代码高亮
- pymdownx.keys # 键盘按键
- pymdownx.mark # 标记
- pymdownx.smartsymbols # 智能符号
- pymdownx.snippets # 代码片段
- pymdownx.superfences: # 代码围栏
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.tabbed: # 标签页
alternate_style: true
- pymdownx.tasklist: # 任务列表
custom_checkbox: true
- pymdownx.tilde # 删除线
# 插件配置
plugins:
- search:
separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
- git-revision-date-localized:
enable_creation_date: true
type: datetime
locale: zh
# 额外配置
extra:
generator: false # 隐藏"Made with Material for MkDocs"
social:
- icon: fontawesome/brands/github
link: https://github.com/seaflyNN
- icon: fontawesome/brands/twitter
link: https://twitter.com/yourhandle
analytics:
provider: google
property: G-XXXXXXXXXX # 替换为您的Google Analytics ID
# 自定义CSS和JS
extra_css:
- ../assets/stylesheets/extra.css
extra_javascript:
- ../assets/javascripts/mathjax.js
- https://polyfill.io/v3/polyfill.min.js?features=es6
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
nav:
- 首页: index.md
- 文档写作:
- Markdown 入门到入土: tag_markdown用法/markdown入门到入土.md
- 前端:
- 错误记录:
- TailwindCSS错误记录: 前端/错误记录/err-tailwindcss.md
- 关于AI:
- b站:
- 周鸿祎-AI创业-百大AI应用系列视频博客: 关于AI/b站/周鸿祎-ai创业-百大AI应用系列视频博客.md
- 杂项:
- 本地构建docsify: 杂项/本地构建docsify.md
- 本地构建mkdocs: 杂项/本地构建mkdocs.md
- vscode插件: 杂项/vscode-插件.md
- Oh-My-Posh安装: 杂项/Oh-My-Posh安装.md
- win终端插件安装: 杂项/win-类fish.md
- MkDocs配置和优化: 杂项/mkdocs-配置和优化.md
- cpp:
- cpo: cpp/cpo.md
- QT:
- qml笔记: QT/qml笔记.md
- 笔记: QT/笔记.md
- qml-background-contentitem-分离: QT/qml-background-contentitem-分离.md
- qt-qml常用组件: QT/qt-qml常用组件.md
功能详解¶
导航功能¶
功能 | 说明 |
---|---|
navigation.tabs |
在页面顶部显示导航标签页 |
navigation.tabs.sticky |
标签页在滚动时保持固定 |
navigation.sections |
将导航项目分组显示 |
navigation.expand |
默认展开所有导航分组 |
navigation.top |
显示回到顶部按钮 |
navigation.instant |
启用即时页面加载(无刷新跳转) |
navigation.tracking |
在地址栏追踪当前锚点 |
navigation.indexes |
支持分组主页 |
搜索功能¶
功能 | 说明 |
---|---|
search.highlight |
在搜索结果中高亮关键词 |
search.share |
添加搜索分享功能 |
search.suggest |
显示搜索建议 |
内容功能¶
功能 | 说明 |
---|---|
content.tabs.link |
内容标签页支持链接 |
content.code.copy |
代码块添加复制按钮 |
content.code.annotate |
支持代码注释功能 |
content.action.edit |
每页添加"编辑此页"按钮 |
content.action.view |
添加"查看源码"按钮 |
content.table |
表格支持排序功能 |
主题配置¶
- 语言设置:
language: zh
- 界面显示为中文 - 配色方案:
- 浅色模式:
scheme: default
,primary: indigo
- 深色模式:
scheme: slate
,primary: indigo
- 模式切换: 自动检测系统偏好,支持手动切换
- 图标设置: GitHub、编辑、查看等图标
Markdown扩展¶
基础扩展¶
abbr
: 缩写支持admonition
: 警告框和提示框attr_list
: HTML属性列表def_list
: 定义列表footnotes
: 脚注支持tables
: 表格支持toc
: 目录生成(支持永久链接)
PyMdown扩展¶
arithmatex
: 数学公式支持(LaTeX语法)betterem
: 改进的强调语法emoji
: 表情符号支持highlight
: 代码语法高亮keys
: 键盘按键样式superfences
: 代码围栏(支持Mermaid图表)tabbed
: 标签页内容tasklist
: 任务列表支持
插件配置¶
- 搜索插件: 改进的中文分词支持
- Git修改时间: 显示文件创建和修改时间
自定义文件¶
自定义CSS¶
文件位置: docs/stylesheets/extra.css
/* 自定义样式 */
/* 改善代码块样式 */
.highlight pre {
border-radius: 6px;
}
/* 改善表格样式 */
.md-typeset table:not([class]) {
box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,.05);
border-radius: 6px;
overflow: hidden;
}
/* 改善警告框样式 */
.md-typeset .admonition {
border-radius: 6px;
box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,.05);
}
/* 自定义滚动条 */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #a8a8a8;
}
/* 改善标签页样式 */
.md-typeset .tabbed-set {
border-radius: 6px;
overflow: hidden;
box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,.05);
}
/* 改善任务列表样式 */
.md-typeset .task-list-item {
list-style-type: none;
}
.md-typeset .task-list-control [type=checkbox] {
margin-right: 0.5rem;
}
MathJax配置¶
文件位置: docs/javascripts/mathjax.js
window.MathJax = {
tex: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: ".*|",
processHtmlClass: "arithmatex"
}
};
document$.subscribe(() => {
MathJax.typesetPromise()
})
依赖配置¶
文件位置: requirements.txt
mkdocs==1.6.1
mkdocs-material==9.6.14
mkdocs-material-extensions==1.3.1
pymdown-extensions==10.15
markdown==3.8
mkdocs-git-revision-date-localized-plugin==1.2.0
使用示例¶
警告框¶
任务列表¶
标签页¶
使用四个反引号来展示嵌套的代码块:
=== "Python"
```python
print("Hello World")
```
=== "JavaScript"
```javascript
console.log("Hello World");
```
=== "Bash"
```bash
echo "Hello World"
```
数学公式¶
键盘按键¶
表情符号¶
代码注释¶
使用四个反引号来展示嵌套的代码块:
详情折叠¶
Mermaid 图表¶
使用四个反引号来展示嵌套的代码块: