{% include file.html %}
是否可以在其中没有标记的情况下进行渲染?
我试过{% include file.html | escape_once %}
给出了一个
误差
running it through {% raw %} {% include file.html %} {% endraw %}
这给了{% include file.html %}
(毫不奇怪)。
我正在寻找{% include file.html | no_render %}
我无法将原始代码放在file.html
中的原因是我试图将其重新用作模板(它有点像黑客)。
这对于尝试自我描述的页面也很有用。即This useful thing works like this: {% include useful_snippet.html | no_render %}
答案 0 :(得分:2)
<强> useful_snippet.html 强>
{% raw %}
{% comment %}Alot of liquid code{% endcomment %}
{% assign toto = "Welcome to the hack !" %}
{% assign string = "a,b,c,d" %}
{% assign array = string | split:"," %}
{% for item in array %}
{{ item }}
{% endfor %}
{% endraw %}
<pre><code>{% include useful_snippet.html %}</code></pre>
{% highlight liquid %}{% include useful_snippet.html %}{% endhighlight %}
编辑:仅在Jekyll处理中,Liquid会渲染一次。因此,无法让一个模板同时渲染Liquid和渲染原始Liquid代码。
如果你想这样做,你必须使用generator plugin或hooks。
答案 1 :(得分:0)
对我来说,我没有在{% raw %}
和{% endraw %}
中包裹东西的运气。
解析器对我的js / html混合进行了稍微的修改,破坏了事情。
为了将js / html包含为原始文件,我使用kramdown's nomarkdown extension,如下所示:
{::nomarkdown}
<script type="text/javascript" src="https://www.pouet.net/pouet-player.js" async defer></script>
<div class="pouet-player" data-version="v1" data-size="medium"><a href='https://www.pouet.net/prod.php?which=30244'>fr-041: debris. by Farbrausch</a></div>
{:/}
答案 2 :(得分:0)
这是带有自定义标签的解决方案:
将raw_include_relative.rb
放在_plugins/
目录中的Jekyll根目录下:
# _plugins/raw_include_relative.rb
module Jekyll
module Tags
class RawIncludeRelativeTag < IncludeRelativeTag
# Overriding is explicitly allowed, to modify file content by subclassing:
# https://github.com/jekyll/jekyll/blob/f5826eed3cde692f84e35140209d5a59ec3eb295/lib/jekyll/tags/include.rb#L178
def read_file(file, context)
# Hack: instead of including the file directly without liquid escaping,
# simply wrap the entire file in a `raw` liquid tag, suppressing liquid
# processing.
"{% raw %}" + super + "{% endraw %}"
end
end
end
end
Liquid::Template.register_tag("raw_include_relative", Jekyll::Tags::RawIncludeRelativeTag)
然后,您可以像使用{% raw_include_relative somefile.txt %}
一样使用include_relative
。