在Jekyll中重用文件路径

时间:2014-12-11 22:29:43

标签: jekyll liquid

我对编写网站和jekyll非常新,所以如果我的术语不清楚或错误,我会道歉。

我的root jekyll文件夹名为'savedfiles'的子目录中有一堆保存的文件(foo1,foo2等)。假设我正在编辑index.md,它位于名为“子文件夹”的子文件夹中,并希望链接到其中的每一个。我可以这样做的一种方法是使用

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

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

{{ pathfoo }}/foo1
etc

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

{{ page.path }} 

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

1 个答案:

答案 0 :(得分:3)

在变量中保存路径

{% 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中更改。