将网站集从页面传递到布局 jekyll
Pass site collections from page to layout jekyll
我正在尝试将一个网站集传递到我的页面布局,以便能够根据我传递的部分制作我的导航菜单。
在我的_config.yml
collections:
tt:
output: true
在我的 index.md 页面中:
---
layout: mylayout
title: My Great Homepage
icon: fa-home
order: 1
sec: "{{site.tt}}"
---
在我的布局中:
---
layout: mylayout
---
{%- assign _sections = page.sec | flatify -%}
{%- include header.html scrolly_nav=_sections -%}
<!-- Main -->
<div id="main">
{{page.sec | flatify}} <!-- just to debug -->
</div>
Flatify 位于 _plugins/flatify.rb:
module Jekyll
module ExpandNestedVariableFilter
def flatify(input)
Liquid::Template.parse(input).render(@context)
end
end
end
Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
在我的布局中,使用 {%- assign _sections = site.sec | flatify -%}
效果很好,但是当我将集合从页面传递到布局时,它不起作用。
如果我做完全相同的事情,将 site.title
而不是 site.tt
从页面传递到布局,一切正常。但是当我尝试传递一个集合时,它不起作用。
感谢您的帮助。
你的 flatify 插件很酷,但它不能反映现实生活。
你不能在 front matter 中使用 liquid 变量,因为它们没有被解析。
在您页面的首页:
---
sec: "tt"
---
然后,从页面或布局中,您只需调用:
{%- assign _sections = site[page.sec] -%}
{%- include header.html scrolly_nav=_sections -%}
如果要调试,可以使用inspect
过滤器,只输出变量内容。
{{ page.sec | inspect }} or {{ site[page.sec] | inspect }}
我正在尝试将一个网站集传递到我的页面布局,以便能够根据我传递的部分制作我的导航菜单。
在我的_config.yml
collections:
tt:
output: true
在我的 index.md 页面中:
---
layout: mylayout
title: My Great Homepage
icon: fa-home
order: 1
sec: "{{site.tt}}"
---
在我的布局中:
---
layout: mylayout
---
{%- assign _sections = page.sec | flatify -%}
{%- include header.html scrolly_nav=_sections -%}
<!-- Main -->
<div id="main">
{{page.sec | flatify}} <!-- just to debug -->
</div>
Flatify 位于 _plugins/flatify.rb:
module Jekyll
module ExpandNestedVariableFilter
def flatify(input)
Liquid::Template.parse(input).render(@context)
end
end
end
Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
在我的布局中,使用 {%- assign _sections = site.sec | flatify -%}
效果很好,但是当我将集合从页面传递到布局时,它不起作用。
如果我做完全相同的事情,将 site.title
而不是 site.tt
从页面传递到布局,一切正常。但是当我尝试传递一个集合时,它不起作用。
感谢您的帮助。
你的 flatify 插件很酷,但它不能反映现实生活。
你不能在 front matter 中使用 liquid 变量,因为它们没有被解析。
在您页面的首页:
---
sec: "tt"
---
然后,从页面或布局中,您只需调用:
{%- assign _sections = site[page.sec] -%}
{%- include header.html scrolly_nav=_sections -%}
如果要调试,可以使用inspect
过滤器,只输出变量内容。
{{ page.sec | inspect }} or {{ site[page.sec] | inspect }}