2012-03-09 37 views
8

我正在開發一個Python/Django wiki,部分用於教育目的。到目前爲止,我仍然錯過了正確的標記語言。我嘗試了很多觀點,其中包括克里奧爾和Markdown,除了桌面支持外,它們運行良好。常見的wiki標記語言似乎只支持基本的表格,即每個單元格有一行,或者單元格內沒有複雜的標記。但是我的wiki的用戶希望能夠在單元格中創建具有更大的合成文本和列表的表格。我遇到了與找到實際可以做到這一點的標記語言有關的問題。具有出色表格支持的Wiki標記語言

我注視了MediaWiki標記語言,它似乎支持所有內容,但我認爲使用它會過度。其餘的標記可以非常簡單,重點在於標記的易寫性(有時我發現MediaWiki標記有點難看)。此外,必須有一個Python模塊將標記轉換爲HTML,我可以在Web應用程序中使用它。我仍然在尋找MediaWiki標記。

另一種選擇是轉儲維基標記語言,而不是允許一組定義的HTML標記用於標記。但是這使得編寫wiki文章變得更加困難,因爲HTML不是爲這種用途而發明的。並且查找和轉義禁止的HTML可能相當棘手。我寧願使用輕量級的Python實現來使用好的標記語言。

有誰知道標記語言擴展表支持和Python中的實現,我可以使用?

在此先感謝!

回答

1

我發現自己找到了一個解決方案,因爲我發現需要複雜的技術上沒有經驗的用戶使用。我可能會有點複雜,但它適用於我。

關鍵是對現有標記語言的擴展。儘管缺乏桌面支持,我發現Markdown相當令人愉快。使用Python-Markdown,here是編寫自己的擴展需要知道的一切。這並不複雜。我在半小時之內共同攻擊了一些東西,實際上它工作得很好。我會在這裏展示代碼,但是我還沒有爲此感到驕傲;)基本上,你解析一個標記塊並在DOM中插入表格元素,只要你喜歡。

我想標記語言的每個可用實現都應該有某種擴展機制,所以應該可以爲其他語言和實現編寫擴展。這不是最方便的解決方案,但仍然比僅僅爲了功能而使用一些難看的語言更好。

4

我不知道它是否滿足您的需求,但您可以使用reStructuredTextSphinx從它生成的Python的Python文檔和它的Python寫的,所以它應該很容易用於此目的。我發現它的設計非常簡潔易讀,它可以完成相當複雜的表格。

+0

+1雖然我不確定'rest'是一種標記語言。 – Simon 2012-03-09 12:20:20

+0

我想標記語言的確切定義有點不同,所以我不知道'rest'在技術上是否屬於這個類別,但它易於編寫,易於閱讀和編譯爲漂亮的html,所以它可能是這種用法的一個很好的候選人。 – aquavitae 2012-03-09 12:30:07

+0

感謝您的建議。 reST確實支持我需要的所有東西,甚至在Django中集成。但是,如果您查看複雜表格的實際標記,那麼對於非技術人員而言,我不覺得那麼容易閱讀,甚至更難寫太多。至少,如果一個細胞增長了一點,我不希望被迫適應整個色譜柱。我想知道Python開發人員如何做到這一點;)無論如何,謝謝! – j0ker 2012-03-11 01:38:31