2014-02-17 26 views
4

我用降价extantions:['nl2br', 'tables', 'attr_list']Python的降价添加类表

我需要做桌子3种类型,像例如,非标准,块和价格。但后来我尝试用ATTR_LIST为此,我什么都没有..

Alt text

而且有这样的事情:

Alt text

问:如何添加类全表,使用extention如果可能的话?

回答

0

这是attr_list扩展的已知限制。 Markdown中的某些块级结构没有任何方式来表示HTML中的块级元素。这只是推断。例如,考虑表和列表。降价来源是<table>还是<ul>?不是这样。只有表单元格(<td>)或列表项(<li>)实际上表示在Markdown源中。

既然如此,文档作者如何指定attr应该应用于markdown源中不存在的元素?我不认为这是可能的。我在上面的解释中列出了列表,因为我认为这一点更加清楚。请看下面的列表:

* foo 
{#baz} 
* bar 
{#blah} 

应该适用于包装<ul>或列表的最后一个列表项id="blah"?它可以是。但是,要始终与第一个列表项目一起工作,它必须应用于列表项目而不是包装列表。同样的推理适用于表格。您只能将属性分配给单个单元格,而不是整个表格。

有趣的是,上周末发布的一个Python-Markdown新版本(2014/02/16)包含一个修复程序,允许attr_list在表格单元格上正常工作。我不认为你能够将属性分配给包装表元素本身。

也许这是指降价的syntax rules这状态部分的好时机:

降价不是HTML的替代品,甚至接近它。它的语法非常小,仅对应于HTML标签的一小部分。这个想法并不是创建一个使插入HTML标签更容易的语法。在我看来,HTML标签已经很容易插入。 Markdown的理念是让阅读,编写和编辑散文变得容易。 HTML是一种发布格式; Markdown是一种书写格式。因此,Markdown的格式化语法只能解决以纯文本形式传达的问题。

对于Markdown语法未涉及的任何标记,您只需使用HTML本身。

表格不是纯文本散文。因此,许多人(我自己包括)认为他们不属于减价。也就是说,最简单的表格可以相当简单地用纯文本表示,这就是为什么像Python-Markdown一起提供的简单表格实现存在的原因。如果您想做更复杂的事情,那么您应该编写HTML或者查看另一种符合您需求的标记语言。

也就是说,意见不同,并且一些third party extensions已经被创建来解决上述的哲学。也许其中一个会更好地满足您的需求。

:完全披露:我是Python-Markdown的主要开发人员。鉴于上述推理,我会更倾向于删除表格支持,而不是添加其他功能。但是,为了继续支持现有用户,现有功能将保留在可预见的将来,而不会增加表格语法。如果你真的想要更多的功能,我们提供API,它允许你开发任何你想要的扩展。