如何抑制Jekyll中的空行?
我在我的博客中使用GitHub页面,我遇到了一个与Jekyll有关的问题。My post.html有如下块:如何抑制Jekyll中的空行?,jekyll,liquid,github-pages,liquid-layout,Jekyll,Liquid,Github Pages,Liquid Layout,我在我的博客中使用GitHub页面,我遇到了一个与Jekyll有关的问题。My post.html有如下块: {% for testpost in site.posts %} {% four %} {% lines of %} {% processing %} {% goes here %} {%
{% for testpost in site.posts %}
{% four %}
{% lines of %}
{% processing %}
{% goes here %}
{% endfor %}
中间部分不重要。重要的部分是位于{%%}
标记之外的行的结尾,因此会呈现到html中。由于这是一个循环,它将大约1000个空行放在HTML页面的中间。它不会影响显示,但会使视图/源变得麻烦
关于如何避免这些额外的空行,有什么想法吗?有一种方法可以去除空白
Aucor提供的Jekyll插件:例如修剪不需要的
换行/空白和按权重属性排序页面
你可以直接从它的。所以基本上你用{%strip%}{%endstrip%}
来包装你的代码。即使这不适合您的需要,您也可以轻松地更改ruby脚本
例如:
{% strip %}
{% for testpost in site.posts %}
{% four %}
{% lines of %}
{% processing %}
{% goes here %}
{% endfor %}
{% endstrip %}
但是,请记住Jekyll插件的本质,您不能在Github Pages服务器上运行它们
引自:
GitHub页面由Jekyll提供支持,但是所有页面站点都是使用--safe选项生成的,以出于安全原因禁用自定义插件。不幸的是,这意味着如果要部署到GitHub页面,插件将无法工作
您仍然可以使用GitHub页面发布站点,但需要在本地转换站点,并将生成的静态文件推送到GitHub存储库,而不是Jekyll源文件
我在中发现了一个很好的解决方法,它与github页面兼容 只需将您的循环括在一个capture语句中,并将nil分配给结果var
{% capture cache %}
{% for p in site.posts %}
do stuff here
{% endfor %}
{% endcapture %}{% assign cache = nil %}
怎么样
{{ page.content | escape | strip_newlines }}
事实上,有一种新的解决方案可以解决这个问题,它不需要任何插件 压缩HTML的Jekyll布局。一目了然:
- 删除不必要的空白李>
- 删除可选的结束标记李>
- 删除可选的开始标签李>
- 删除评论李>
- 保留
中的空白李> - GitHub页面兼容李>
- 忽视发展环境李>
- 可配置的受影响元素李>
- 剖面模式李>
- 自动测试
自从
液体v4
(包含在Jekyll
中,来自v3.5
)以来,有一个空白控制
,它最终解决了空行、空白等情况
链接到文档:NB——此方法仅适用于液体。如果这样做,捕获标记之间生成的任何html内容都会被完全忽略。我不明白这是如何工作的。有人能解释一下吗?你怎么能用一个包含,比如
header.html
?弄明白了:{%capture header%}{%include header.html%}{%endcapture%}{{{header | strip_newlines}