Phi*_*bin 24 ruby jekyll jekyll-extensions
为了让我的一些Jekyll网站变得简单,我总是使用相同的布局.也就是说,我总是在写类似的东西...
---
layout: default
title: Here's my Title
---
Run Code Online (Sandbox Code Playgroud)
...作为我页面顶部的YAML Front Matter.
然而,我宁愿写的只是...
---
title: Here's my Title
---
Run Code Online (Sandbox Code Playgroud)
...并让Jekyll假设它应该使用某种布局,就好像我已经明确地写了" layout: default"(或其他),如上所述.
我没有看到指定此行为的方法_config.yml.也许我可以写一个允许这个的Jekyll插件...有任何想法吗?
Mar*_*tin 27
这可以使用Frontmatter默认值完成:
defaults:
-
scope:
path: "" # empty string for all files
values:
layout: "default"
Run Code Online (Sandbox Code Playgroud)
此设置自Jekyll 版本2.0.0起可用.
更短,没有猴子补丁:
# _plugins/implicit_layout.rb
module ImplicitLayout
def read_yaml(*args)
super
self.data['layout'] ||= 'post'
end
end
Jekyll::Post.send(:include, ImplicitLayout)
Run Code Online (Sandbox Code Playgroud)
警告:GH Pages不会运行你的插件.