喜新厌旧
之前在Hugo上找文档的模板,相中了Doks,但是最近再去看,更喜欢Hextra了。
再换掉它之前,先做个记录吧。
安装
Doks推荐的安装方式是用npm。也就是直接新建了一个项目
npm create thulite@latest -- --template doks
npm的好处呢,已经做好packages配置,稍微方便一点吧。
基本配置
从config/_default/hugo.toml
修改站点基本信息。
多语言配置
从config/_default/languages.toml
设置多语言。并到config/_default/hugo.toml
中设置默认语言,并在disableLanguages
去掉要开放的语言。
# Multilingual
defaultContentLanguage = "en"
disableLanguages = ["de", "nl"]
defaultContentLanguageInSubdir = false
可以添加一个zh
语言,设置为默认。en
不禁用。那就支持中英文双语了。
defaultContentLanguageInSubdir
如果设置为true
,表示多语言在子目录下。
这里开启多语言后,就报错了。
ERROR No js resource found at /assets/js/flexsearch.zh.js
从discussions/1288,中看到说复制node_modules/@thulite/doks-core/assets/js/flexsearch.js
到对应位置。
cp node_modules/@thulite/doks-core/assets/js/flexsearch.js /assets/js/flexsearch.zh.js
cp node_modules/@thulite/doks-core/assets/js/flexsearch.js /assets/js/flexsearch.en.js
翻译文件需要新建如i18n/zh.toml
,i18n/en.toml
更多多语言设置可以看i18n文档。
使用
数学公式
Doks使用的是vercel.app
的Math API,没有用常规的JS库KaTeX或MathJax。
所以写法上有一些不同,需要包在math
的codeblock中:
```math
$$
\frac{1}{\Gamma(s)}\int_{0}^{\infty}\frac{u^{s-1}}{e^{u}-1}\mathrm{d}u
$$
```
如果要引入MathJax,可以在layouts/partials/head/script-header.html
中添加
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
<script>
MathJax = {
tex: {
displayMath: [['\\[', '\\]'], ['$$', '$$']], // block
inlineMath: [['\\(', '\\)']] // inline
},
loader:{
load: ['ui/safe']
},
};
</script>
总结
一开始感觉样式比较简单,后来看着样式有点太素了。左侧菜单越看越丑,深深的加粗黑字感觉生硬,其他样式也没什么好看的。
而且作为Hugo模板,在样式上做的一般,本身素质不具备让人抛弃其他选择而选择它。单独的项目结构,有点脱离Hugo Theme的范畴了,使得绑定太强,更换其他theme变得不方便。
最后修改于 2025-06-05