具有出色表格支持的维基标记语言

7
我正在使用Python/Django开发一个维基百科,部分是为了教育目的。到目前为止,我仍然缺少正确的标记语言。我尝试过许多,包括Creole和Markdown,它们都很好用,但表格支持不够好。常见的维基百科标记语言似乎只支持基本的表格,即每个单元格一行或单元格内没有复杂的标记。但是我的维基百科用户希望能够创建具有更大格式的文本和单元格内的列表的表格。我很难找到实际上可以做到这一点的标记语言。
我看过MediaWiki标记语言,它似乎支持所有东西,但我认为使用它可能有些过头了。其余的标记可以非常简单,重点在于易写性(我有时觉得MediaWiki标记有些丑陋)。此外,必须有一个Python模块将标记转换为HTML,以便在Web应用程序中使用。我仍在寻找适用于MediaWiki标记的Python模块。
另一个选择是完全放弃维基百科标记语言,而是允许一组定义好的HTML标签进行标记。但这样会使编写维基文章变得更加困难,因为HTML并不是为这种用途而发明的。此外,寻找和转义禁止使用的HTML可能会非常棘手。我宁愿有一个漂亮的标记语言,带有轻量级的Python实现。
请问是否有一种具有扩展表格支持和Python实现的标记语言可供使用?
提前致谢!
2个回答

4

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


我想,对于标记语言的确切定义有些不同,所以我不知道rest是否严格属于这个范畴,但它易于编写、易于阅读,并且编译成漂亮的HTML,因此它可能是这种用法的一个很好的选择。 - aquavitae
谢谢您的建议。reST确实支持我所需的一切,并且甚至在Django中有集成。然而,我觉得对于非技术人员来说阅读起来并不那么容易,如果你看一个复杂表格的实际标记,写起来更难。至少,如果一个单元格稍微变大了,我不想被迫调整整个列。我想知道Python开发者是如何做到的;) 无论如何,谢谢! - j0ker
是的,复杂的表格有点棘手,但到目前为止我实际上从未需要使用过。使用复杂表格而不是简单表格的唯一原因是如果第一列需要自动换行,而这对我来说从未发生过。 - aquavitae

1

我自己找到了一个解决方案,因为我发现对于技术不熟练的用户来说,reST 太复杂了。我的方法可能有点繁琐,但对我来说很有效。

关键是使用已有标记语言的扩展。我发现 Markdown 很好用,尽管它缺乏表格支持。使用 Python-Markdown,here 就是你需要了解的写自己扩展的全部内容。这并不复杂。我在半个小时内就把一些东西拼凑起来了,目前看来还可以。我想在这里展示代码,但我还不太自豪;)基本上,你需要解析标记块,并按照你的意愿将表格元素插入 DOM 中。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接