由于某些库不兼容,我无法在同一个应用程序中同时使用 Pandoc 和 Heist。因此,我决定使用Markdown.JS在客户端浏览器中处理从 Markdown 格式数据到 HTML 的转换。从长远来看,这可能会带来一些额外的好处,但从短期来看,这只是因为 Pandoc 依赖于 Blaze-HTML 0.4 而 Heist 依赖于 Blaze-HTML 0.5。
所以,在一个类似博客的应用程序中,我有一个用于填写每个条目的模板,但是每个条目的内容需要在页面加载后转换为 HTML。因此,我创建了一个如下所示的模板:
<h2> <a href="wiki/${target}"><entryTitle /></a> </h2>
<p class="entryDate"> <entryDate /> </p>
<div id="body_${entryDate}">
<entryBody />
</div>
<script type="text/javascript">
renderDiv("body_" + <entryDate />)
</script>
不幸的是,renderDiv 调用最终呈现如下:
<script type='text/javascript'>
renderDiv("body_" + <entryDate />)
</script>
我也尝试过使用字符串嵌入形式(就像我为模板中的 div id 所做的那样):
<script type="text/javascript">
renderDiv("body_${entryDate}")
</script>
再次,它逐字呈现。
如何说服 Heist 在 javascript 中拼接 entryDate?
或者,我使用Prototype.JS作为 Javascript 库。有没有办法让我将脚本放在 div 中并基本上用“self”调用脚本?
<div id="body_${entryDate}">
<entryBody />
<script type="text/javascript">
renderDiv($(self))
</script>
</div>