在 metalsmith 中注册自定义车把助手
register custom handlebar helper in metalsmith
我正在使用 Metalsmith 从降价文件生成静态站点。
编辑 markdown 文件的人会写:{{{link "docs/file.docs"}}}
并且他们希望网站上有那个文件的 link(相对 link)
这个助手很简单,我测试过它可以工作:
handlebars.registerHelper('link', function(path) {
var url = handlebars.escapeExpression(path);
return new handlebars.SafeString(
"<a href='" + url + "'>" + url + "</a>"
);
});
但是我如何添加这个助手并在我的 metalsmith 配置中使用它?
这里是一个总结的例子。
index.md:
etc etc link to the page is {{{link "docs/file.doc"}}}
我想用一个简单的 make
创建 html 的以下部分:
etc etc link to the page is <a href='docs/file.doc'>docs/file.doc</a>
我在这里找到了答案:https://segment.com/blog/building-technical-documentation-with-metalsmith/
这是我的 index.js Metalsmith 配置:
var Metalsmith = require('metalsmith');
var markdown = require('metalsmith-markdown');
var permalinks = require('metalsmith-permalinks');
var handlebars = require('handlebars');
var inplace = require('metalsmith-in-place');
handlebars.registerHelper('link', function(path) {
var url = handlebars.escapeExpression(path);
return new handlebars.SafeString(
"<a href='" + url + "'>" + url + "</a>"
);
});
Metalsmith(__dirname)
.metadata({ title: "Static Site" })
.source('./src')
.destination('/var/www')
.use(inplace({ engine: 'handlebars', pattern: '**/*.md' }))
.use(markdown())
.build(function(err, files) {
if (err) { throw err; }
});
我正在使用 Metalsmith 从降价文件生成静态站点。
编辑 markdown 文件的人会写:{{{link "docs/file.docs"}}}
并且他们希望网站上有那个文件的 link(相对 link)
这个助手很简单,我测试过它可以工作:
handlebars.registerHelper('link', function(path) {
var url = handlebars.escapeExpression(path);
return new handlebars.SafeString(
"<a href='" + url + "'>" + url + "</a>"
);
});
但是我如何添加这个助手并在我的 metalsmith 配置中使用它?
这里是一个总结的例子。
index.md:
etc etc link to the page is {{{link "docs/file.doc"}}}
我想用一个简单的 make
创建 html 的以下部分:
etc etc link to the page is <a href='docs/file.doc'>docs/file.doc</a>
我在这里找到了答案:https://segment.com/blog/building-technical-documentation-with-metalsmith/
这是我的 index.js Metalsmith 配置:
var Metalsmith = require('metalsmith');
var markdown = require('metalsmith-markdown');
var permalinks = require('metalsmith-permalinks');
var handlebars = require('handlebars');
var inplace = require('metalsmith-in-place');
handlebars.registerHelper('link', function(path) {
var url = handlebars.escapeExpression(path);
return new handlebars.SafeString(
"<a href='" + url + "'>" + url + "</a>"
);
});
Metalsmith(__dirname)
.metadata({ title: "Static Site" })
.source('./src')
.destination('/var/www')
.use(inplace({ engine: 'handlebars', pattern: '**/*.md' }))
.use(markdown())
.build(function(err, files) {
if (err) { throw err; }
});