mkdocs-material
官网地址:
https://squidfunk.github.io/mkdocs-material/
参考文档:
https://cyent.github.io/markdown-with-mkdocs-material/
https://zhuanlan.zhihu.com/p/613038183
Q: mkdocs和material是什么?
A: mkdocs: 可以用于生成静态文档网站..不需要安装node.js,与gitbook、hexo相比,搭建过程更加简便!!
material: material是mkdocs的主题之一. 我觉得还不错.
有一个弊端,mkdocs是支持 热更新 的,文档一多,一旦修改下,会全部重新加载... 我直接裂开.
它要是能只重新加载修改的文件该多好.. ╮( ̄▽ ̄"")╭
Ps: 我还发现了一个博客搭建平台,有超多好看的模版 https://halo.run/
# Mkdown格式
为了让文档内容和目录看起来更美观, 我会这样做
○ 换行用硬换行 两下空格+shift+enter
○ mkdown会将多个空格识别为一个空格, So, 使用多个
进行缩进
若是mac玩家,可以在 系统偏好设置-键盘-文本里 进行快捷设置
(eg: 设置后键盘输入 aa 就会提示 4个
, 再按空格输入成功)
○ ##二级目录
### <font color='orange'>三级目录</font>
##### <font color='purple' size=4>五级目录</font>
○ ** **
左右按一下空格,*号包裹的内容要与*紧贴, 但与外面内容接触时中间要有个空格
○ 切记代码块里用连续多个空格,不要用tab键..
# 搭建
# 安装依赖,创建项目
pip3 install mkdocs-material
python3 -m mkdocs new Dc_IT
(Dc_IT是我的项目名)
文档树结构如下:
.
├── docs
│ ├── 2_python面向过程 # -- 可以在docs下创建新文件夹,在该文件夹下放置mkdown文档
│ ├── index.md # -- 首页
│ ├── readme.md
│ ├── resources # -- 我用来存放logo、css的
│ │ ├── css
│ │ │ └── extra.css
│ │ └── images
│ └── favicon.ico
│ └── tips # -- 我新创建的另外的一个目录
└── mkdocs.yml
2
3
4
5
6
7
8
9
10
11
12
注意:
重新打开网站, 呈现的是 index.md 的内容, 哪怕你没有将它夹到nav中..
navigation的配置最好放到前面, 放后面有时候不生效..折腾了我半天..╮( ̄▽ ̄"")╭
# 配置文件
mkdocs.yml 配置文件说明. 参考博客:
https://blog.csdn.net/m0_63203517/article/details/129765689
mkdocs.yml里添加:
site_name: IT之旅
site_description: These are my study notes.
site_author: DC
copyright: Copyright © 2022 from Dc_OnePiece
extra:
generator: false
# -- 在网站上输入http://127.0.0.1:8000/就已经定位到了docs文件夹下
# -- navs里第一层(Tips、Python面向对象)是导航栏标签;第二层对应每个导航下左侧的目录
nav:
- Tips:
- mkdocs-material的搭建: tips/mkdocs-material.md
- python面向对象:
- 数据类型:
- python语言介绍: 2_python面向过程/00_python语言介绍.md
- 基本运算符和流程控制: 2_python面向过程/01_基本运算符和流程控制.md
- 数据类型之序列: 2_python面向过程/02_数据类型之序列.md
- 数据类型之哈希: 2_python面向过程/03_数据类型之哈希.md
- 函数:
- 函数基础: 2_python面向过程/04_函数基础.md
- 函数高级: 2_python面向过程/05_函数高级.md
- 函数进阶: 2_python面向过程/06_函数进阶.md
- Me:
- About Me: ./readme.md
theme:
name: 'material' # 主题
features:
- navigation.tabs # 导航标签 注意,不是tabs:true
- navigation.top # 回到顶部
- navigation.expand # 默认打开左侧导航所有小节
# - navigation.instant
# - navigation.tracking
# - navigation.tabs.sticky
# - navigation.sections
# - navigation.indexes
# - toc.integrate
# - header.autohide
palette:
primary: "blue grey"
accent: 'amber'
custom_dir: docs/resources/ # 额外的配置(eg:logo css)
favicon: resources/images/favicon.ico
logo: resources/images/favicon.ico
language: 'zh'
# font:
# code: Roboto Mono
extra_css:
- resources/css/extra.css # 修改css默认的样式
markdown_extensions:
# Python Markdown
- abbr
- admonition
- attr_list
- def_list
- footnotes
- md_in_html
- toc:
permalink: true
# Python Markdown Extensions
- pymdownx.arithmatex:
generic: true
- pymdownx.betterem:
smart_enable: all
- pymdownx.caret
- pymdownx.details
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
- pymdownx.highlight
- pymdownx.inlinehilite
- pymdownx.keys
- pymdownx.mark
- pymdownx.smartsymbols
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.tilde
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
extra.css里添加: 这是按照我自个儿的想法来的
/* 整体内容占据宽度 */
.md-grid {
max-width: 64rem;
}
/* 隐藏页脚 */
/* .md-footer-meta__inner {
display: none;
} */
/* 改变当前选中目录的颜色 */
.md-nav__item .md-nav__link--active {
color: #ea8685;
}
/* 更改h1标签内容的颜色 */
.md-typeset h1 {
/* color: #718093; */
/* color: #01a3a4; */
color: #ea8685;
}
/* 更改导航栏的背景颜色 */
[data-md-color-primary=blue-grey] {
--md-primary-fg-color: #718093;
}
/* 更改右侧 目录一丢丢排版的间距 */
.md-sidebar--secondary .md-nav {
padding-left: 0.8rem;
}
/* 试着添加背景图片 效果不佳. 还是以简约为主吧Hhh */
/* .md-main {
background-image: url("../images/bac.jpg");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: right bottom;
opacity: 0.7;
} */
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 启动网站
python3 -m mkdocs serve
cd到项目路径下,要保证该路径下有mkdocs.yml文件
# 部署
弄好后,可以部署到gitee page或github page上!
1> mkdocs的yml文件的配置
https://wcowin.work/blog/Mkdocs/mkdocs2/
2> 运行 python3 -m mkdocs serve 看看效果
3> 配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境
https://www.jianshu.com/p/68578d52470c
注:
1> 先清除在电脑里已有的私钥和公钥
2>一定要ssh-add!!
3>设置Port 443,修改后修改后,在本地add commit后.执行mkdocs gh-deploy.会快很多!!!
(指定gh-deploy之前,有site先删除site文件夹!!放心,该命令会重新生成的!)
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "[email protected]"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "[email protected]"
4> 我们现在是如何部署的呢?
- 先在github上创建一个跟docs目录的上级目录一样的项目,便于管理!(创建时,公开、勾选自动创建readme文件)
- 在本地运行感觉没问题后. 进入该目录下.
git init git status
git add .
git commit -m ".." git status
git remote add origin 刚在github上创建的项目的ssh的远程地址
(还很奇怪,名称要命名为origin..不然不成功; So,现在要部署另外一个项目时,该origin对应的远程地址也得变一下.)
- 在有mkdocs.yml的目录下,运行命令 mkdocs gh-deploy
(不出意外,本地会多个site文件夹,远程会多个gh-deploy分支,并且里面是site文件夹里的内容!!)
- 然后进入github中,选择项目的gh-deploy分支,点击项目的settings,在左侧找到Pages!!
它会说 Your site is live at https://onepiecedc.github.io/项目名/
5> 如何更新的呢?
现目前我是,修改后,在本地add commit后.执行mkdocs gh-deploy.
(其实我想试一试,mkdocs bulid后,将其内容传到项目已有的gh-deploy分支,不晓得行不行?!)
其他的
下次可以试试不传docs目录和site,
(看了下,好像不将docs和site写到.gitignore文件也没关系,它是这么一回事:
mkdocs gh-deploy仅仅会在远程创建分支,并把生成的静态资源传进去.
而我们在本地执行python3 -m mkdocs bulid后,出现的site目录下就是生成的静态资源!!)
https://www.cnblogs.com/paulwhw/p/12725523.html
To do:
GitHub+Travis+Mkdocs自动化构建文档库
https://cloud.tencent.com/developer/article/1644675
另外的:
https://cloud.tencent.com/developer/article/1935771
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
我现在认为 cloudflare page是 静态网页访问最稳定最快速 部署最方便的方案!!(国内不用梯子也可以很流畅的访问