如果我想要一个页面的网址,那不是很复杂:
page.url
但是,如果我创建一个集合的工作,那么它会像包含而不是像页面一样被使用?
如果我制作这样的集合并要求page.url
,它会给我一个集合的路径,而不是当前网址的路径。
有没有办法在Jekyll中获取真正的当前网址?
编辑:示例
test.md:
---
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 %}
GOT:
Test page
/_blocks/block.md
预期:
Test page
test.md
答案 0 :(得分:0)
我一直在使用jekyll很短的时间,我依靠集合来构建我的第一个静态投资组合网站。到目前为止,我尝试获取当前URL的路径时的所有尝试都失败了。
为了达到理想的效果,我使用了Jekyll Liquid过滤器。
test.md:
---
whatever: true
---
{{ page.relative_path | replace:'index.html', '' | remove: '_blocks/' | prepend: site.baseurl }}
_blocks / block.md:
Test page
test.md
relative_path:
<强>更新强>
以下可能不是获取当前网址路径的最简单方法,但通过在文档的前端定义中定义---
whatever: true
relative_path: test.md
---
{% page.relative_path %}
,您也可以获得预期的结果,当然,这是每页所需要的。
{% page.relative_path %}
所以在这个非常具体的案例中
test.md
应输出
site
根据Jekyll's doc,当您创建一个集合时,它会通过site.posts
Liquid变量提供,非常类似于site.pages
和[StackView][1]
,因此您可以在大多数情况下能够使用可用的过滤器。
我希望它有所帮助!