gpt4 book ai didi

variables - 如何在 Jekyll 中的 DRY 模板和 ninclude 之间传递变量

转载 作者:行者123 更新时间:2023-12-02 23:16:50 26 4
gpt4 key购买 nike

我有一个简单的博客网站,其中首页索引是帖子列表,未被截断,并且与各个页面完全相同地呈现。

我已经设置了索引页面并正在工作:

---
layout: default
---

<div>
{% for post in site.posts %}
{% include post/post.html %}
{% endfor %}
</div>

其中 post/post.html 包含使用 post 变量的帖子布局,如下所示:

<article>
<header>
{% include post/title.html %}
{% include post/metadata.html %}
</header>

<div class="entry-content" itemprop="text">
{{ post.content }}
</div>
</article>

现在,在特定的帖子页面上,我想重用此包含布局,以便我可以保持代码干燥,因此我让帖子使用 post.html 布局(与 >posts/post.html 上面):

---
layout: default
comments: true
---
{% include post/post.html %}

但问题是包含文件需要一个 post 变量存在,这样 post.content 就是您访问内容的方式。

我已经尝试过:

{% assign post = page %}

这似乎是传递变量的正确方法,但页面不是正确的,因为它呈现为 markdown 字符串而不是页面上的 html。

那么,我怎样才能传递self——或者任何需要的东西——以便索引页面或帖子页面不需要更改包含文件,从而共享相同的代码?

最佳答案

虽然 @David Jacquel 的答案有效,但我发现它不干净而且有点冗长,尽管它确实让我走上了正轨。

_includes/post/post.html{{ post.content }} 替换为 {{ body }}

<article>
<header>
{% include post/title.html %}
{% include post/metadata.html %}
</header>

<div class="entry-content" itemprop="text">
{{ body }}
</div>
</article>

_layouts/index.html 现在使用

{% assign body = post.content %}
{% include post/post.html %}

_layouts/post.html 使用:

{% assign post = page %}
{% assign body = content %}
{% include post/post.html %}

简单。

关于variables - 如何在 Jekyll 中的 DRY 模板和 ninclude 之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26742959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com