Jekyll / Hugo / Hexo 比较

选择一个合适的静态网站生成器比较难,尤其是当你第一次想要搭建一个博客网站的时候。这是我第一次搭建一个博客并且没有足够的时间去尝试所有常见的生成器,我选择了 Jekyll 作为第一次搭建使用的生成器,尽管它可能不是最好的一个。我准备以后再尝试其他生成器。 这是我从 Google 找到的一些简要的描述,希望它能对你选择什么生成器开始搭建网站有帮助。 我从 GitHub 选择了以下三个静态博客生成器进行比较 Jekyll Hugo Hexo 什么是静态网站生成器 HTML 文件; 没有服务端处理或者数据库交互; 比动态网站更安全; 利于使用 CDN 进行扩展; 缓存会带来比动态网页更高的效率; 请求超快速。 Jekyll 使用语言 Ruby; GitHub 支持; 使用 GitHub Pages 免费部署。 优势 免费且开源; RubyGems 支持构建主题为 gems 方便分发; 简单便捷使用; 强大的 GitHub Pages 支持; 开箱即用的合适的默认极简主题。 劣势 当网站内容不断增加后,构建速度会明显变慢。 功能 Liquid 模版引擎; 基于 Gem 主题; Markdown 和 YAML 类型支持; Sass 预处理 CSS 支持; 官方插件支持 CoffeeScript。 Hugo 使用语言 Go. 优势 免费开源; 速度非常快,对构建速度做了优化; 内置支持很多功能: 动态 API 请求的内容; 无限制内容类型; shortcakes, 一个灵活的 Markdown 替代; 国际化; 别名重定向; 分页。 预制的 Go 模版和模式; 无需依赖(不用安装 Go,因为它是编译好的二进制); 功能强大的内容模型。 劣势 主题使用 Go 模版,所以需要熟悉 Go; 没有内置默认主题; 缺少扩展性和插件(因为 Go 是编译型语言)。 功能 Go 模版; 国际化; 支持动态 API。 Hexo 使用 Node....

2019 October 30 · 1 分钟 · Lex Cao

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 的默认值。...

2019 October 26 · 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 }})。 第二步 准备好所需内容 准备内容涉及以下方面:...

2019 October 1 · 2 分钟 · Lex Cao