Python markdown将类添加到表中

时间:2014-02-17 13:52:55

标签: python django markdown

我使用markdown extantions:['nl2br', 'tables', 'attr_list']

我需要制作表3种类型,例如示例,标准,块和价格。但后来我尝试用 attr_list 来做这件事我没什么......

Alt text

并且有这样的事情:

Alt text

问题:如果可能的话,如何使用扩展将整个类添加到整个表中?

1 个答案:

答案 0 :(得分:1)

这是attr_list扩展名的已知限制。 Markdown中的某些块级构造没有任何方法来表示HTML中的块级元素。简单地推断出来。例如,考虑表和列表。 Markdown来源中的<table><ul>代表什么?它不是。 Markdown源中仅显示表格单元格(<td>)或列表项目(<li>)。

在这种情况下,文档作者如何指定attr应该应用于降价源中不存在的元素?我不认为这是可能的。我在上面的解释中列出了列表,因为我认为这一点更清楚。请考虑以下列表:

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

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

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

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

  

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

     

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

表格不是纯文本散文。因此,在许多人看来(我自己包括 1 ),他们并不真正属于降价。也就是说,最简单的表可以用明文表示,这就是为什么存在像Python-Markdown一样的简单表实现的原因。如果你想做更复杂的事情,那么你应该写HTML或者看一下符合你需要的哲学的另一种标记语言。

尽管如此,意见不同,并且已经创建了一些third party extensions来解决上述哲学问题。也许其中一个会更好地满足您的需求。

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