UNPKG

mechanism-markdown

Version:
62 lines (46 loc) 1.22 kB
"use strict"; var fs = require("fs"); var path = require("path"); var markdownit = require("markdown-it"); function handler(opt, opt2, cb) { if (typeof opt2 === "function") { cb = opt2; opt2 = {}; }; opt = opt || {}; opt2 = opt2 || {}; function dump(error) { error.plugin = "mechanism-markdown"; error.opt = opt; error.opt2 = opt2; return error; }; var sources = opt.sources || []; var targets = opt.targets || []; var mkdirp = opt.shares.mkdirp; if (sources.length !== 1) return cb(dump( new Error("One source is required") )); if (targets.length !== 1) return cb(dump( new Error("One target is required") )); fs.readFile(sources[0], function(error, md) { if (error) return cb(dump(error)); var renderer = new markdownit(); var html = renderer.render(md.toString()); mkdirp(path.dirname(targets[0]), function(error) { if (error) return cb(dump(error)); fs.writeFile(targets[0], html, function(error) { if (error) return cb(dump(error)); return cb(); }); }); }); }; module.exports = function(opt2) { return { handler: function(opt, cb) { handler(opt, opt2, cb); } }; };