使用Hexo搭建中英文双语博客的完整方案 - 上
在用过Hexo的国际化之后,才知道这个功能其实是挂羊头卖狗肉。不仅每个博客都需要标上语言,而且博客本身的列表中各个语言的文章仍然混杂在一起。
因此,接下来的两篇博客将为大家提供一套完整的国际化解决方案。为了这套方案,我编写了一个主题和一个插件。第一篇博客将使用我编写的主题创建双语言博客。第二篇博客可以使用自定义主题创建双语言博客。如果你想要一个自定义主题的博客,可以直接跳到《使用Hexo搭建中英文双语博客的完整方案 - 下》。
这篇将使用“world”主题创建一个国际化双语言的Hexo博客。Hexo主题“world”是一个专门支持国际化的主题。点击在这里在线演示。
第一步 - 安装
在你的博客主文件夹执行以下命令:
$ npm uninstall hexo-generator-index hexo-generator-archive hexo-generator-category hexo-generator-tag
$ npm install hexo-generator-plus --save
$ git clone https://github.com/kiwirafe/hexo-theme-world.git themes/world
第二步:设置
在_config.yml
中将主题更改为 world:
theme: world
并关闭语法高亮(该主题使用CDN):
syntax_highlighter:
如果你的博客只有一种语言,可以跳过第三步。
第三步:国际化
请按照以下步骤进行国际化设置:
- 为每种语言创建一个文件夹,并将所有文章和页面放入相应的文件夹中。例如:
sources/
_posts/
en/
post1.md
post2.md
zh/
post3.md
post4.md
将
theme/world/_config.world.yml
里的所有内容复制到_config.yml
文件中。该文件和Hexo默认的配置文件基本相同,只是做了一些支持国际化的更改。在
_config.yml
文件的末尾,加上以下的代码。
generator_plus:
language: ['en', 'zh']
第四步:完成
国际化的博客现在已经大功告成了!试试运行hexo g && hexo s
查看网站效果。
4.1 写作
该主题支持分类和标签:
category: "My Category"
tag: "My Tag"
该主题还支持Mathjax:
mathjax: true
4.2 生成器配置
以下是生成网站的附加选项。请将以下代码合并到generator_plus
的设置中(即删除以下代码第一行,并将其拷贝到 generator_plus: language: ['first language', 'second language']
之后)。
generator_plus:
pagination_dir: 'page'
index_generator:
per_page: 10
order_by: -date
archive_generator:
per_page: 10
order_by: -date
category_generator:
per_page: 10
order_by: -date
enable_index_page: false
tag_generator:
per_page: 10
order_by: -date
enable_index_page: false
总体选项:
- pagination_dir: 分页的URL(例如/page/1)。
- 默认:如果原配置中未定义,则为
page
。
- 默认:如果原配置中未定义,则为
所有生成器的选项:
- per_page: 每页显示的文章/分类/标签数量。
- 默认:
10
。 0
禁用分页。
- 默认:
- order_by: 文章的排序顺序。
- 默认:日期降序。
仅针对 category_generator
和 tag_generator
:
- enable_index_page: 是否生成分类和标签的主页。
- 默认:false。