2016-11-01 4 views
0

Ich benutze Metalsmith, um eine statische Website aus einer Markdown-Datei zu generieren.Register benutzerdefinierte Lenkstange Helfer in metalsmith

Die Leute, die Abschlags-Datei bearbeiten wird schreiben: {{{link "docs/file.docs"}}} und sie erwarten einen Link auf der Website mit dieser Datei (relative Link)

Der Helfer einfach ist, habe ich getestet und es funktioniert:

handlebars.registerHelper('link', function(path) { 
    var url = handlebars.escapeExpression(path); 

    return new handlebars.SafeString(
    "<a href='" + url + "'>" + url + "</a>" 
); 
}); 

Aber wie kann ich diesen Helfer hinzufügen und in meiner metalsmith-Konfiguration verwenden?

Hier ist ein zusammenfassendes Beispiel.
index.md:

etc etc link to the page is {{{link "docs/file.doc"}}} 

ich mit einer einfachen make dem folgenden Teil des HTML erstellt werden soll:

etc etc link to the page is <a href='docs/file.doc'>docs/file.doc</a> 

Antwort

0

fand ich die Antwort hier: https://segment.com/blog/building-technical-documentation-with-metalsmith/

Hier ist mein index.js config für 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; } 
    }); 
Verwandte Themen