初步使用 markdeep 在 hugo 中撰写文档

最近对 markdeep 产生了些兴趣,感觉蛮好玩的,就想着能不能把 markdeep 集成到 hugo 中去,于是就有了这篇 ## 情况说明 本文用到了以下工具: | 名称 | 用途 | 版本 | | -------- | ---------------------- | -------- | | hugo | 静态网站生成器 | v0.123.7 | | markdeep | markdown 文档转成 html | 1.16 | | VSCode | md/html 编辑器 | 1.87.0 | 两位老朋友,加上一位新朋友 [markdeep](https://casual-effects.com/markdeep/), 这个工具很有意思,基本上你只要给你的 md 文件加上这么一个尾巴: ```html ``` 你的 markdown 文件就瞬间变成了一个网页,可以改名 html 后在浏览器打开了, 是不是很神奇?这是 markdeep 吸引我的一个地方,另一个地方在于,它可以用 ASCII 字符画图: ************************************************************** * * .---. .-. .-. .-. * | A +----->| 1 +<---->| 2 |<----+ 4 +------------------. * '---' '-' '+' '-' | * | ^ | * v | v * .-. .-+-. .-. .-+-. * | 3 +---->| B |<----->| 5 +---->| C | * '-' '---' '-' '---' ************************************************************** 这么一张图,其实是这样敲出来的: ```txt ************************************************************** * * .---. .-. .-. .-. * | A +----->| 1 +<---->| 2 |<----+ 4 +------------------. * '---' '-' '+' '-' | * | ^ | * v | v * .-. .-+-. .-. .-+-. * | 3 +---->| B |<----->| 5 +---->| C | * '-' '---' '-' '---' ************************************************************** ``` 这就让人很心动了,这也是 markdeep 命名的由来,它想比 down 更深一点, 于是我就在想,我的博客现在基本上大部分文章也都是 markdown 格式的, markdown 格式我也比较熟了,那么能不能用 markdeep 来将 markdown 转为网页,再由 hugo 来统筹整个页面呢? 简单搜索了一下,相关的材料似乎不多,看来是要自己吃螃蟹了,不过我很快就有了思路。 ## 思路 我们现在知道了,markdeep 的文档,说白了也就是一个 html 文件,而 hugo 本来也支持 直接管理 html 资源,那其实我们可以直接用 hugo 新建一个 html 文档,然后用 markdown 的格式撰写内容,最后加上 markdeep 的依赖就可以了。 试了一下这个思路是可行的,但是有不少问题,所以接下来我们要把这些问题一一解决掉, 达到一个可用的状态。 ## 问题解决 ### 1. 帖子只是 html 文档的一部分 hugo 有一个 single.html 的模板,实际的单一网页是按照这个模板定义的内容显示的, 而我们日常写的帖子也是转化为这个模板的一部分,然后输出为完整的网页样式。那么这一 点就和 markdeep 的全文 markdown 模式有冲突了,除非我们打算用 `