可以将变量扩展为帖子Front-Matter吗?
我使用一系列项目链接到我的模板,例如:
related_links:
- text: foo
link: bar
但有时我需要在我的网站中引用其他帖子。通常情况下,我只会将/bar
用于链接,但这也用作播客中的showotes,我想扩展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
任何提示?
答案 0 :(得分:0)
如果您使用
related_links:
- text: foo
link: {% post_url YYYY-MM-DD-bar %}
您将收到错误,因为{
将启动流式样式映射,而%
无法在YAML中启动令牌。你必须把整个标量放在(双)引号中:
related_links:
- text: foo
link: "{% post_url YYYY-MM-DD-bar %}"
答案 1 :(得分:0)
由于Jekyll的管道,你想做的事情不起作用:
{% post_url YYYY-MM-DD-bar %}
是一个Liquid命令。如您所见,Liquid只处理YAML前面的文件部分。因此,那里没有液体替代品。
你可以在前面的事情下写下这样的东西:
{% assign link = post_url YYYY-MM-DD-bar %}
然后在其他地方使用{{link}}
。如果你有多个链接,事情会变得很糟糕。像这样的东西可能有效,但我不足以确定Liquid用户:
{% capture nl %}
{% endcapture %}
{% capture rawlinks %}
{% post_url YYYY-MM-DD-bar %}
{% post_url YYYY-MM-DD-bar %}
{% endcapture %}
{% assign links = rawlinks | split nl %}
然后,您可以在YAML前端指定索引:
related_links:
- text: foo
linkindex: 0
最后,在你的文件中的某个地方:
{{ links[related_link.linkindex] }}
YMMV,如果这种丑陋程度适用于您的用例。
答案 2 :(得分:0)
我发现自己更优雅:
{% 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链接以保证该链接与网站中的根目录相关时,这对我来说是更好的方式。