我得到了一些降价格式的文本,我想将它返回到我的模板中,以便它可以显示为 html。为此,我定义了一个 Handlebars 助手:
Handlebars.registerHelper('markdown_highlight', function (options) {
var converter = new Showdown.converter();
var res = '';
var html =converter.makeHtml(options.fn(this));
var high = hljs.highlightAuto(html).value;
res += high;
return res;
});
结果是格式化的,但它直接显示为 html:
pre><code> class Foo(object): def __init__(self, i, j): self.i, self.j = i, j def __str__(self): return “(%d, %d)” % (self.i, self.j) def __setitem__(self, idx, v): if idx == 0: self.i = v elif idx == 1: self.j = v else: raise RuntimeError(“Index out of bounds [0,1]”) </code></pre> <p>Make a subclass of Foo, named Bar, that implements the special methods <strong>eq</strong> and <strong>repr</strong>, such that the following code works: </p> <pre><code>&gt;&gt;&gt; f = Bar(1,2)age 3 &gt;&gt;&gt; g = Bar(2,2) &gt;&gt;&gt; f == g False &gt;&gt;&gt; g == eval(repr(g)) True &gt;&gt;&gt; g[0] = 1 &gt;&gt;&gt; f == g True </code></pre>
辅助函数中发生的事情并不那么重要,但有人可能会帮助解释我如何确保返回的 html 显示为 html。