我一直在使用自定义车把帮助器摆弄多年,例如:
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转换器/扩展运行的想法都将非常感激。
答案 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}
参考