与 Jekyll 一起使用带电重装

我开始与 Jekyll 静态站点发生器和我想使用 重新装弹与它。我知道 Jekyll 有一个生成器和服务器命令,LiveRelload 可以运行各种编译器和自定义命令。如何配置它们以使其协同工作?

31045 次浏览

首先在你的网站文件夹中正常运行 jekyll:

cd your/site/folder
jekyll

默认情况下,Jekyll 在其中生成一个名为 _site的文件夹(your/site/folder/_site)。

告诉 LiveRelload 注意那个 _site文件夹。

更新: 这不再适用于最新版本的 Jekyll

cd your/site/folder
jekyll --server --auto

Jekyll 1.0 + 版本:

jekyll serve --watch

有关更多细节和选项,请参见 化身博士: 基本用法

有一个 警卫-肝脏负荷,你可以和 守卫 Jekyll一起使用,并且可以和 警卫一起集中监视过程,一个例子是(我还没有测试过) :

  • 通过 gem 或 bundler 安装 Guard-jekyll
  • 通过 gem 或 bundler 安装 Guard-liverload

启动保护 Jekyll

guard init jekyll

把这个添加到你的监护文件:

guard 'livereload' do
watch(%r{_site/.+})
end

您可以调整以上内容以更好地适应您的项目,并且 你可能已经知道你必须包括肝脏负荷 页面上的脚本:

<script src="http://localhost:35729/livereload.js"></script>

哦,还有开始整个观看乱局:

guard

我今天才开始使用 GitHub Pages,希望能够在 Jekyll 中使用 live reload。得到它的工作和写我的第一个职位在 用 Jekyll & LiveRelload 创建 GitHub 页面

它使用 Grunt 与 grunt-contrib-watch插件代替 Jekyll 的 serve命令-对我来说工作得很好。希望对你也有用。

这篇文章解释了一种更清洁的方式 -和 Jekyll 一起设置 LiveRelload

双子档案:

gem 'jekyll'
gem 'guard'
gem 'guard-jekyll-plus'
gem 'guard-livereload'

防护文件:

guard 'jekyll-plus', :serve => true do
watch /.*/
ignore /^_site/
end


guard 'livereload' do
watch /.*/
end

安装 任何 LiveRelload 浏览器扩展,然后运行 guard

您可以只使用 jekyll serve -w,这是一个我比较喜欢的选项,因为我很懒。

更新: 正如在其他答案中指出的,LiveRelload 是内置在 Jekyll 3.7 + 中的。

jekyll serve --livereload

对于旧版本:

我发现最简单有效的方法是使用两个终端窗口: 一个用于 jekyll serve --watch,一个用于 guard

我试过 Nobu 建议的守卫-化身博士加法,但是我有一堆错误。

作为 Shumushin 指出,Jekyll 可以处理自动重建过程,您只需使用 jekyll serve --watch启动它

现在让 LiveRelload 工作在第二个终端窗口中运行 Guard-liverload。这与 Jan Segre 的回答基本相同,但没有 guard-jekyll

我的 Guardfile是这样的:

guard 'livereload' do
watch(/^_site/)
end

还有我的 Gemfile:

gem 'jekyll'
gem 'guard'
gem 'guard-livereload'

注意 : 您仍然需要在 index.html页面中包含 liverload 脚本; 它是将 guard-livereload和浏览器绑定在一起的“粘合剂”。

<script src="http://localhost:35729/livereload.js"></script>

我编写了一个名为 霍金斯的 Jekyll 插件,它将 LiveRelload 整合到 Jekyll watch进程中。它适用于 Jekyll 3.1及以上版本。

只要加上

group :jekyll_plugins do
gem 'hawkins'
end

到你的 Gemfile (然后是 bundle install)。从那里你可以运行 jekyll liveserve。Hawkins 将修改页面的 head部分,以包含 LiveRelload 所需的组件,当 Jekyll 检测到页面更改时,Hawkins 将通过 WebSocket 向您的浏览器推送一条消息。请注意,您将需要一个支持 WebSockets的浏览器。对于非常快速的重新加载,您可以使用 Jekyll 的新 --incremental选项,它将只重新生成更改后的页面。

LiveRelload 内置在 Jekyll 3.7 + 中。

jekyll serve --livereload

还可以设置 LiveReload 的端口、延迟和忽略文件。

对于带电重装, 从项目的根目录中的 < em > Gemfile 中删除 Jekyll 管理员,它的工作原理就像魅力一样。

如果您经常运行它,Repla macOS 应用程序可以轻松启动 Jekyll,因此它会自动刷新。安装 Repla 之后,从 Jekyll blog 的根目录运行它,并将 jekyll serve命令传递给它。例如:

repla server "bundle exec jekyll serve --watch --drafts" -r "...done"

Repla 将被配置为每次在控制台中打印 ...done时刷新,当 Jekyll 完成编译您的站点时将打印 ...done

Repla 运行 Jekyll 服务器进程,分割在浏览器分割下方,显示您的站点:

Jekyll in Repla

Jekyll 在 Repla 运行之后,你也可以用 abc0保存配置文件,关闭窗口关闭它,然后双击文件再次运行。换句话说,下次只要打开文件,就可以再次启动 Jekyll blog,完全不需要终端。

披露: 我维护 Repla 应用程序。

此命令将在浏览器中打开您的网站,并使用 jekyll 内置的 liverload 服务器。

bundle exec jekyll serve -l -o

你需要一个最新的 Jekyll 版本。