2008-09-05 133 views
11

我正在構建一個需要非常基本的標記功能的網站。我無法使用任何第三方插件,因此我只需要一種簡單的方法將標記轉換爲HTML。我可能總共有3個我會允許的標籤。將Wiki標記轉換爲HTML最簡單的方法是什麼?

==Heading==轉換爲<h2>Heading</h2>--bold--轉換成<b>bold</b>的最佳方法是什麼?這可以簡單地用Regex來完成,還是有人有一個簡單的功能?

我正在用C#寫這個,但其他語言的例子可能會起作用。

跟進: 這是我網站的一小部分,我喜歡簡單的使用簡單的正則表達式替換。我做在C#這項工作用下面的代碼:

string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>") 

.NET使用$ 1符號而不是在其他語言中使用的\ 1記號。

+0

http://blog.codinghorror.com/parsing-html-the-cthulhu-way/ – QuentinUK 2015-06-18 08:52:01

回答

4

這不是一個簡單的問題,因爲如果您要將事情展示給用戶,還需要對輸入進行清理以確保您不會創建任何cross site scripting漏洞。

也就是說,你可以做一些非常簡單的事情,因爲你用正則表達式替換最容易描述。

例如

replace the pattern ==([^=]*)== with <h2>\1</h2> 
1

我用降價(本網站使用相同的輕量級標記語言)。對於C#,有一個很好的源代碼可用here。它完全支持Markdown,儘管它似乎沒有被維護。但目前它運行得非常好,而且它是免費的開源軟件。

最好的部分是所有的工作都是爲你完成的,如果你將這個源代碼包含在你的項目中。它非常小;基本上只有一個方法調用將一段文本轉換爲HTML。

+0

蟒蛇相當於同樣存在:http://www.freewisdom.org/projects/python-markdown/ – SingleNegationElimination 2009-11-09 03:54:02

1

這真的取決於您使用的Wiki語法,因爲有幾種不同的語法。顯然,wiki軟件在某個地方具有此功能;如果你找不到能爲你做這件事的軟件包,你可以開始在你的wiki軟件中尋找相關的代碼。

0

爲您3個標籤可能是矯枉過正,但如果它吹起來成爲一個完全成熟的標記語言,而正則表達式的開始看起來嚇人,那麼你可能要考慮antlr

6

還有一個perl module和一個php project要做到這一點。源代碼可以用於開發自己的解決方案。

0

也許this是你所需要的。

該頁面的鏈接,說明和各種替代鏈接到MediaWiki解析器的狀態報告彙編 - 那就是,方案和項目,不是鏈接到MediaWiki本身以外,它們能夠或預期MediaWiki的文本標記語法翻譯成別的東西。

相關問題