Hexo, MWeb 为标题自动添加序号

显示 MD 文档的时候,总希望标题能带上一个序号:

1
2
3
4
5
1 xxxxx
1.1 xxxx
1.1.1 xxxx

2. xxxxx

但是写 MD 的时候,经常改来改去,所以,一旦想在前面插入一个标题什么的,后面都要手动改,太麻烦了。所以就在想,有没有什么简单的办法,能自动的跟据 MD 的标题去生成序号呢?

1. MWeb

CSS 就可以干这个事情:

1
2
3
4
5
6
7
8
body {counter-reset:section}
body h1{counter-reset:sub-section}
body h2{counter-reset:composite}
body h3{counter-reset:detail}
body h1:before{content:counter(section) " ";counter-increment:section}
body h2:before{content:counter(section) "." counter(sub-section) " ";counter-increment:sub-section}
body h3:before{content:counter(section) "." counter(sub-section) "." counter(composite) " ";counter-increment:composite}
body h4:before{content:counter(section) "." counter(sub-section) "." counter(composite) "." counter(detail) " ";counter-increment:detail}

在 MWeb 中的属性,主题中,找到下面的 把这段 css 贴到 Hexo 的 themes/next/source/css/_custom 目录中的 找到 Preview CSS ,找到编辑,copy 一份当前的 css 样式到自定义目录,然后把这段 css 贴到 copy 后台的 css 文件中,然后选择 reload 即可。

2. Hexo

在 Hexo 中,使用了一个 hexo 的插件, Hexo 根目录执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
npm install hexo-heading-index --save
```
然后在 Hexo 根目录的 _config.yml 最后加上下面的配置:

```yml
5 heading_index:
4 enable: true
3 index_styles: "{1} {1} {1} {1} {1} {1}"
2 connector: "."
1 global_prefix: ""
95 global_suffix: ". "

重新生成即可。

参考:https://www.npmjs.com/package/hexo-heading-index

Just for my love !!