熟悉或者不熟悉 RStudio, 你都可以很快的用 blogdown 来创建一个私人博客。头一次创建,最容易当然是导入模板。以下我们将以 yihui/hugo-xmin 为例,简述一下怎样修改模板,从而创建如本博客网站的中英混合博客。由于经验有限,这里只能介绍两个方面的修改。这两方面的修改分别参考了谢益辉的主页和GitHub上关于Hugo 的 Option to change taxonomies URL 的讨论。
文件结构
默认的博客源文件(md 文件)一般都放在 content\post
文件夹里。对于双语博客,我倾向于一种语言一个文件夹,所以我的 content
目录下面设置了两文件夹: en
和 cn
,前一个放英文,后一个放中文。对应的,在 config.toml
文件下做如下设置
这样设置的目的是使生成的 html 文件分别仍然在相应的文件加下。另外,每个文件夹需要有一个空的 _index.md
文件。
博客导航栏
一般中英,或者多语言混排,至少有两套导航栏。本博站设置了三套,对应的 config.tom
中分别由 [menu.main]
, [menu.en]
, [menu.cn]
来定义:
注意导航里关于分类的目录项我也都设置到了相应的子目录。然而,要使得生成的 html 及相关的文件夹也分别在 en
和 cn
文件夹里,还需要更改默认的 [taxonomies]
:
需要注意的是,在为博客源文件添加分类或标签时,要保留 en/
和 cn/
。例如
完成这一步,还有两个问题要通过修改布局模板来解决:
- 修改
layout
文件夹下的list.html
,从而将[menu.en]
和[menu.cn]
两个导航正确的显示出来; - 修改
layout
文件夹下的terms.html
,从而能正确显示页面主题。
修改 list.html
在文件夹 /theme/hugo-xmin/layout/_default
下找到并用文件编辑器打开 list.html
。将
改成
这段修改完全是借鉴了 [hugo-ivy](https://github.com/yihui/hugo-ivy)
的相应设置。
修改 terms.html
在文件夹 /theme/hugo-xmin/layout/_default
下找到并用文件编辑器打开 terms.html
。将
改成
如果中文相应的还有分类,则需要额外加一个 {{ else if (condition) }}
手动定义。如果未做修改,你会发现,生成的分类或者标签页面的主题显示为 En/...
或者 Cn/...
。
结语
最后这两步或许有更简单的方法实现。如果您有好的办法,请移步本博客的 github 仓库提交建议或合并。谢谢!