7

我希望用戶在textarea中輸入Markdown文本,當他們發佈它時,我會顯示相應的html。我讀了滑軌以前有個markdown方法或類似的調用方法,你可能只是在那場呼籲在ERB文件:使用Markdown和Rails

<%= markdown(@post.content) %> 

顯然,Rails的把這個功能了。什麼是再次獲得該功能的最佳方式?這似乎解決了我的需要。

回答

12

我會用Redcarpet做markdown-html轉換。另外,我會將視圖轉換爲其他對象。您可以使用callbacksbefore_save)或使用Observers

the docs

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, 
    :autolink => true, :space_after_headers => true) 

markdown.render("This is *bongos*, indeed.") 
#=> "<p>This is <em>bongos</em>, indeed</p>" 

你可能想將結果存儲在另一列說@post.content_parsed使用戶可以進行編輯後到後,再加上這樣你就不需要做每次請求轉換。

+1

哪裏是在Rails應用程序中實例化Redcarpet :: Markdown對象的最佳位置? –

+0

我擴大了答案。 –

+1

Redcarpet github頁面建議只實例化'Redcarpet :: Markdown'一次,然後在需要時調用'render'。有道理,但是我在哪裏可以在我的Rails應用程序中實例化'Redcarpet :: Markdown'? –