Jekyll 不使用插件支持多语言

实现目标 支持多语言,英文为主,中文为辅; 当访问 / 根目录下页面,比如 /about.html /posts/hello-world 显示英文页面; 当访问 /zh/ 目录下页面,比如 /zh/about.html /zh/posts/hello-world 显示中文页面; 当访问 ../hello-world 文章时,可以通过链接跳转到对应语言页面; archive 和 index 页面中仅显示出当前语言页面。 相关缺陷 404 页面无法配置,只能在 404.html 页面写上两种语言; 支持多语言文章的分页插件 jekyll-paginate-v2 没在 GitHub Pages 支持的插件白名单内,目前本博客首页不支持分页。多语言分页详见下文; 多语言时间表示有点麻烦,需要做一些字符串处理工作,能实现但是不太优雅,具体可以参考 Jekyll-Date-Formatting。 开始配置 最初,我搜索到 i18n 插件 Jekyll-Multiple-Languages-Plugin。 该仓库的 Star 数是多语言插件中最多的,同时里面也列出了相关其他多语言插件,已经比较完善,不想折腾的可以直接使用。 目前我为了简单和可定制化,同时省略掉插件中不必要的功能,选择使用自定义规则来实现多语言功能。 1. 单个博文配置 每一篇文章和页面需要定义两个属性: uid 标示文章唯一,一篇文章的中文版本和英文版本 uid 相同; 注意:uid 可以设置为任意命名,比如 document_id 。 locale 标示文章语言,一篇文章被渲染后作为哪种语言展示。 所以每篇文章的 Front Matter 新增如下设置 --- uid: hello-world locale: zh --- 2. 对于文章 posts 每篇文章都需要在 Front Matter 中写上 locale 重复多余。不要重复自己。我准备使用不同文件夹来区分不同语言的文章,然后在配置文件设置 locale 的默认值。 ...

十月 26, 2019 · 3 分钟 · Lex Cao

你好 世界

博客配置: 静态网页生成器 Jekyll 3.8.5 Ruby 2.6.0 主题 lagrange 网页分析 Google Aynalysis Baidu Aynalysis 部署 GitHub Pages 这是我的第一篇文章,作为最简单的 “你好 世界”,我想记录一下该博客的诞生过程,以及如果你也想搭建一个自己的博客应该怎么做。 本文章将会涉及三个部分: 选择博客类型 准备好所需内容 将他们编排起来 第一步 选择博客类型 根据前端网页是否与后台服务器或者数据库交互分为:静态网站 / 动态网站 静态网站: 仅依靠 HTML / CSS / JS 没有后台服务器存储数据 数据是预先生成的 动态网站: 依赖前端 HTML / CSS / JS 数据从后台服务器获取 能够动态响应用户请求 所以,静态博客: 文章预先生成 不依赖后台服务器 动态博客: 文章从后台服务器获取 前端页面动态获取 考虑到刚接触到博客搭建,先从简单的静态博客入手。目前 GitHub 上有很多开源的静态网站生成器,这里我选择使用 Jekyll。 选择合适的静态博客生成器请看 [Jekyll / Hugo / Hexo 比较]({{ “/zh/posts/jekyll-hugo-hexo” | relative_url }})。 第二步 准备好所需内容 准备内容涉及以下方面: 博客文章 博客介绍 作者信息 博客域名 博客文章 提前写好文章准备发布 ...

十月 1, 2019 · 2 分钟 · Lex Cao