jekyll中的动态链接

jekyll中的动态链接,jekyll,Jekyll,目前我正在处理静态网站,所以我使用jekyll来生成它。为了有一个好的结构和别致的URL,我使用永久链接 permalink: /impressum/ 例如,impressum.html被呈现为impressum/index.html。在我的HTML中,我可以用 <a href="/impressum"> impressum.html --- layout: layout title: Your New Jekyll Site permalink: {{ site.lnk_imp

目前我正在处理静态网站,所以我使用jekyll来生成它。为了有一个好的结构和别致的URL,我使用永久链接

permalink: /impressum/
例如,impressum.html被呈现为impressum/index.html。在我的HTML中,我可以用

<a href="/impressum">
impressum.html

---
layout: layout
title: Your New Jekyll Site
permalink: {{ site.lnk_impressum }}
---
但这是行不通的。我得到这个错误:

Generating... error: no implicit conversion of Hash into String. Use --trace to view backtrace

那么,有什么不对或者有更好的方法吗?

根据,似乎不可能在YAML Frontmatter或_配置文件中放置液体标签

您可以尝试的其他方法基于所使用的方法,该方法使用他们调用的页面变量
slug
,该变量为每个页面提供唯一的、不变的引用

例如,如果要放置指向impressum.html页面的链接(永久链接可能会更改),可以将此代码放置在另一个页面上,例如index.html:

{% for mypage in site.pages %}
 {% if mypage.slug == 'impressum' %}
  <a href="{{ mypage.url }}">Link to Impressum page</a>
 {% endif %}
{% endfor %}
要在将来更改永久链接,只需在每个页面中更改页面变量
permalink
。只要
slug
变量保持不变,其他页面中引用的URL将由Jekyll自动更新

{% for mypage in site.pages %}
 {% if mypage.slug == 'impressum' %}
  <a href="{{ mypage.url }}">Link to Impressum page</a>
 {% endif %}
{% endfor %}
---
slug: impressum
permalink: /my-permalink-to-impressum/
---