目前我在静态网站上工作,所以我使用jekyll来生成它。为了拥有一个漂亮的结构和精美的URL,我使用永久链接。
permalink: /impressum/
例如,impressum.html被渲染为impressum / index.html。在我的HTML中,我可以使用
链接到该文件<a href="/impressum">
这对我很有用。但是你知道,我是一名程序员。如果我想要将URL更改为/ imprint /,该怎么办?好吧,我可以毫无问题地更改固定链接。但是关于网站上所有其他链接的内容是什么?是的,当然,我可以使用搜索&amp;替换我的编辑器的功能来更改链接的URL并使用站点检查器检查整个站点是否存在损坏的链接,但这不是我想要的奇特方式。这就是为什么我试图用固定链接创建某种全局变量的原因。
_config.yml:
lnk_impressum: /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
那么错误还是有更好的方法?
答案 0 :(得分:0)
根据this SO answer,似乎无法将Liquid标签放在YAML Frontmatter或_config文件中。
您可以尝试的其他内容基于documentation pages for Bootstrap使用的方法,该方法使用他们称为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 %}
然后,在每个页面的YAML前端中,放置类似于以下内容的代码:
---
slug: impressum
permalink: /my-permalink-to-impressum/
---
要在将来更改永久链接,您只需在每个页面中更改页面变量permalink
即可。只要slug
变量保持不变,Jekyll就会自动更新其他页面中引用的网址。