目的
為了讓自己寫的網站擁有編輯器的功能,可以使用一些現成的編輯器來實現,如 ckeditor、ckeditor-rails、pagedown 諸如此類,由於已經喜歡上寫 markdown 的感覺,所以選了 pagedown-bootstrap-rails 來實現我的功能。
前言
了解 Markdown 怎麼寫之後,就習慣使用支援 markdown 的編輯器了嗎?
筆記
1. Gem
在使用 pagedown-bootstrap-rails 這個 gem 時,我們也得裝 Bootstrap3(Sass) 和 Font Awesome:
2. scss、js 設定
scss 的設定為:
js 中加入已下:
NOTE: bootstrap-sprockets 加在 //= require jquery 後,pagedown_init 加在 pagedown_bootstrap 後
3. SimpleForm 中使用 pagedown
先在 app 中加入 input 與 output 設定:
如此一來,在 simple form 中就可以透過 as: :pagedown
調用 pagedown editor
以上,就可以使用 Pagedown Editor 了!精美如下圖:
4. 顯示 markdown 型態資料
在使用 pagedown editor 輸入完文章或內容後,我們呈現時需要把內容由 Markdown 轉成 HTML,我們利用 javascript 將內容透過 Mardown.Converter
轉成 html 即可!主要有兩個步驟:
(1) 於 js 中撰寫 .wmd-output
設定
如果你使用 javascript:
app/javascripts/examples.js 1234567$(function() {$('.wmd-output').each(function(i) {var converter = new Markdown.Converter();var content = $(this).html();$(this).html(converter.makeHtml(content));});});如果你使用 coffeescript:
app/javascripts/examples.coffee 12345$ ->$('.wmd-output').each (i) ->converter = new Markdown.Convertercontent = $(this).html()$(this).html converter.makeHtml(content)
注意!以上程式碼縮排請自行重新縮排,以免有全形半形錯誤。
(2) 於 view 中調用 .wmd-output
這樣我們就可以在 view 中調用 .wmd-output
來呈現囉!
為使輸出為安全性之 html,我們使用 sanitize 作逸出(更新 2015.12.16)
|
|
以上,就完成了在 rails 中使用 pagedown editor 和顯示 Markdown 內容囉!
That’s it, DONE!
【參考資料】
- Pagedown-bootstrap-rails: https://github.com/hughevans/pagedown-bootstrap-rails
- Font-awesome-rails: https://github.com/bokmann/font-awesome-rails
- Rails 導入 Markdown 介紹: http://doruby.kbmj.com/nakanishi/20150729/rails_Markdown_
- Render Markdown in Rails4: http://stackoverflow.com/questions/21536816/rendering-pagedown-markdown-in-rails-4
- Haml Preserve: http://haml.info/docs/yardoc/Haml/Filters/Preserve.html