UNPKG

docpad-plugin-marked

Version:
62 lines (56 loc) 1.78 kB
// Generated by CoffeeScript 2.5.1 // Export Plugin module.exports = function(BasePlugin) { var MarkedPlugin; return MarkedPlugin = (function() { // Define Plugin class MarkedPlugin extends BasePlugin { // Render some content render(opts, next) { var config, inExtension, marked, outExtension, renderer; // Prepare config = this.config; ({inExtension, outExtension} = opts); // Check our extensions if ((inExtension === 'md' || inExtension === 'markdown') && (outExtension === null || outExtension === 'html')) { // Requires marked = require('marked'); marked.setOptions(config.markedOptions); if (config.markedRenderer) { renderer = new marked.Renderer(); Object.keys(config.markedRenderer).forEach(function(key) { return renderer[key] = config.markedRenderer[key]; }); return marked(opts.content, { renderer: renderer }, function(err, result) { opts.content = result; return next(err); }); } // Render // use async form of marked in case highlight function requires it return marked(opts.content, function(err, result) { opts.content = result; return next(err); }); } else { // Done return next(); } } }; // Plugin name MarkedPlugin.prototype.name = 'marked'; // Plugin configuration MarkedPlugin.prototype.config = { markedOptions: { pedantic: false, gfm: true, sanitize: false, highlight: null } }; return MarkedPlugin; }).call(this); };