Mkdocs_begin
[!AI_SUMMARY]-
Mkdocs 是一款博客笔记工具,本文主要介绍了如何使用 Mkdocs 中的高级格式,包括:
- Admonitions:用于添加大段资料批注,支持注释块、可折叠注释块、内联块等类型。
- Annotations:用于在文本中添加旁注,可以应用于标题、表格等多种元素。
- Buttons:用于创建按钮,支持填充和自定义样式。
- Code blocks:用于展示代码,支持高亮、行号、注释等功能。
- Content tabs:用于创建内容选项卡,可以切换显示不同内容。
- Data tables:用于创建数据表格,支持对齐、边框等样式。
- Diagrams:用于创建流程图等图表,支持 mermaid 语法。
- Footnotes:用于添加脚注,支持超链接索引。
- Grids:用于创建网格布局,可以展示列表、选项卡等内容。
- Icons, Emojis:用于添加表情符号和图标,支持 twemoji 表情集。
在使用 Mkdocs 作博客笔记时,发现其他人的文章有一些比较有意思的格式,美观方便,故学习参考,此处主要记录用法备忘,具体配置请转移至官方文档 进行查看,我只会给出基本的配置教程;大多数格式都是可以嵌套使用的,文中不会过多提及,请自行探索。
- 这里是一份详尽的降压宝典 ,旨在完善细节以便呈现更好地效果,有兴趣可以看看。
- 这里是比较特别的 MKDocs 插件列表
Admonitions¶
主要用于添加大段资料批注
madocs.yml 配置 ¶
mkdocs.yml 配置
theme:
icon:
admonition:
note: octicons/tag-16
abstract: octicons/checklist-16
info: octicons/info-16
tip: octicons/squirrel-16
success: octicons/check-16
question: octicons/question-16
warning: octicons/alert-16
failure: octicons/x-circle-16
danger: octicons/zap-16
bug: octicons/bug-16
example: octicons/beaker-16
quote: octicons/quote-16
用法 ¶
注释块 ¶
我们可以使用 !!! + 类型 + " 标题 " 标明告诫块,在其下使用缩进表明其内容所在
可以使用空表示不需要标题
例如
那么呈现效果如下:
这是一个注释块
这里是内容
可折叠注释块 ¶
将三个 ! 换为三个 ? 即可,如果想要呈现展开的状态,再加一个 + 号即可
这是可折叠注释块
这里是 tips
内联块 ¶
在类型后加上 inline 可构成内联块放在左侧,再加上 end 可放在右侧(个人偏爱)
!!! info inline end "Lorem ipsum"
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nulla et euismod nulla.
Curabitur feugiat, tortor non consequat
finibus, justo purus auctor massa, nec
semper lorem quam in massa.
效果如下
这是内联块
这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
这里是文本这里是文本这里是文本这里是文本这里是文本这里是文本
Annotations¶
mkdocs.yml 配置 ¶
mkdocs.yml 配置
用法 ¶
下面是一段示例格式:
效果如下
这里是文本这里是文本这里是 (1) 文本这里是文本这里是文本这里是文本。
- 这是一段旁注。
这个可以在大多场合使用,如标题,表格甚至嵌套使用,但是考虑到基本不会用(脚注可以替代
Buttons¶
mkdocs.yml 配置 ¶
用法 ¶
[click here for more](#){.md-button}
// 即使用 `{.md-button}` 进行声明, `#` 中可填写链接,默认是该页面的一级标题
[click here for more](#){ .md-button .md-button--primary }
// 加上 `.md-button--primary` 表示填充
Code blocks¶
mkdocs.yml 配置 ¶
mkdocs.yml 配置
用法 ¶
使用三对反引号将代码包裹即可,注意:代码适当缩进
其他操作:
- 可在前三个反引号后添加代码语言以便高亮;
- 还可添加属性 title=" 标题 " 来取标题;
- 还可添加注释,要求使用对应代码语言的注释方法,如 python 就是
# (1)
,不想要显示#
的话在 (1) 后面添加 ! 即可; - 添加行号
linenums="<start>"
start 表示起始行号; - 高亮某行 hl_lines=" 行号 " 行号可用空格间隔高亮多行,可用 a-b 表示高亮行数范围;行号是在下面打码块中的行号;
- 使用
#!python
使得内联代码块可以高亮,例如print(i)
- 打印“hello world”
Content tabs¶
mkdocs.yml 配置 ¶
mkdocs.yml 配置
用法 ¶
使用 ===
后使用英文双引号包裹 table_name ,之后空一行加上内容,如:
=== "C"
```c
```c
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
return 0;
}
```
=== "C++"
``` c++
#include <iostream>
int main(void) {
std::cout << "Hello world!" << std::endl;
return 0;
}
```
效果如下:
Data tables¶
mkdocs.yml 配置 ¶
用法 ¶
(与 markdown 中是一致的)
Method | Description |
---|---|
GET |
:material-check: Fetch resource |
PUT |
:material-check-all: Update resource |
DELETE |
:material-close: Delete resource |
> 关于一些表情请看 Icons, Emojis |
Diagrams¶
mkdocs.yml 配置 ¶
mkdocs.yml 配置
用法 ¶
下面我们看看 flowcharts 的表现形式,其他不加解释 因为我的笔记主要使用 obsidian 制作流程图。
``` mermaid
graph LR
A[Start] --> B{Error?};
B -->|Yes| C[Hmm...];
C --> D[Debug];
D --> B;
B ---->|No| E[Yay!It works!];
```
graph LR
A[Start] --> B{Error?};
B -->|Yes| C[Hmm...];
C --> D[Debug];
D --> B;
B ---->|No| E[Yay! It works!];
Footnotes¶
mkdocs.yml 配置 ¶
用法 ¶
其实使用方法与 Markdown 的语法是基本一致的,并提供了寻找索引的超链接:
Lorem ipsum[^1] dolor sit amet, consectetur adipiscing elit.[^2]
[^1]: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[^2]:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Grids¶
mkdocs.yml 配置 ¶
<div class="grid card" markdown>
=== "Unordered list"
* Sed sagittis eleifend rutrum
* Donec vitae suscipit est
* Nulla tempor lobortis orci
=== "Ordered list"
1. Sed sagittis eleifend rutrum
2. Donec vitae suscipit est
3. Nulla tempor lobortis orci
``` title="Content tabs"
=== "Unordered list"
* Sed sagittis eleifend rutrum
* Donec vitae suscipit est
* Nulla tempor lobortis orci
=== "Ordered list"
1. Sed sagittis eleifend rutrum
2. Donec vitae suscipit est
3. Nulla tempor lobortis orci
</div>
- Sed sagittis eleifend rutrum
- Donec vitae suscipit est
- Nulla tempor lobortis orci
- Sed sagittis eleifend rutrum
- Donec vitae suscipit est
- Nulla tempor lobortis orci
Icons, Emojis¶
mkdocs.yml 配置 ¶
mkdocs.yml 配置
用法 ¶
表情符号可以通过将表情符号的短代码放在两个冒号之间来集成到 Markdown 中 我们可以去 Emojipedia 上复制过来😀