如何在 Liquid (Jekyll) 中获取页面的 url

vas*_*sco 6 liquid jekyll github-pages

我正在使用 Github 页面 (Jekyll) 编写文档,并且在其中一个页面中我想链接到另一个页面。我尝试使用{% page_url post-name %}但没有运气。当我运行时,出现bundle exec jekyll serve此异常:

Liquid Exception: no implicit conversion of nil into String in docs/page1.md
Run Code Online (Sandbox Code Playgroud)

我的帖子在子目录中docs,我的文档结构如下所示:

CNAME
_config.yml
_includes/
_layouts/
_site/
css/
docs/
   page1.md
   page2.md
   page3.md
imgs/
js/
index.md
Run Code Online (Sandbox Code Playgroud)

配置文件包含:

safe: true
lsi: false
pygments: true
markdown: kramdown
Run Code Online (Sandbox Code Playgroud)

docs/子目录中的所有页面都包含 YAML 块:

---
layout: docs
title: Page Two
permalink: /docs/page2/
---
Run Code Online (Sandbox Code Playgroud)

现在,我尝试获取此页面的 url page2

{% page_url page2 %}
{% page_url docs/page2 %}
{% page_url /docs/page2/ %}
{% page_url /docs/page2.md/ %}
Run Code Online (Sandbox Code Playgroud)

这些都不起作用,我仍然得到Liquid Exception.

那么在子目录中获取页面 url 的正确方法是什么?

Arm*_*ndo 7

使用通用链接标签:{% link _collection/name-of-document.md %}

所以,像 {% link docs/page2.md %}


Set*_*ton 5

你应该使用 `{% post_url %}' 标签,例如:

{% post_url 2010-07-21-name-of-post %}
Run Code Online (Sandbox Code Playgroud)

Jekyll 文档中的更多详细信息:http : //jekyllrb.com/docs/templates/#post-url