rubytaiwan/ruby-taiwan — pull request #74 by chitsaou (2011-12-07 03:18:20+00:00)
Title: Refactor format_topic_body

現在把 parsing 的程式改成這樣：

1. 先 parse 三個 ` 的 code block ，會出現 pre
- 用 `simple_format` 硬是加上 `

` 和 `
`
- 把 `

` 裡面的 `

` 和 `
` 拿掉
- 用 `parse_paragraph` 把所有的 `

` 給抓出來，裡面做這些事：
- 把 `**` 變成 strong
- 把 `*` 變成 em
- 把 ` 變成 code
- 裡面如果有 `**` 或 `*` 則不 parse
- 對於不被包在 ` 裡面的字串，視為普通文字，執行由外面傳進來的 block，例如：
- `parse_bbcode_image` 用 `[img]` 放圖
- `auto_link` 自動加連結
- `link_mention_floor` 用 `#` 叫樓
- `link_mention_user` 用 `@` 叫某 user

這樣子邏輯比較清晰，要加什麼額外的 parser 都可以避開 `` 和 `

` 了。

我在我自己的另一個 branch "wiki-link" 就加入了自動連結 `[[wiki]]` 的 parser ，也是這樣子加入。