使用Hexo搭建中英文双语博客的完整方案 - 下
在用过Hexo的国际化之后,才知道这个功能其实是挂羊头卖狗肉。不仅每个博客都需要标上语言,而且博客本身的列表中各个语言的文章仍然混杂在一起。
因此,这两篇博客为大家提供一套完整的国际化解决方案。为了这套方案,我编写了一个主题和一个插件。第一篇博客将使用我编写的主题创建双语言博客。第二篇博客可以使用自定义主题创建双语言博客。如果你想要一个撰文支持国际化主题的博客,可以回到《使用Hexo搭建中英文双语博客的完整方案 - 上》。
这篇博客将介绍如何使用任意Hexo主题创建一个国际化的Hexo博客。为了需要,我用了一个流行的主题”oranges”来作为样例。当然你可以根据自己选择的主题修改以下步骤。
第一步 - 安装
在你的博客主文件夹执行以下命令:
$ 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/zchengsite/hexo-theme-oranges.git themes/oranges
第二步 - 设置
在 _config.yml
中将主题更改为 oranges:
theme: oranges
第三步 - 国际化
请按照以下步骤进行国际化设置:
- 为每种语言创建一个文件夹,并将所有文章和页面放入相应的文件夹中。例如:
sources/
_posts/
en/
post1.md
post2.md
zh/
post3.md
post4.md
- 在
_config.yml
文件的末尾,加上以下的代码。
generator_plus:
language: ['first language', 'second language']
- 在
_config.yml
中将new_post_name
设置为new_post_name: :lang/:title.md
- 在
_config.yml
中将permalink
设置为permalink: :lang/{原来的内容}
第三步:国际化
请按照以下步骤进行国际化设置:
- 为每种语言创建一个文件夹,并将所有文章和页面放入相应的文件夹中。例如:
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 主题配置
点击这里按照“oranges”文档配置主题。
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。