【问题标题】:Python markdown add class to tablePython markdown 将类添加到表中
【发布时间】:2014-02-17 13:52:54
【问题描述】:

我使用降价扩展:['nl2br', 'tables', 'attr_list']

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

还有这样的东西:

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

【问题讨论】:

    标签: python django markdown


    【解决方案1】:

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

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

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

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

    有趣的是,上周末(2014 年 2 月 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,让您可以根据需要开发任何扩展。

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 1970-01-01
      • 2021-04-03
      • 2019-04-13
      • 2013-05-10
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 2012-11-14
      相关资源
      最近更新 更多