1

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

我正在使用 metalsmith-layouts 并在我手工制作的(非自动生成的)markdown 文件顶部有这些行,以便使用我的 layout.html 对它们进行布局:

---
layout: layout.html
title:  Downloads
---

如何将布局信息动态添加到所有匹配的文件,例如文件模式教程/*.md,以便这些文件也与我的布局一起呈现?在转换之前将此信息添加到文件中并不优雅。

4

2 回答 2

0

我最近刚刚编写了我的前几个 Metalsmith 插件,其中一个keymaster可以完全按照您的意愿进行操作。要将所有 tutorials/*.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 最近略有变化,请阅读文档。

于 2016-11-30T19:43:20.443 回答
0

期间我发现了。可以通过这种方式为文件模式定义默认布局:

// Apply the default layout to all .html files
.use(layouts({
    engine: 'handlebars',
    default: 'layout.html',
    directory: 'layouts',
    pattern: '**/*.html'
}))
于 2016-05-21T12:39:40.320 回答