kiwirafe.blog

使用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: 

如果你的博客只有一种语言,可以跳过第三步。

第三步:国际化

请按照以下步骤进行国际化设置:

  1. 为每种语言创建一个文件夹,并将所有文章和页面放入相应的文件夹中。例如:
sources/
  _posts/
    en/
      post1.md
      post2.md
    zh/
      post3.md
      post4.md
  1. theme/world/_config.world.yml里的所有内容复制到_config.yml文件中。该文件和Hexo默认的配置文件基本相同,只是做了一些支持国际化的更改。

  2. _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

总体选项:

所有生成器的选项:

仅针对 category_generatortag_generator