在 Jekyll 中调用特定的页面变量
Call a specific page variable in Jekyll
是否可以将 特定的 page.variable
调用到 Jekyll 中的布局中?
我知道可以在布局中使用 {{ page.title }}
调用 current 页面标题,但是否可以调用 another 页面的标题。
例如。
{{ pageX.title }}
return标题来自pageX.html
我已经搜索过但找不到解决方案,我只是想看看是否有人知道这是否可行。
您可以在 site.pages
中使用页面索引。例如:{{ site.pages[0].title }}
这取决于您想如何 select 特定页面。例如,我有一个名为 "units" 的页面类别(可在 "site.categories.units" 下访问)。对于每个 "unit" 页面,我都以独特(且人类可读)的方式定义了 YAML 变量 "unit-id"。
假设我想使用 "unit-id" "my-first-unit" 访问该单元。我可以使用以下方式访问此页面的内容:
{{ site.categories.units | where: "unit-id","my-first-unit" }}
如果相反,我想做更复杂的事情,并且我需要访问存储在该特定页面的 YAML 序言(我们称之为 "whatever-YAML-variable")中的任何信息,则涉及更多:
{% assign this-unit = "my-first-unit" %}
{% for unit in site.categories.units %}{% if unit.unit-id == this-unit %}{{ unit.whatever-YAML-variable }}{% break %}{% endif %}{% endfor %}
请注意 de loop 中的指令被压缩(没有换行符)以避免在输出中出现大量空行 HTML。此外,我添加了一条 "break" 指令来减少处理器资源的浪费。
另请注意,您可以轻松地添加几行代码来控制 "my-first-unit" 页面是否存在,甚至可以在出现重复的情况下解决冲突。
我承认这是一种相当笨拙的方法,但这是第一个解决方案。我将期待任何其他更有力的建议。
假设您的文件名是唯一的,您可以通过过滤所有页面的 slug 来避免循环:
{% assign mypage = site.documents | where: "slug", "my-page-slug" | first %}
{{mypage.title}}
如果您有一个名为 "pageX.md" 的页面,您的 slug 将是 "pageX"。
是否可以将 特定的 page.variable
调用到 Jekyll 中的布局中?
我知道可以在布局中使用 {{ page.title }}
调用 current 页面标题,但是否可以调用 another 页面的标题。
例如。
{{ pageX.title }}
return标题来自pageX.html
我已经搜索过但找不到解决方案,我只是想看看是否有人知道这是否可行。
您可以在 site.pages
中使用页面索引。例如:{{ site.pages[0].title }}
这取决于您想如何 select 特定页面。例如,我有一个名为 "units" 的页面类别(可在 "site.categories.units" 下访问)。对于每个 "unit" 页面,我都以独特(且人类可读)的方式定义了 YAML 变量 "unit-id"。
假设我想使用 "unit-id" "my-first-unit" 访问该单元。我可以使用以下方式访问此页面的内容:
{{ site.categories.units | where: "unit-id","my-first-unit" }}
如果相反,我想做更复杂的事情,并且我需要访问存储在该特定页面的 YAML 序言(我们称之为 "whatever-YAML-variable")中的任何信息,则涉及更多:
{% assign this-unit = "my-first-unit" %}
{% for unit in site.categories.units %}{% if unit.unit-id == this-unit %}{{ unit.whatever-YAML-variable }}{% break %}{% endif %}{% endfor %}
请注意 de loop 中的指令被压缩(没有换行符)以避免在输出中出现大量空行 HTML。此外,我添加了一条 "break" 指令来减少处理器资源的浪费。
另请注意,您可以轻松地添加几行代码来控制 "my-first-unit" 页面是否存在,甚至可以在出现重复的情况下解决冲突。
我承认这是一种相当笨拙的方法,但这是第一个解决方案。我将期待任何其他更有力的建议。
假设您的文件名是唯一的,您可以通过过滤所有页面的 slug 来避免循环:
{% assign mypage = site.documents | where: "slug", "my-page-slug" | first %}
{{mypage.title}}
如果您有一个名为 "pageX.md" 的页面,您的 slug 将是 "pageX"。