Yaml 将变量扩展到Jekyll前端
是否有可能将一个变量扩展为一个后前沿问题 我使用一系列项目链接到我的模板中,如:Yaml 将变量扩展到Jekyll前端,yaml,jekyll,Yaml,Jekyll,是否有可能将一个变量扩展为一个后前沿问题 我使用一系列项目链接到我的模板中,如: related_links: - text: foo link: bar 但有时我需要在我的网站上引用其他帖子。通常我只会在链接中使用/bar,但这也被用作播客中的shownotes,我想扩展http://example.com/bar。但是使用{%post_url YYYY-MM-DD-bar%}会导致: Error: could not read file [REDACTED]: (&l
related_links:
- text: foo
link: bar
但有时我需要在我的网站上引用其他帖子。通常我只会在链接中使用/bar
,但这也被用作播客中的shownotes,我想扩展http://example.com/bar
。但是使用{%post_url YYYY-MM-DD-bar%}
会导致:
Error: could not read file [REDACTED]: (<unknown>): found character that cannot start any token while scanning for the next token at line 33 column 12
错误:无法读取文件[REDACTED]:():在第33行第12列扫描下一个标记时发现无法启动任何标记的字符
有什么建议吗?如果您使用
related_links:
- text: foo
link: {% post_url YYYY-MM-DD-bar %}
您将收到一个错误,因为{
将启动流样式映射,%
无法在YAML中启动令牌。您必须将整个标量放在(双)引号中:
如果你使用
related_links:
- text: foo
link: {% post_url YYYY-MM-DD-bar %}
您将收到一个错误,因为{
将启动流样式映射,%
无法在YAML中启动令牌。您必须将整个标量放在(双)引号中:
由于Jekyll的管道,您想做的事情不起作用:
{%post\u url YYYY MM DD bar%}
是一个Liquid命令。正如您所看到的,Liquid只处理YAML前端下面的文件部分。因此,在那里不会发生Liquid替换
你可以在前面写下这样的内容:
{% assign link = post_url YYYY-MM-DD-bar %}
related_links:
- text: foo
linkindex: 0
然后在其他地方使用{{link}
。如果你有多个链接,事情会变得很糟。类似的方法可能会奏效,但我不是一个流动用户,无法确定:
{% capture nl %}
{% endcapture %}
{% capture rawlinks %}
{% post_url YYYY-MM-DD-bar %}
{% post_url YYYY-MM-DD-bar %}
{% endcapture %}
{% assign links = rawlinks | split nl %}
然后,您可以在YAML前端中指定索引:
{% assign link = post_url YYYY-MM-DD-bar %}
related_links:
- text: foo
linkindex: 0
最后,在您的文档中的某个地方:
{{ links[related_link.linkindex] }}
YMMV,如果这种丑陋程度适合您的用例。由于Jekyll的管道,您想要做的事情不起作用:
{%post\u url YYYY MM DD bar%}
是一个Liquid命令。正如您所看到的,Liquid只处理YAML前端下面的文件部分。因此,在那里不会发生Liquid替换
你可以在前面写下这样的内容:
{% assign link = post_url YYYY-MM-DD-bar %}
related_links:
- text: foo
linkindex: 0
然后在其他地方使用{{link}
。如果你有多个链接,事情会变得很糟。类似的方法可能会奏效,但我不是一个流动用户,无法确定:
{% capture nl %}
{% endcapture %}
{% capture rawlinks %}
{% post_url YYYY-MM-DD-bar %}
{% post_url YYYY-MM-DD-bar %}
{% endcapture %}
{% assign links = rawlinks | split nl %}
然后,您可以在YAML前端中指定索引:
{% assign link = post_url YYYY-MM-DD-bar %}
related_links:
- text: foo
linkindex: 0
最后,在您的文档中的某个地方:
{{ links[related_link.linkindex] }}
YMMV,如果这种丑陋程度适合您的用例。我自己发现了一个更优雅的:
{% assign real_link=link.link %}
{% assign link_start = real_link | slice: 0 %}
{% if link_start == "/" %}{% assign real_link = real_link | prepend: site.url %}{% endif %}
当我用一个
/
开始我的所有locak链接以保证链接将与站点中的根相关时,这对我来说是一个更好的方式。我发现自己的链接更优雅:
{% assign real_link=link.link %}
{% assign link_start = real_link | slice: 0 %}
{% if link_start == "/" %}{% assign real_link = real_link | prepend: site.url %}{% endif %}
当我用
/
启动我的所有locak链接以保证链接将与站点中的根相关时,这对我来说是一种更好的方式。但是通过使用这个,我收到了文字{%post\u url YYYY-MM-DD-bar%}
在链接中。我想要的是让Jekyll解析并获得链接。通过将标量放在双引号中,它将扩展到example.com/posts/baz/
{%post\u url yyyyy-MM-DD-bar%}`但是通过使用它,我收到了文本{%post\u-url YYYY-MM-DD-bar%}
在链接中。我要做的是让Jekyll解析并获得链接。通过将标量放在双引号中,它将扩展到example.com/posts/baz/
{%post\u url yyyyy-MM-DD-bar%}`这个{link}解决方法甚至在前端也能工作……如果这个方法有效,这将是一个很好的解决方案。这个{{link}即使在最前面的问题上,变通方法也能起作用……如果这能起作用,这将是一个很好的解决方案。