https://forum.manjaro.org/t/how-to-run-manjaro-on-windows-10-hyper-v-gen2/54092/20
https://forum.manjaro.org/t/installing-manjaro-in-hyper-v-with-enhanced-session-support/79394
https://forum.manjaro.org/t/how-to-run-manjaro-on-windows-10-hyper-v-gen2/54092/20
https://forum.manjaro.org/t/installing-manjaro-in-hyper-v-with-enhanced-session-support/79394
参照 Hexo 官网教程 https://hexo.io/docs/#Install-Node-js
1 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash |
参照 https://hexo.io/docs/setup
1 | hexo init sundoge.github.io |
我使用的 hexo-cli
版本为 2.0.0
,会自动拉取默认主题 landscape
。后面将引入 hexo-theme-next 。
Hexo 的设计有个矛盾的地方,theme 有自己的 config 文件,而且不会 merge 到顶层的 config,导致你很难用 git 管理你的 theme。如果你按照 theme-next 的官方文档 install,就相当于在 git 仓库里面创建另 git 仓库,git 是没法管理到仓库里面的仓库的。但是如果单纯使用 git submodule,修改 theme 里面的_config.yml 也是没法用 git 管理的。所以一个折中的方案是,先 fork 一份你要的主题,比如 SunDoge/hexo-theme-next ,然后 add submodule
1 | git submodule add git@github.com:SunDoge/hexo-theme-next.git themes/next |
这样 theme 和博客都能被管理到。如果需要更新 theme,只需要运行
https://stackoverflow.com/questions/5828324/update-git-submodule-to-latest-commit-on-origin
1 | git submodule foreach git pull origin master |
这个命令会更新所有的 submodule。
修改顶层_config.yml
1 | # Extensions |
修改 theme 里面的_config.yml
themes/next/_config.yml
1 | # Schemes |
https://github.com/theme-next/hexo-theme-next/blob/master/docs/MATH.md
1 | # Math Formulas Render Support |
我暂时使用 mathjax,如果实在太慢,后面再换成 katex。这里还需要替换默认的 render。
1 | npm un hexo-renderer-marked --save |
这里不用 kramed 的原因是它最后一次更新在 2017 年。还需要安装 pandoc
https://github.com/jgm/pandoc/blob/master/INSTALL.md
安装 pandoc 这点让我很不满意,使用 Hexo 已经要安装很多东西了(node_modules),为了 mathjax 还要整个 pandoc。
https://hexo.io/docs/deployment.html#Git
1 | npm install hexo-deployer-git --save |
1 | # Deployment |
然后在 github 上新建一个 branch 名为 published
https://help.github.com/en/articles/creating-and-deleting-branches-within-your-repository
并把它设为 default branch。然后执行
1 | hexo clean && hexo deploy |
编译好的文件会被推送到 published 分支。
Hugo 虽然性能好,但是大部分主题年久失修,而且质量都不高,从 jekyll 和 hexo 移植的主题也大多有问题,缺少原有的部分功能。最后没办法,还是要用前端写的工具。
为了方便以后的写作,我计划使用 Rust 开发一个 hexo-cli 的子集,只支持 theme-next 的正确编译🕊🕊🕊。