由于某些库不兼容,我无法在同一应用程序中同时使用Pandoc和Heist。因此,我决定用Markdown.JS来处理在客户端浏览器中从Markdown格式数据转换为HTML格式。从长远来看,这可能会带来一些额外的好处,但从短期来看,仅仅因为Pandoc依赖于Blaze-HTML 0.4而Heist依赖于Blaze-HTML 0.5。在javascript中嵌入海斯特标签
因此,在类似博客的应用程序中,我有一个用于填写每个条目的模板,但是每个条目的内容需要在页面加载后转换为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>
再一次,它呈现逐字。
我该如何说服海斯特在javascript的entryDate中拼接?
或者,我使用Prototype.JS作为Javascript库。有没有办法让我把脚本放到div里面,然后基本上用“self”来调用脚本?
<div id="body_${entryDate}">
<entryBody />
<script type="text/javascript">
renderDiv($(self))
</script>
</div>
谢谢。我试图直接使用pandocBS,因为我从另一个文件加载Markdown内容并将格式化版本放入模板中。 markdownSplice似乎要求降价内容已经在我的模板中,而事实并非如此。 Text.XML.Expat.Tree.parse'似乎没有产生一个容易转换成Text.XmlHtml的XML节点。所以,我直接使用Text.XmlHtml.parseXML,但在pandocBS中生成字体代码的“印刷正确”标志时遇到了问题,这是我无法处理的。 –
不,降价拼接不需要。以下是我们如何在Snap网站中使用它。 https://开头github上。com/snapframework/snap-website/blob/master/snaplets/heist/templates/faq.tpl – mightybyte
@mightybyte,你会如何推荐在这个问题中为示例生成javascript?我有一个类似的问题,我想设置一个环境变量来区分生产和开发,并且JS渲染需要使用它。 – jvans