2013-05-12 51 views
0

大多數降價解析器產生非常類似HTML的輸出,但它可以略有不同。怎樣才能在Ruby中相同的HTML PageDown鍵生成?

有些解析器很嚴格,只允許this is **bold**但不this is ** bold **人都接受。還有很多其他的細微差別。

我想在前端使用PageDown鍵。哪個寶石或庫產生相同的HTML輸出?

結果在「預覽」應該是完全一樣在後臺生成的HTML。

回答

1

如果您想要完全相同的HTML,您可以簡單地將pagedown輸出與markdown源一起保存到數據庫中,並且只在Ruby中解析標記(如果沒有HTML輸出)(作爲回退,即禁用javascript時)或破碎)。

編輯

正如在評論中指出(謝謝!)這是一個潛在的安全問題,因爲攻擊者可以提交任意HTML。

另一種解決方案是在客戶端使用Node.js,並讓pagedown在那裏進行解析。

+0

請注意,這是攻擊者的控制之下。 – SLaks 2013-05-12 14:54:19

+0

我認爲這會帶來安全風險,因爲瀏覽器可能會向我發送任意HTML。我仍然需要清理輸入。這以某種方式否定了Markdown的一些好處。 – ayckoster 2013-05-12 14:54:21

+0

我必須承認這是一個相當大的風險。 – 2013-05-12 14:55:51

2

Pagedown說明表示這是日落的端口,因此沒有任何擴展的Redcarpet應該按預期工作。