Railsはmarkdownとコードのハイライトを実現します

1140 ワード

インストールGEM
Markdownは現在流行しているタグ言語です.
htmlコードを簡単に生成でき、githubのREADMEはこのような形式で再コードディレクトリの下に表示されます.
Ruby/Railsは多くのGemを利用して、markdownのサポートを迅速に行うことができ、コードのハイライトに対するサポートを含むことができます.
Gemが多すぎて、実現方法も多すぎます.
比較的迅速に開発できる方法を紹介します.redcarpetとCodeRayの2つのGemを用いた.
 gem 'redcarpet'
    gem 'coderay'

アプリケーションを開くhelper.rb、次のコードを追加します.
 def markdown(text)
       options = {   
           :autolink => true, 
           :space_after_headers => true,
           :fenced_code_blocks => true,
           :no_intra_emphasis => true,
           :hard_wrap => true,
           :strikethrough =>true
         }
       markdown = Redcarpet::Markdown.new(HTMLwithCodeRay,options)
       markdown.render(h(text)).html_safe
     end

     class HTMLwithCodeRay < Redcarpet::Render::HTML
       def block_code(code, language)
         CodeRay.scan(code, language).div(:tab_width=>2)
       end
     end

erbに表示
<%= markdown(@post.content) %>