kiwirafe.blog

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

第三步 - 国际化

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

  1. 为每种语言创建一个文件夹,并将所有文章和页面放入相应的文件夹中。例如:
sources/
  _posts/
    en/
      post1.md
      post2.md
    zh/
      post3.md
      post4.md
  1. _config.yml文件的末尾,加上以下的代码。
generator_plus:
  language: ['first language', 'second language']
  1. _config.yml中将new_post_name设置为 new_post_name: :lang/:title.md
  2. _config.yml中将 permalink设置为 permalink: :lang/{原来的内容}

第三步:国际化

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

  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 主题配置

点击这里按照“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

总体选项:

所有生成器的选项:

仅针对 category_generatortag_generator