我在我的博客中使用GitHub页面,并且遇到了Jekyll的问题。我的post.html有一个这样的块:
{% for testpost in site.posts %}
{% four %}
{% lines of %}
{% processing %}
{% goes here %}
{% endfor %}
中间的部分并不重要。重要的部分是在{% %}
标记之外的行的结尾,因此被渲染到html中。由于这是一个循环,它将大约1000个空白行放入HTML页面的中间。它不会影响显示效果,但它会导致View / Source麻烦。
关于如何避免这些额外空白的任何想法?
答案 0 :(得分:13)
有一个很好的解决方法,我在https://github.com/plusjade/jekyll-bootstrap/blob/master/_includes/JB/setup找到了,与github页面兼容。
将循环包含在捕获语句中,并将nil赋值给结果变量。
{% capture cache %}
{% for p in site.posts %}
do stuff here
{% endfor %}
{% endcapture %}{% assign cache = nil %}
答案 1 :(得分:7)
怎么样
{{ page.content | escape | strip_newlines }}
答案 2 :(得分:7)
由于
taskkill /F /PID [pid from previous command here]
(包含在Liquid v4
的{{1}})中有Jekyll
,最终解决了空白行,空格等情况。
答案 3 :(得分:4)
有Jekyll plugin删除空格。
Aucor的Jekyll插件:例如插件。修剪不需要的 newlines / whitespace和按重量属性排序页面。
您可以直接从Github repository获取。所以基本上你用{% strip %}{% endstrip %}
包装你的代码。即使这不符合您的需求,您也可以轻松更改ruby脚本。
例如:
{% strip %}
{% for testpost in site.posts %}
{% four %}
{% lines of %}
{% processing %}
{% goes here %}
{% endfor %}
{% endstrip %}
但是,请记住Jekyll插件的性质,你不能在Github Pages服务器上运行它们。
GitHub Pages由Jekyll提供支持,但所有Pages网站都是使用--safe选项生成的,以便出于安全原因禁用自定义插件。不幸的是,这意味着如果你要部署到GitHub Pages,你的插件将无法运行。
您仍然可以使用GitHub页面发布您的站点,但您需要在本地转换站点并将生成的静态文件推送到GitHub存储库而不是Jekyll源文件。
答案 4 :(得分:2)
实际上这个问题有一个新的解决方案,没有任何插件。
压缩HTML的Jekyll布局。一目了然:
- 删除不必要的空格;
- 删除可选的结束标记;
- 删除可选的开始标记;
- 删除评论;
- 在
中保留空格<pre>
;- GitHub页面兼容;
- 忽略开发环境;
- 可配置的受影响元素;
- 个人资料模式;
- 自动测试。
如果你 - 出于某种原因 - 不想在这里使用它是一篇很好的文章,它描述了一些解决方法: Compressing Liquid generated code - sylvain durand