【发布时间】:2015-07-07 16:40:31
【问题描述】:
我只想在本地运行jekyll serve 时将以下行添加到我的head.html:
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
如果可能的话,我正在考虑使用一些简单的液体检查。
【问题讨论】:
我只想在本地运行jekyll serve 时将以下行添加到我的head.html:
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
如果可能的话,我正在考虑使用一些简单的液体检查。
【问题讨论】:
当您在本地执行jekyll serve 时,默认的{{ jekyll.environment }} 变量设置为"development"。
然后你可以做一个简单的:
{% if jekyll.environment == "development" %}
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
{% endif %}
如果您想在另一台服务器上运行 jekyll,并使用另一个 environment 值,您可以将 JEKYLL_ENV 系统环境变量设置为您想要的任何值。
在运行时设置这个变量可以这样:
JEKYLL_ENV=production jekyll serve
注意:在 Github 页面上,jekyll.environment 设置为 production。
【讨论】:
jekyll serve和运行jekyll build时,脚本标签最终出现在页面源中。
替代解决方案(例如,如果您将 Jekyll 网站托管在自己的服务器上,而不是在 GitHub Pages 上):
您可以像这样在配置文件_config.yml 中设置一个值:
environment: prod
然后,您可以拥有另一个覆盖相同值的配置文件,我称之为config_dev.yml:
environment: dev
当你调用jekyll build时,它会使用真实配置文件中的prod值。
但是当您在本地机器上构建站点进行测试时,您会按以下顺序传递两个配置文件:
jekyll build --config _config.yml,_config_dev.yml
第二个配置文件中的值将覆盖第一个配置文件中的值,因此environment 将设置为dev。
然后你可以按照大卫的回答中描述的那样做:
{% if site.environment == "dev" %}
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
{% endif %}
你可以在the source code of my blog看到一个例子:
_config.yml_config_dev.ymljekyll build in "dev" modeenvironment 变量来:
【讨论】:
要使用草稿预览您的网站,请使用
--drafts开关运行jekyll serve或jekyll build。每个都将被分配草稿文件在其日期的值修改时间,因此您将看到当前编辑的草稿作为最新帖子。
你试过了吗?
【讨论】: