jekyll - 传递 Jekyll 变量 "up"范围

标签 jekyll liquid

我试图在我的内容页面中设置一个 Jekyll (Liquid) 变量,并在包含的 Jekyll 模板中公开该变量及其内容。在此用例中,我想在单个 MD 文件中编写主页内容和侧边栏内容,但要控制所述内容的注入(inject)。

这是我的设置..

_layouts/default.html

<div>{{ content }}</div>
<div class="side-bar">{% include sidebar.html sidebarContent=sidebar %}

_includes/sidebar.html

{{ include.sidebarContent }}

pages/my-content-page.md

----
layout:default
----

This is the main content portion's content.

{% capture sidebar %}
This is the sidebar content

* one
* two
{% endcapture %}

似乎没有办法将“侧边栏”变量向上传递到作用域;我似乎只能把它传递下去。我想要做的就是将单个页面的内容创作分开(由 2 个离散区域组成;内容和边栏)并避免将布局标记引入我的“内容”文件(也称为 MD 文件)。

如果有办法我可以将它们分解成不同的 MD 文件,我也会对此持开放态度...例如。

my-page.md
my_page_sidebar.md

my_page/index.md
my_page/sidebar.md

我在这方面有一些回旋余地,因为我使用的是页面而不是帖子。

最佳答案

在页面中,当您处于布局中时,您可以从 front mattercontent 本身获取数据。所以只有 page.something 变量可用。

但是,无法在页面内容中捕获分配并从布局中获取结果变量。

您可以尝试将侧边栏存储在您的首页,但这可能很棘手。

一种解决方案是使用类似 excerpt separator 的内容将内容与侧边栏分开被帖子使用。

_config.yml中设置

content_separator: "<!--separator-->"

在您的页面中:

This is the main content portion's content.

{{ site.content_separator }}

This is the sidebar content

* one
* two

在你的模板中:

{% assign contentSplitted = content | split: site.content_separator %}
{% assign myContent = contentSplitted | first %}
{% assign navbar = contentSplitted | last %}

<div>{{ myContent }}</div>
<div class="side-bar">{{ navbar }}</div>

请注意,我使用 myContent 作为 content 变量已被使用。

关于jekyll - 传递 Jekyll 变量 "up"范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442692/

相关文章:

loops - 如何使用 Liquid (Shopify) 遍历商店的所有产品?

templates - 在Liquid模板中输出文字大括号

Shopify - 获取液体产品标题?

jekyll - 如何检查页面上是否存在标签?

jekyll - 在最后一个 Jekyll 帖子循环中添加一个元素

jekyll - 本地构建 jekyll 站点并将其推送到 github 页面

javascript - 如何将类 'active' 添加到 href 在 location.pathname 中的导航项

jekyll - 在 Jekyll 中,如何获取具有特定标签的所有页面并将结果限制为 3?

javascript - 在每个固定高度段落的最后一行添加省略号,并 overflow hidden -y

scope - 错误: Liquid syntax error: Unknown tag -- variable scope?