Jekyll内部帖子链接

时间:2018-11-15 16:13:01

标签: jekyll

这是一个相当小众的问题,但是...我经营着一个在Jekyll上运行的博客,而且我经常发帖。为了使编辑工作保持理智,我会定期存档帖子,而这些存档的帖子具有相当严格的结构。但是,我需要整整一年才进行存档。

在其他帖子的链接中有此问题的地方。我曾经能够绝对引用文件名(每个jekyll markdown internal links),但是似乎已弃用该文件名:

Deprecation: A call to '{% post_url 2018-09-06-peppermint %}' did not match a post using the new matching method of checking name (path-date-slug) equality. Please make sure that you change this tag to match the post's name exactly.

现在,如果我必须包括文件的完整路径,那么当我存档当年的帖子时,我必须解析全年的所有帖子并更新它们之间的任何链接以包括新的文件路径的存档位置,根本无法使用此工具。鉴于我不经常更改URL结构,直接链接到页面实际上会更好。

对于不依赖于文件结构的内部链接是否有更好的解决方案,允许移动文件而不必更新指向该文件的每个链接?

示例文件结构:

 _posts
   -2018
     -post1
     -post2
     -etc
   -Archive
     -2017
     -2016

如果没有更好的答案,我可能只需要回到使用绝对外部链接即可。

1 个答案:

答案 0 :(得分:1)

解决方案1.使用您自己的包含

创建一个post_url.html文件并编写:

{% include post_url.html slug="2018-09-06-peppermint" %}

include(称为post_url.html)应找到带有正确子弹的帖子并回显链接,如下所示:

{% assign link = site.posts | where:'slug',include.slug %}
<a href="{{ link[0].url }}">{{ link[0].title }}</a>

解决方案2.搜索并替换

您必须解析帖子?一个简单的搜索并替换所有文件,寻找(/2018/并替换为(/Archive/2018/的方法就可以解决问题(如果您使用markdown链接)。这只需几秒钟。