Windows 上的 Jekyll
虽然 Windows 不是官方支持的平台,但它可以通过适当的调整来运行 Jekyll。
安装 Ruby 和 Jekyll
通过 RubyInstaller 安装
安装 Ruby 和 Jekyll 最简单的方法是使用 Windows 的 RubyInstaller。
RubyInstaller 是一个自包含的基于 Windows 的安装程序,其中包括 Ruby 语言、执行环境、重要文档等。
我们在此仅介绍 RubyInstaller-2.4 及更高版本。较旧版本需要 手动安装 Devkit。
- 从 RubyInstaller 下载 下载并安装一个 Ruby+Devkit 版本。使用默认安装选项。
- 在安装向导的最后阶段运行
ridk install
步骤。这对于安装带有本机扩展的 gem 是必需的。你可以在 RubyInstaller 文档 中找到有关此内容的其他信息。从选项中选择MSYS2 和 MINGW 开发工具链
。 - 从开始菜单打开一个新的命令提示符窗口,以便对
PATH
环境变量的更改生效。使用gem install jekyll bundler
安装 Jekyll 和 Bundler - 检查 Jekyll 是否已正确安装:
jekyll -v
如果 Jekyll 未正确安装,您可能会收到错误。重新启动系统,然后再次运行 jekyll -v
。如果错误仍然存在,请打开 RubyInstaller 问题。
好了,您已准备好使用 Jekyll!
通过 Windows 10 上的 Bash 进行安装
如果您使用的是 Windows 10 版本 1607 或更高版本,运行 Jekyll 的另一个选择是 安装 Linux 的 Windows 子系统。
您必须已启用 Linux 的 Windows 子系统。
确保所有软件包和存储库都是最新的。打开新的命令提示符或 PowerShell 窗口,然后键入 bash
。
您的终端现在应为 Bash 实例。接下来,更新您的存储库列表和软件包
sudo apt-get update -y && sudo apt-get upgrade -y
接下来,安装 Ruby。为此,让我们使用 BrightBox 的存储库,它托管了针对 Ubuntu 优化的 Ruby 版本。
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.5 ruby2.5-dev build-essential dh-autoreconf
接下来,更新您的 Ruby gem
gem update
安装 Jekyll
gem install jekyll bundler
这里没有 sudo
。
检查您的 Jekyll 版本
jekyll -v
好了!您已准备好开始使用 Jekyll。
您可以通过检查 _posts
文件夹来确保时间管理正常工作。您应该会看到一个 Markdown 文件,其文件名中包含当前日期。
非超级用户帐户问题
如果 `jekyll new` 命令打印错误“您的用户帐户无权安装到系统 RubyGems”,请参阅 故障排除 中的“以非超级用户身份运行 Jekyll”说明。
Windows 上的 Ubuntu 中的 Bash 仍在开发中,因此您可能会遇到问题。
编码
如果您使用 UTF-8 编码,如果文件以表示 BOM 的字符开头,Jekyll 将中断。因此,如果此字节序列出现在文件开头,请将其删除。
此外,如果在网站生成过程中遇到 Liquid 异常:不兼容的字符编码
错误,则可能需要将控制台窗口的代码页更改为 UTF-8。运行以下命令
chcp 65001
时区管理
由于 Windows 没有 zoneinfo 数据的本机源,因此 Ruby 解释器不理解 IANA 时区。使用它们时,TZ
环境变量默认设置为 UTC/GMT 00:00。
尽管 Windows 用户还可以通过设置键来使用 POSIX 格式定义时区来定义其博客的时区,但当需要根据 DST 规则更改时钟时,这种方式并不友好。
Jekyll 现在使用 rubygem 在内部根据已建立的 IANA 时区数据库 来配置时区。
使用 Jekyll v3.4 及更高版本创建的“新”博客将在其 Gemfile
中默认添加以下内容,现有网站必须更新其 Gemfile
(和已安装的 gem)才能在 Windows 上进行开发
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end
自动重新生成
在构建或提供服务期间指定 --watch
开关时,Jekyll 使用 listen
gem 来监视更改。虽然 listen
对 UNIX 系统有内置支持,但它可能需要一个额外的 gem 才能与 Windows 兼容。
如果您仅在 Windows 上遇到自动重新生成的问题,请将以下内容添加到您网站的 Gemfile
中
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?
您必须使用 RubyInstaller 的 Ruby+Devkit 版本并安装 MSYS2 构建工具才能成功安装 wdm
gem。