2013-02-26 47 views
1
字符串定製to_html方法

我有這樣的字符串:#_大家好_#,我需要建立一個像這樣的輸出:使用Ruby

<strong>Hi All</strong> 

在Ruby中我一直在Google上搜尋關於解析器,但我可以找到一些小而簡單的東西來學習如何做這種事情。

任何人都可以用文檔或想法來幫助我做到這一點?

感謝

+2

示例與降價標準非常相似。你檢查減價?你可以編寫你自己的渲染規則。 http://asciicasts.com/episodes/272-markdown-with-redcarpet – onurozgurozkan 2013-02-26 00:32:48

+0

我無法完全理解Redcarpet的源代碼......你知道任何關於如何編寫自己的語法解釋器的例子嗎? – 2013-02-26 01:00:46

+0

你有任何選擇使用哪種語法的問題?爲什麼不使用着名的廣泛使用的減價和紡織品?編寫語法解釋器並不是一項簡單的任務。 – 2013-02-26 01:09:52

回答

1

小而簡單:

text = "#_ Hi all _#" 

html = text.gsub(/#_ /,'<strong>').gsub(/ _#/,'</strong>') 

稍微更先進:

tags = { 
    '#_ ' => '<strong>', ' _#' => '</strong>', 
    '#q ' => '<blockquote>', ' q#' => '</blockquote>' 
} 

html = text.gsub(/(#_ | _#|#q | q#)/){ tags[$1] } 

的一些想法更先進的功能,如果你想:

  • 幫助T AG逃脫,如\#_手段「顯示此標記原樣」

  • 確保起始標籤都有相應的停止標籤,如「#_ ... _#」

  • 啓用拼圖,這樣的as「#_ ... #_ ... _#... _#

  • 從標籤哈希中動態生成gsub正則表達式。

你見過Maruku紅寶石降價解析器?我喜歡它的代碼庫,並且它有很多評論可以指導您:https://github.com/bhollis/maruku

+0

哇!謝謝...這些數據是從數十年前的數據輸出中導入的......我只是想清除文本...謝謝我將檢查鏈接,因爲現在我的數據在邊界內具有類似的標記:°°大家好 – 2013-02-26 03:20:36