如何将源代码片段添加到Jekyll中的_datayaml中?
我正在尝试创建代码片段作为我在Jekyll中创建的项目网站的示例 我有这样的yaml:如何将源代码片段添加到Jekyll中的_datayaml中?,jekyll,liquid,Jekyll,Liquid,我正在尝试创建代码片段作为我在Jekyll中创建的项目网站的示例 我有这样的yaml: - description:“创建关联列表的宏,使用宏展开。” 代码:> (定义语法) (语法规则() ((_) ()) (ux y z…) (反对党(反对党x y)(反对党z…))) (印刷字体(列表“foo”10“bar”20“baz”30)) ;; ==> ((第10章)(第20条)(第30条)) (宏扩展(列表“foo”10“bar”20)) ;; ==> (#:cons(#:cons“foo”10)
-
description:“创建关联列表的宏,使用宏展开。”
代码:>
(定义语法)
(语法规则()
((_) ())
(ux y z…)
(反对党(反对党x y)(反对党z…)))
(印刷字体(列表“foo”10“bar”20“baz”30))
;; ==> ((第10章)(第20条)(第30条))
(宏扩展(列表“foo”10“bar”20))
;; ==> (#:cons(#:cons“foo”10)
(#:cons(#:cons“bar”20)
()))
问题是,与第一行缩进完全相同的行被连接成一行。我希望这是完全一样的yaml在我的前标签。如果我将每一行缩进一个空格,当我添加代码段时,我会在pre-tag中获得额外的空格
有没有办法让它完全插入我在yaml文件中的代码?如何在yaml中正确缩进,使每一行前不留空格,并使每一行在输出html的自己的行中
我试图在字符串周围添加引号,但它们出现在输出中,我无法在Liquid中删除它们
我试过这个:
{% for example in site.data.examples %}
{% assign code = example.code | split: '^"|"$' %}
<li>
<div class="example">
<pre>{{ code[1] }}</pre>
</div>
<div class="description">
{{ example.description }}
</div>
</li>
{% endfor %}
但它只打印第一个括号。
编辑:
我已经解决了删除引号的问题,但那个是一条死胡同,我仍然在每一行前面有空格
这是一种从Jekyll中的字符串中删除引号的方法:
{% for example in site.data.examples %}
<li>
<div class="example">
<pre>{{ example.code }}</pre>
</div>
<div class="description">
{{ example.description }}
</div>
</li>
{% endfor %}
这似乎比我想象的要简单。所有需要的是Yaml中的块(参考:)
-
description:“创建关联列表的宏,使用宏展开。”
代码:|
(定义语法)
(语法规则()
((_) ())
(ux y z…)
(反对党(反对党x y)(反对党z…)))
(印刷字体(列表“foo”10“bar”20“baz”30))
;; ==> ((第10章)(第20条)(第30条))
(宏扩展(列表“foo”10“bar”20))
;; ==> (#:cons(#:cons“foo”10)
(#:cons(#:cons“bar”20)
()))
您可以使用正态变量:
{% for example in site.data.examples %}
{% assign code = example.code | remove_first: '"' | rstrip | append: "__" | remove: '"__' | newline_to_br | split: "<br />" %}
<li>
<div class="example">
<pre>{% for line in code %}{{ line | remove_first: " " }}{% endfor %}</pre>
</div>
<div class="description">
{{ example.description }}
</div>
</li>
{% endfor %}
{% for example in site.data.examples %}
<li>
<div class="example">
<pre>{{ example.code }}</pre>
</div>
<div class="description">
{{ example.description }}
</div>
</li>
{% endfor %}
{% for example in site.data.examples %}
{% assign code = example.code | remove_first: '"' | rstrip | append: "__" | remove: '"__' | newline_to_br | split: "<br />" %}
<li>
<div class="example">
<pre>{% for line in code %}{{ line | remove_first: " " }}{% endfor %}</pre>
</div>
<div class="description">
{{ example.description }}
</div>
</li>
{% endfor %}