一部のライブラリの非互換性のため、同じアプリケーションでPandocとHeistの両方を使用することはできません。そのため、クライアントのブラウザでMarkdown形式のデータからHTMLへの変換を処理するためにMarkdown.JSを使用することにしました。これは、長期的にはいくつかの優れた追加の利点をもたらす可能性がありますが、短期的には、PandocがBlaze-HTML 0.4に依存し、HeistがBlaze-HTML0.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>
繰り返しますが、それは逐語的にレンダリングします。
JavaScript内のentryDateでスプライスするようにHeistを説得するにはどうすればよいですか?
または、 Prototype.JSをJavascriptライブラリとして使用しています。スクリプトをdiv内に配置し、基本的に「self」でスクリプトを呼び出す方法はありますか?
<div id="body_${entryDate}">
<entryBody />
<script type="text/javascript">
renderDiv($(self))
</script>
</div>