缘由
由于Hugo对Markdown的解析和LaTeX存在诸多冲突。比如:当LaTex中出现\\
、\{
、\}
之类的东西,Hugo就无法正常解析数学公式。
解决方案之一就是用Hugo的shortcodes
机制,在md文件中用形如{{< katex [display] >}}latex code{{< /katex >}}
格式。
这样一来,网站显示正常了,但在本地Typora就无法识别了。 个人体验不好。
于是我想到用流编编器sed
对md内容进行替换。 我以前用sed
都是简单的情况,复杂需求我就不会用了。 于是有了此文。
...
目标(配置好后的日常操作)
更新流程简单舒服,页面主题简洁,完全支持Markdown+LaTeX。
1)本地撰写内容:用Typora写基于Markdown+LaTeX的内容。
2)利用静态网站生成器Hugo生成待发布的静态文件: 执行./forgitee
。
- 这个脚本实际依次执行了:1. 对所有md文件进行部分内容替换,确保站点可以完全解析; 2. 执行
hugo -D
,生成待发布的静态文件,生成文件夹public
; 3. 执行./fortypora
对所有md文件进行逆向置换复原,确保Typora打开能完全显示正常。
3) 将站点git提交到码云(gitee): https://gitee.com/chaoskey/notes
- 包括站点全部源码(相当于文档云同步)和生成的静态文件目录
public
。
4) 部署到: https://chaoskey.gitee.io/notes
5) 一键发布的脚本./publish
(注意,必须根据你自己的情况修改之),依次执行了: 1. ./forgitee
; 2. 将修改过的笔记提交到master
分支; 3. 将public
提交到gh-pages
分支; 4. 将gh-pages
分支push
到gitee
和github
。
...