0

我正在尝试扩展 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从源代码中删除。

4

0 回答 0