Wiki标记语言,具有出色的表支持

时间:2012-03-09 02:29:53

标签: python wiki-markup

我正在使用Python / Django开发一个wiki,部分用于教育目的。到目前为止,我仍然缺少正确的标记语言。我尝试了很多观点,包括Creole和Markdown,除了桌面支持外,它运作良好。常见的wiki标记语言似乎只支持基本表,即每个单元格单行或单元格内没有复杂标记。但是我的wiki用户希望能够在单元格中创建具有更大格式文本和列表的表格。我遇到了找到实际上可以做到这一点的标记语言的问题。

我注意到MediaWiki标记语言似乎支持所有内容,但我认为使用它会有点过分。标记的其余部分可以非常简单,重点放在标记的易写性上(我发现MediaWiki标记有时候有些丑陋)。此外,必须有一个Python模块,用于将标记转换为HTML,我可以在webapp中使用它。我还在为MediaWiki标记寻找一个。

另一种选择是转储wiki标记语言,而是允许一组定义的HTML标记用于标记。但这使得编写维基文章变得更加困难,因为HTML不是为此类用途而发明的。并且查找和转发禁止的HTML可能非常棘手。我宁愿使用一个很好的标记语言和轻量级的Python实现。

有没有人知道扩展表支持的标记语言和我可以使用的Python实现?

提前致谢!

2 个答案:

答案 0 :(得分:4)

我不知道它是否符合您的需求,但您可以使用reStructuredTextSphinx从python文档生成html,并用python编写,所以它应该很容易用于此目的。我发现它非常简洁易读,因为它的设计非常简单,它可以做很复杂的表格。

答案 1 :(得分:1)

我自己找到了一个解决方案,因为我发现reST很难用于技术上没有经验的用户。我可能有点精心,但它对我有用。

密钥是已有标记语言的扩展。我发现Markdown相当令人愉快,尽管缺乏桌子支持。使用Python-Markdown,here是编写自己的扩展所需要知道的一切。这并不复杂。我在半小时内一起攻击了一些东西,到目前为止它确实有效。我会在这里显示代码,但我并不为此感到自豪;)基本上,你解析一个标记块并根据你的喜好在DOM中插入表元素。

我想标记语言的每个可用实现都应该有某种扩展机制,因此也应该可以为其他语言和实现编写扩展。这不是最方便的解决方案,但仍然比仅使用一些丑陋的语言更好。