如何将布局元信息插入到与文件模式匹配的所有文件中?
How to insert layout meta info into all files matching a file pattern?
我有很多markdown源文件,都是一些数据导出步骤自动生成的。
我正在使用 metalsmith-layouts 并且有例如这些行位于我手工制作的(不是自动生成的)markdown 文件之上,以便使用我的 layout.html:
对其进行布局
---
layout: layout.html
title: Downloads
---
如何将布局信息动态添加到所有匹配的文件,例如文件模式 tutorials/*.md,以便这些文件也与我的布局一起呈现?在转换之前将此信息添加到文件中并不优雅。
同时我发现了它。可以通过这种方式为文件模式定义默认布局:
// Apply the default layout to all .html files
.use(layouts({
engine: 'handlebars',
default: 'layout.html',
directory: 'layouts',
pattern: '**/*.html'
}))
我最近刚刚编写了我的前几个 Metalsmith 插件,其中一个 keymaster 可以完全满足您最初的需求。要将所有教程/*.md 文件的布局信息设置为 "foobar.html",您需要
use(keymaster(function() { return "foobar.html; }, // set it to "foobar.html"
"layout", // in the layout field
/tutorials.*md/); // for files matching this regex
(注意:我的正则表达式并不完美,因此最后一行可能会关闭。
嗯,第一行太笨拙让我想稍微改变一下我的 API。
注意,API 最近 略有 更改,请阅读文档。
我有很多markdown源文件,都是一些数据导出步骤自动生成的。
我正在使用 metalsmith-layouts 并且有例如这些行位于我手工制作的(不是自动生成的)markdown 文件之上,以便使用我的 layout.html:
对其进行布局---
layout: layout.html
title: Downloads
---
如何将布局信息动态添加到所有匹配的文件,例如文件模式 tutorials/*.md,以便这些文件也与我的布局一起呈现?在转换之前将此信息添加到文件中并不优雅。
同时我发现了它。可以通过这种方式为文件模式定义默认布局:
// Apply the default layout to all .html files
.use(layouts({
engine: 'handlebars',
default: 'layout.html',
directory: 'layouts',
pattern: '**/*.html'
}))
我最近刚刚编写了我的前几个 Metalsmith 插件,其中一个 keymaster 可以完全满足您最初的需求。要将所有教程/*.md 文件的布局信息设置为 "foobar.html",您需要
use(keymaster(function() { return "foobar.html; }, // set it to "foobar.html"
"layout", // in the layout field
/tutorials.*md/); // for files matching this regex
(注意:我的正则表达式并不完美,因此最后一行可能会关闭。
嗯,第一行太笨拙让我想稍微改变一下我的 API。
注意,API 最近 略有 更改,请阅读文档。