从Jekyll中的集合获取当前url
如果我想获取页面的url,它并不复杂:从Jekyll中的集合获取当前url,jekyll,Jekyll,如果我想获取页面的url,它并不复杂: page.url 但是,如果我制作了一个集合,它将被用作包含而不是页面,该怎么办 如果我创建这样一个集合并请求page.url,它会给出集合的路径,而不是当前url的路径 有没有办法在Jekyll中获取真实的当前URL 编辑:示例 test.md: --- title: Test page permalink: /test/ --- Test page {% for block in site.blocks %} {% if block.w
page.url
但是,如果我制作了一个集合,它将被用作包含而不是页面,该怎么办
如果我创建这样一个集合并请求page.url
,它会给出集合的路径,而不是当前url的路径
有没有办法在Jekyll中获取真实的当前URL
编辑:示例
test.md:
---
title: Test page
permalink: /test/
---
Test page
{% for block in site.blocks %}
{% if block.whatever %}
{{ block.content }}
{% endif %}
{% endfor %}
---
title: Test page
permalink: /test/
---
Test page
{% for block in site.blocks %}
{% if block.whatever %}
{{ block.content }}
{% endif %}
{% endfor %}
_blocks/block.md:
---
whatever: true
---
{% page.relative_path %}
---
whatever: true
---
{{ page.relative_path | replace:'index.html', '' | remove: '_blocks/' | prepend: site.baseurl }}
得到:
预期:
Test page
test.md
我使用jekyll的时间很短,我依靠collections来构建我的第一个静态投资组合网站。到目前为止,我所有试图获取当前url路径的尝试都失败了 为了达到预期的效果,我使用了Jekyll液体过滤器 以下是您如何根据您的问题获得预期结果: test.md:
---
title: Test page
permalink: /test/
---
Test page
{% for block in site.blocks %}
{% if block.whatever %}
{{ block.content }}
{% endif %}
{% endfor %}
---
title: Test page
permalink: /test/
---
Test page
{% for block in site.blocks %}
{% if block.whatever %}
{{ block.content }}
{% endif %}
{% endfor %}
_blocks/block.md:
---
whatever: true
---
{% page.relative_path %}
---
whatever: true
---
{{ page.relative_path | replace:'index.html', '' | remove: '_blocks/' | prepend: site.baseurl }}
测试页面上的输出
更新:
也许下面的方法不是获取当前url路径的最简单方法,但是通过在文档的前端定义中定义相对路径:
,您也会得到您期望的结果,当然这是每页都需要的
---
whatever: true
relative_path: test.md
---
{% page.relative_path %}
所以在这个非常特殊的情况下
{%page.relative_path%}
应该输出
test.md
杰基尔医生提醒:
根据,当您创建一个集合时,它将通过site
Liquid变量变得可用,非常类似于site.posts
和site.pages
,因此在大多数情况下您都可以使用可用的过滤器
我希望有帮助 杰基尔的行为在3.0中发生了变化吗?从我的示例中,我可以猜到在您的示例中,
page.relative_path
会导致/block.md
,但实际上不确定,可能是这样。我刚刚检查了Jekyll-v=3.0,因此液体标签存在于我的project.html布局中的_Layouts和我的公文包集合页面中。相对路径
导致\u公文包/test project.md
,无论如何,我认为这只是调整过滤器的问题。这可能不是一个巨大的成就,但至少在我尝试制作与你在这里描述的非常相似的东西时,它起了作用。