我正在尝试扩展 node.js 模块以进行降价到 HTML 的转换。目前,我这样做是为了预处理降价字符串data
:
md = require('marked');
/**
* Preprocesses a markdown string before it gets parsed by the 'marked' module
**/
exports.markdownToHTML = function(data) {
data = data.replace(/(\[youtube\]\(.*\))/gi, youtubeProcessor);
data = md.parse(data);
return data;
};
/**
* Looks for substring [youtube](videoid) and returns the iframe tag
**/
exports.youtubeProcessor = function(match) {
var regexp = /\[youtube\]\((.*)\)/;
var id = regexp.exec(match)[1];
var youtube = "<iframe width='420' height='315' src='http://www.youtube.com/embed/_{id}' frameborder='0' allowfullscreen></iframe>";
youtube = youtube.replace("{id}",id);
return youtube;
}
这不是经过深思熟虑的,而且很丑陋。设计可扩展的模块化预处理器的最佳方式是什么?我是函数式编程和 javascript 的新手,因此正在寻找设计模式。
在我看来,您将如何实现markdownToHtml
具有可扩展性的方法(进一步的“处理器”)?
编辑:this
从源代码中删除。