3
在Rails中存儲包含粗體,項目符號和不同大小的格式化文本的主體是什麼?爲MySQL和Heroku上的Rails設置豐富的文本支持
首先,text
字段類型是否有能力保存這個?
如果是這樣,那麼我確實需要使用富文本編輯器進行編輯,並使用<pre>
進行顯示?
在Rails中存儲包含粗體,項目符號和不同大小的格式化文本的主體是什麼?爲MySQL和Heroku上的Rails設置豐富的文本支持
首先,text
字段類型是否有能力保存這個?
如果是這樣,那麼我確實需要使用富文本編輯器進行編輯,並使用<pre>
進行顯示?
是的,text
類型設計用於存儲字符串。
通常的做法是使用生成HTML的Javascript富文本編輯器。將原始HTML直接保存到數據庫,然後在顯示時對其進行清理。這是爲了防止人們輸入Javascript和其他黑客進入文本區域,當其他訪問者查看他們的輸入時會被執行。
Rails 3默認會清理您的輸出,所以全部 HTML將被轉義。您需要撥打<%= @model.rich_text.html_safe %>
以跳過此消毒,或者(更好!)呼叫<%= sanitize(@model.rich_text, :tags => %w(b i p)) %>
,傳遞允許標記的明確列表。
我沒有Heroku的經驗,但我無法想象它會有什麼不同。
除JavaScript以外,您可以使用像wmd-editor這樣的降價編輯器和像bluecloth或RDiscount那樣的寶石 – 2011-03-15 11:34:23
絕對 - 在某些情況下,這是絕對可取的,因爲它避免了很多直接輸出HTML的問題,您的用戶可以更好地控制其格式。儘管這對用戶來說有點技術性。 Stackoverflow使用大規模殺傷性衍生物,給你一個markdown格式化語法的想法。 – nfm 2011-03-15 11:38:53
這是一個安全的HTML元素列表白名單? 'h1 h2 h3 h4 b i p pre div ul ol li li strong strike em a span img br' – sscirrus 2011-03-15 14:49:27