導入
まずはいつも通り導入します
Gemfile
gem 'redcarpet'
$ sudo bundle install
仕様
redcarpet
は options
と extensions
によってカスタマイズが可能です
options
出力形式や有効化するHTMLタグを設定できます
以下のようなものがあります。
options | 内容 |
---|---|
filter_html | htmlタグの入力を無効化します |
hard_wrap | 空行を改行ではなく、改行を改行に変換します |
space_after_headers | #の後に空白がないと見出しと認めません |
extensions
適用するマークアップの設定ができます。
以下のようなものがあります。
extensions | 内容 |
---|---|
autolink | リンクを読み取ってリンクタグを適用します |
no_intra_emphasis | aaa_bbb_ccc の bbb を強調しないようにします |
fenced_code_blocks | Qiitaのように```に囲まれた部分をコードとして装飾します |
これだけで十分ですが、もっと詳しく知りたい方は本家をどうぞ
実装例
以下のようなhelperを作成しました。
*_helper.rb
def md_to_html(text)
options = {
filter_html: true,
hard_wrap: true,
space_after_headers: true,
}
extensions = {
autolink: true,
no_intra_emphasis: true,
fenced_code_blocks: true,
}
renderer = Redcarpet::Render::HTML.new(options)
markdown = Redcarpet::Markdown.new(renderer, extensions)
markdown.render(text).html_safe
end
上記の設定で md_to_html "md形式のテキスト"
でいつでもどこでもマークアップに対応できるようになります。