我正在用Python/Django开发一个wiki,部分目的是为了教育。到目前为止,我仍然缺少正确的标记语言。我尝试了一种观点,包括克里奥尔语和Markdown,除了桌子支撑外,其他观点都很有效。常见的wiki标记语言似乎只支持基本的表,即每个单元格只有一行,或者单元格中没有复杂的标记。但是我的wiki用户希望能够在单元格中创建具有更大格式文本和列表的表。我在寻找一种能够做到这一点的标记语言方面遇到了问题。
我一直在关注MediaWiki标记语言,它似乎支持一切,但我认为使用它会有些过头。其余的标记可以非常简单,重点是标记的易写性(我发现MediaWiki标记有时有点难看)。此外,必须有一个用于将标记转换为HTML的Python模块,我可以在Web应用程序中使用该模块。我仍在为MediaWiki标记寻找一个。
另一种选择是完全转储wiki标记语言,而是允许一组定义的HTML标记用于标记。但这使得编写wiki文章变得更加困难,因为HTML并不是为这种用途而发明的。此外,查找和逃离被禁止的HTML可能相当棘手。我更希望有一个很好的标记语言和一个轻量级的Python实现。
有人知道一种标记语言,它具有扩展的表支持和我可以使用的Python实现吗?
提前感谢!
我不知道它是否满足了您的需求,但您可以使用reStructuredText。Sphinx从中为python文档及其用python编写的文档生成html,因此它应该很容易用于此目的。我发现它很整洁,很容易阅读,就像它的设计一样,它可以做相当复杂的表格。
我自己也找到了一个解决方案,因为我发现reST对于技术经验不足的用户来说很复杂。我可能有点复杂,但它对我有效。
该键是已存在的标记语言的扩展。我觉得Markdown相当令人愉快,尽管它没有桌子支撑。使用Python Markdown,以下是编写自己的扩展所需了解的一切。没有那么复杂。我在半小时内把一些东西拼凑在一起,到目前为止它确实有效。我会在这里展示代码,但我还没有为此感到骄傲;)基本上,您可以解析标记块,并根据需要在DOM中插入表元素。
我想标记语言的每个可用实现都应该有某种扩展机制,所以也应该可以为其他语言和实现编写扩展。这不是最方便的解决方案,但仍然比仅仅为了功能而使用一些丑陋的语言要好。