如何将布局元信息插入到与文件模式匹配的所有文件中



我有很多markdown源文件,它们是由一些数据导出步骤自动生成的。

我使用的是metalsmith布局,例如,在我手工制作(非自动生成)的标记文件上有这些行,以便使用我的布局进行布局。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

(注意:我的Regex并不完美,所以最后一行可能会关闭。

嗯,事实上第一行太笨重了,这让我有点想改变我的API。

注意,API最近略有更改,请阅读文档。

最新更新