Meteor.js和Showdown扩展 - 如何将表扩展添加到渲染器/转换器?

时间:2014-04-15 13:18:25

标签: javascript meteor markdown meteorite showdown

我一直在使用自定义车把帮助器摆弄多年,例如:

Handlebars.registerHelper('markdowner', function (input) {

  var converter = new Showdown.converter({ extensions: 'tables' });

  return converter.makeHtml(input);

});

但我被抛出了:

Uncaught TypeError: Cannot call method 'replace' of undefined 
尝试调用助手时,从showdown.js

我还尝试在Meteor加载时重新定义转换器,但它被忽略 - 任何关于如何获得showdown转换器/扩展运行的想法都将非常感激。

1 个答案:

答案 0 :(得分:2)

您需要将扩展​​名作为数组提供,并且您还需要将该扩展名称为“table”而不是“tables”(基于Showdown gitgub存储库中的table.js文件,如下所示)。

var converter = new Showdown.converter({ extensions: ['table'] });

我在遇到同样的错误后自己实施了这个。

加载扩展程序后,您应该可以从控制台运行它并让它返回一些内容。

$ window.Showdown.extensions.table

要从控制台测试它,请尝试以下方法:

new Showdown.converter({extensions:['table']}).makeHtml("| A | B | C | \n |-|-|").htmlSafe()

应输出

SafeString {string: "<table>↵<thead>↵<tr>↵<th id="a" style="text-align:…C </th>↵</tr>↵</thead>↵↵<tbody>↵</tbody>↵</table>", toString: function}

参考

  1. table.js - https://raw.githubusercontent.com/coreyti/showdown/master/src/extensions/table.js
  2. 我在这里找到了数组引用:http://www.sluse.com/view/20863978