【问题标题】:Getting current url from a collection in Jekyll从 Jekyll 的集合中获取当前 url
【发布时间】:2015-06-27 20:00:44
【问题描述】:

如果我想获取一个页面的 url,这并不复杂:

page.url

但是,如果我创建一个集合,它的工作是用作包含而不是页面?

如果我创建这样一个集合并请求 page.url,它会为我提供集合的路径,而不是当前 url 的路径。

有没有办法在 Jekyll 中获取 real 当前 URL?

编辑:示例


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 %}

得到:

Test page

/_blocks/block.md

预期:

Test page

test.md

【问题讨论】:

    标签: jekyll


    【解决方案1】:

    我使用 jekyll 已经有一段时间了,我依靠集合来构建我的第一个静态投资组合网站。到目前为止,我在尝试获取当前 url 的路径时所做的所有尝试都失败了。

    为了达到预期的效果,我使用了 Jekyll Liquid 过滤器。

    根据您的问题,您将如何获得预期的结果:

    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 | replace:'index.html', '' | remove: '_blocks/' | prepend: site.baseurl }}
    

    测试页面上的输出

    Test page
    
    test.md
    

    更新:

    也许以下不是获取当前 url 路径的最直接的方法,但是通过在文档的前端定义中定义 relative_path: 您也可以获得您期望的结果,当然这是每页需要的东西。

    --- 
    whatever: true
    relative_path: test.md
    ---
    
    {% page.relative_path %}
    

    所以在这个非常特殊的情况下

    {% page.relative_path %}

    应该输出

    test.md
    

    Jekyll 的文档提醒:

    根据Jekyll's doc,当您创建一个集合时,它可以通过site Liquid 变量获得,非常类似于site.postssite.pages,因此您可以在大多数情况下使用可用的过滤器。

    希望对你有帮助!

    【讨论】:

    • Jekyll 行为在 3.0 中是否发生了变化?从我的例子中我可以猜到page.relative_path 在你的例子中会导致/block.md
    • 嗯,实际上不确定,也许确实如此。我刚刚检查了 Jekyll -v = 3.0 ,所以 Liquid 标签存在于我的 project.html 布局中的 _Layouts 和我的投资组合集合page.relative_path 导致_portfolio/test-project.md,无论如何,我认为这只是调整的问题过滤器。这可能不是一个巨大的成就,但至少当我尝试制作与您在此处描述的非常相似的东西时它起作用了。
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 2012-07-05
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多