由於某些庫不兼容,我無法在同一應用程序中同時使用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