Jekyll内部的子模板
jekyll中是否有与laravel的Jekyll内部的子模板,jekyll,Jekyll,jekyll中是否有与laravel的@节(“”)块等效的代码?我试图做的是创建一个模板,可以压缩多个jekyll页面之间共享的html。例如: 默认布局 <html> <div class="page-content"> <div class="wrapper"> {{ content }} </div> </div> </html> {{content}} 第
@节(“”)
块等效的代码?我试图做的是创建一个模板,可以压缩多个jekyll页面之间共享的html。例如:
默认布局
<html>
<div class="page-content">
<div class="wrapper">
{{ content }}
</div>
</div>
</html>
{{content}}
第1页
---
layout: default
permalink: xxx
---
<head>
<title>My title</title>
{% include header.html %}
...
<div> <!-- A shared block between pages with different content --> </div>
....
<div> <!-- Another shared block between pages with different content --> </div>
{% include footer.html %}
</html>
---
布局:默认值
permalink:xxx
---
我的头衔
{%include header.html%}
...
....
{%include footer.html%}
看起来jekyll的当前产品允许您使用子模板,但将{{content}}
块限制为一个单独的文件,该文件也继承子模板。我需要创建一组彼此固有的文件来创建最终的html页面(或者我认为是这样)
在Laravel中对我有用的是使用多个@yield
和@section
语句轻松地将动态数据插入共享模板。我不认为Jekyll可以在不创建一堆嵌套子模板的情况下做到这一点,但我希望我错了 解决方案1:
你可以用它
您可能已经知道include,因为您正在问题的布局文件中使用它们
如果您的共享块只是HTML,那么只需要使用include
但也许(我不确定)共享块是文本,这意味着你想使用标记来格式化
默认情况下,Jekyll不会在include文件中渲染标记,但通过一些技巧,仍然可以包含标记文件
我有一个网站,我需要在多个页面上使用相同的文本块(带格式和链接),所以我这样做了:
\u includes
文件夹,例如\u includes/info.md
markdownify
液体过滤器来呈现标记:
{% capture tmp %}{% include info.md %}{% endcapture %}
{{ tmp | markdownify }}
解决方案2: 如果某些页面组的共享块相同,则可能需要使用多个布局文件 最好的例子是用Jekyll创建的博客: 您有一个“基本”布局(导航、侧边栏、页脚…)所有页面共享,并且“常规”页面直接使用该布局 然后,您有一个从主布局“继承”而来的第二个布局,它添加了诸如发布日期、标记等内容——所有博客文章都使用了这个布局