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 オプションがありますか?