【问题标题】:Reuse file path in Jekyll在 Jekyll 中重用文件路径
【发布时间】:2014-12-11 22:29:42
【问题描述】:

我对编写网站和 jekyll 非常陌生,所以如果我的术语不清楚或错误,我深表歉意。

我在我的根 jekyll 文件夹的一个名为“savedfiles”的子目录中有一堆保存的文件(foo1、foo2 等)。假设我正在编辑一个名为“子文件夹”的子文件夹中的 index.md,并且想要链接到其中的每一个。我可以做到这一点的一种方法是使用

{{ site.url }}/savedfiles/foo1
{{ site.url }}/savedfiles/foo2
etc

有没有办法将文件路径保存在变量 pathfoo 中以便我可以编写

{{ pathfoo }}/foo1
etc

与此相关,我可以获取 index.md 所在子文件夹的文件路径吗?我知道

{{ page.path }} 

会给我 {{ site.url }}/subfolder/index.md 但我想要 {{ site.url }}/subfolder。这可能吗?

【问题讨论】:

    标签: jekyll liquid


    【解决方案1】:

    在变量中保存路径

    {% capture path %}{{ site.url }}{{ site.baseurl}}/savedfiles/{% endcapture %}
    

    你现在可以像这样使用这个变量了:

    <a href="{{ path }}foo.html">Link to foo</a>
    

    从文件中获取文件路径

    这有点棘手。但这里有一个方法:

    {% assign pathParts = page.path | split: "/" %}
    {% assign length = pathParts.size | minus: 2 %}
    {% assign path = "" %}
    {% for c in (0..length) %}
        {% capture path %}{{ path }}/{{pathParts[c]}}{% endcapture %}
    {% endfor %}
    

    您现在有一个 path 变量,例如 /folder/subfolder。使用popshift 过滤器可能是最简单的,但它们没有按预期工作,并且会在 Jekyll 3.0 中发生变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      相关资源
      最近更新 更多