CodeRayで Textile (RedCloth) を使用するためのRailscastとASCIIcastがあることは承知しており、その方法はヘルパーによるものです。
module ApplicationHelper
def coderay(text)
text.gsub(/\<code( lang="(.+?)")?\>(.+?)\<\/code\>/m) do
CodeRay.scan($3, $2).div(:css => :class)
end
end
end
と
<%= textilize(coderay(@article.content)) %>
そのため、 (CodeRay が機能するように) が@article.content既にラップされている<code>ことが前提です...</code>
しかし、それがMarkdownの場合は、StackOverflowのように「4スペースのインデント」を最初に変換して最初<code>に</code>フォーマットする必要があります。
したがって、この場合、使用できるようです
<%= coderay(Markdown.new(@article.content).to_html).html_safe #html_safe for Rails 3 %>
そのため、最初 に CodeRay が使用するフォーマットを取得し、基本的<code>にCodeRay の結果に置き換えます。</code>/<code>.*?</code>/m
これは適切な方法ですか?しかし、実際に<code>「</code>4スペースでインデントされた」コードがある場合、ネストされた があるため、実際にはこの処理がチョークされ<code>、最初のもの<code>が一致し、2番目<code>がCodeRayの単なるコンテンツとしてスキップされ、次に最初</code>に 2 番目の</code>ぶら下がりを未処理のままにします。これはどのように行うことができますか? CodeRay にはいくつかの Markdown オプションがありますか?