私はSinatraを使用しており、SinatraはテンプレートのレンダリングにTiltを使用しています。
デフォルトでは、Redcarpetには多くのレンダリング拡張機能があります。#renderSinatraの方法でこれらの拡張機能の一部を使用するにはどうすればよいですか?
:gh_codeblock拡張子が付いたマークダウンファイルをレンダリングする必要があります。
Sinatra では、通常、renderメソッドを直接使用するのではなく、適切なテンプレート言語(この場合は ) に対応するメソッドを使用しますmarkdown。
必要なオプションをこのメソッドにハッシュとして渡すことができるはずであり、Sinatra (および Tilt) はそれらをテンプレート エンジンに渡します。ただし、最新のリリースされた Tilt gem (1.3.3) は、マークダウンのすべてのオプションを渡すわけではなく、 と のみを渡す:filter_htmlため:smart、これは機能しません。これは現在の Tilt ヘッドで修正されていますが、リリースされた gem にはまだ反映されていません。
Bundlerを使用している場合は、 Bundler の Git サポートを使用してこれを回避できます。
gem 'tilt', :git => 'git://github.com/rtomayko/tilt.git'
または、Tilt の最新バージョンをダウンロードlibし、そのディレクトリがアプリのロード パス上にあることを確認して、ディレクトリに配置することもできますvendor。
sinatra、tilt、redcarpet のソース コードを正しく読めば、次のようなことができるはずです。
render('your_view', {:gh_codeblock => true}, {HASH_OF_YOUR_LOCAL_VARIABLES})
レンダリングする 2 番目のパラメーターは、テンプレート エンジンに渡されるオプション ハッシュです。見る:
def markdown(template, options={}, locals={})
render :markdown, template, options, locals
end