我已经使用Jekyll多年了,有两件事我不喜欢:
- 无法在自己的文件夹中组织我的帖子,
- 必须为我创建的每个内容在前面设置布局。
我以为我很了解 Jekyll,但最近我发现我的第二个问题已经通过Front Matter Defaults解决了一段时间。这是什么 ?
这只是一种根据路径、类型或内容集合等规则在内容的前面设置一些默认值的方法。
设置所有内容的默认布局
到目前为止,我每次创建内容时都必须设置布局,这非常烦人,因为它始终是我用于页面的my-default-layout
布局和创建帖子时的my-post-layout
。
通过 Front Matter Defaults,可以很容易地告诉 Jekyll 在您创建的所有内容上默认使用什么布局。在_config.yml
中添加以下内容,以便对每个内容使用my-default-layout
:
defaults : - scope : path : " " # an empty string here means all files in the project values : layout : " my-default-layout"
当您编辑_config.yml
时,Jekyll 无法重新加载自身,每次编辑时都需要重新启动 Jekyll 进程。另一件事,我显然不会这样命名我的布局,您需要根据您的安装调整布局的名称。
重新启动并检查一切正常后,您可以从所有页面的前面删除所有layout
线,因为它现在默认设置为my-default-layout
。
设置所有帖子的布局
也许像我一样,您的页面和内容可能不会使用相同的布局,在这种情况下,Front Matter Defaults 也可以帮助您,您可以仅向某些类型的内容添加一些值。我需要将布局my-posts-layout
应用于我的所有帖子,可以通过以下配置轻松完成:
defaults : - scope : type : " posts" # apply the value to all posts values : layout : " my-posts-layout"
不要忘记重新启动 Jekyll 并从前面删除所有layout
行,因为它将不再有用……
结论
借助 Front Matter Default,您将能够更加轻松地使用 Jekyll,因为不再需要为您的内容设置布局。现在,我网站的所有页面和帖子都有最简单的标题:
--- title: Here is a title description: And the description of my post ---
这是一件小事,但却是一个有价值的改变。
原文: https://www.johanbleuzen.fr/blog/use-jekyll-front-matter-defaults-set-layouts