Railsでmarkdown形式のテキストを出力する

使用するもの

  • BlueCloth

GemFile

gem 'bluecloth', '>= 2.0.0'

Rails(3系)ならversionの指定はしなくても、普通に2系が入る

BlueClothの呼び出し方・使い方

application_helper.rbとかで以下のように定義しとくとする

module ApplicationHelper

  def markdown(text)
    BlueCloth.new(text).to_html
  end

end

で、formは以下のようにテキストエリアで受け取る

<div class="field">
    <%= f.label :content %>
    <%= f.text_area :content %>
</div>

後は適当なViewで以下のようにヘルパーの関数とsimple_formatで呼び出す

<!--@dataはモデルの名前に依存-->
<%= simple_format(markdown(@data.content)) %>

参考

BlueCloth isn't working with Rails 3
http://stackoverflow.com/questions/3602040/bluecloth-isnt-working-with-rails-3

textareaで入力した文章の改行、htmlタグが反映されるようにする
http://hajimete-ruby.jugem.jp/?eid=45

しかし

これ、コードハイライトに関しては適用されないので、それ以外の方法は後で適当に書く