注:これは非常に奇妙でユニークなユース ケースです。
Haml ファイルcontent.haml
と coffeescript ファイルがありますmain.coffee
。content.haml を coffeescript/結果の javascript の変数にレンダリングした結果の html をどうにかして取得したいと考えています。
最終結果は、ブラウザにレンダリングされた JavaScript ファイルになります。
それらが次のように見えるとしましょう:
# content.haml
.container
.some_content
blah blah blah
-
# main.coffee
html_content = ???
do_something_with_html_content(html_content)
「テンプレートを使用する」、「ajax を介して HTML を取得する」など、ばかげているように聞こえますが、この場合は不可能です。すべてを 1 つの JS ファイルで提供する必要があり、サーバーから他のリソースを取得することはできません。変ですね。
次のように文字列の配列を結合して、coffeescript ファイルの haml を手動で再構築する方法はありません。
html_content = [
'<div class"container">',
'<div class"some_content">',
'blah blah blah',
'</div>',
'</div>',
]
これを行う最善の方法がわかりません。
私が考えた別の方法は、コーヒーファイルに次のようなものを入れることでした:
html_content = '###CONTENT###'
次に、haml を ruby の html にレンダリングし、coffeescript を js に###CONTENT###
レンダリングしてから、クライアントに提供する前にレンダリングされた html に置き換えます。ただし、html は複数行の文字列であるため、javascript を完全に破壊します。
有効な JavaScript を形成するように、haml を変数内の html にレンダリングする別の優れた方法があるに違いないと確信していますが、私の脳は空白になりました。