Python Markdown 如何给表格添加类(class)?

4

我使用的是Markdown扩展:['nl2br','tables','attr_list']

我需要制作三种类型的表格,例如示例、标准、块和价格。但是当我尝试使用attr_list时,什么也没有出现...

Alt text

结果出现了以下情况:

Alt text

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

1个回答

2
这是 attr_list 扩展的一个已知限制。Markdown 中的一些块级结构没有任何方法来表示 HTML 中的块级元素,只能推断出来。例如,考虑表格和列表。在 Markdown 源中,<table><ul> 在哪里表示?它们并不是。在 Markdown 源中只有表格单元格 (<td>) 或列表项 (<li>) 实际上被表示出来。
既然如此,文档作者如何指定应用于在 Markdown 源中不存在的元素的 attr 呢?我认为这是不可能的。我在上面的解释中包括了列表,因为我认为这一点更加清楚。请考虑以下列表:
* foo
{#baz}
* bar
{#blah}

“id =”blah“应该应用于包装的
    还是列表的最后一个列表项?它可能是任何一个。然而,为了与第一个列表项一致地工作,它必须应用于列表项而不是包装列表。同样的推理也适用于表格。您只能将属性分配给单个单元格,而不是整个表格。”
    “有趣的是,Python-Markdown的新版本在上周末(2014/02/16)发布了修复程序,以便attr_list可以正确地在表格单元格上工作。我不预计您将能够将属性分配给包装表本身。”
    “也许现在是指Markdown的syntax rules的好时机,其中部分规定:”
    Markdown不是HTML的替代品,甚至不接近。它的语法非常简单,只对应HTML标签的一个非常小的子集。这个想法并不是为了创建一个使插入HTML标签更容易的语法。在我看来,插入HTML标签已经很容易了。Markdown的目的是使阅读、写作和编辑散文变得容易。HTML是一种出版格式;Markdown是一种写作格式。因此,Markdown的格式语法只涉及可以用纯文本传达的问题。

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

    表格不是纯文本散文。因此,在许多人(包括我自己1)的看法中,它们并不真正属于Markdown。尽管如此,最简单的表格可以相当简单地表示为纯文本,这就是为什么像Python-Markdown附带的简单表格实现存在的原因。如果你想做更复杂的事情,那么你应该编写HTML或者考虑另一个符合你需求哲学的标记语言。

    话虽如此,不同的意见存在,一些第三方扩展已经被创建用于解决上述的哲学问题。也许其中一个会更好地满足你的需求。 1: 全部披露:我是Python-Markdown的主要开发者。鉴于以上原因,我更倾向于完全删除表格支持而不是添加其他功能。然而,为了继续支持现有用户,现有功能将在可预见的未来保留,但表格语法不会增加任何内容。如果你真的想要更多的功能,我们提供一个API,允许你为任何你想要的东西开发扩展。

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