繁体   English   中英

如何在Python-Markdown中向表中添加属性

[英]How do I add Attributes to Tables in Python-Markdown

遵循此文档:

http://pythonhosted.org/Markdown/extensions/attr_list.html

这有效:

### This makes a title {: .with-some-class }

我需要向表添加类,但它不起作用:

| Title | blabla 
-----------------
| foo   | bar {: .with-some-class }

有任何想法吗?

您发现attr_listtables扩展之间存在不兼容性。 <td>是块级元素,因此默认情况下, attr_list在下一行查找属性列表,而不是内联。 我认为有一个很好的例子,单元格元素的异常(因为目前有标题元素),因为没有办法让多行单元格具有tables扩展名。

要确定要实现哪种解决方案,您必须权衡切换到新表格格式与切换到python-markdown开发版本的痛苦。

块级解决方案:使用grid_tables而不是tables (推荐)

获取支持多行单元格的第三方Grid Tables扩展 ,并将属性列表放在自己的行中,如下所示:

+-------+----------+-------------------------------+
| Title            | blabla                        |
+=======+==========+===============================+
| foo   | bar                                      |
|       | {: class="foo bar" title="Some title!" } |
+-------+------------------------------------------+

输出:

<table>
<thead>
<tr>
<th colspan="2" rowspan="1">
<p>Title</p>
</th>
<th colspan="1" rowspan="1">
<p>blabla</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="1" rowspan="1">
<p>foo
</p>
</td>
<td colspan="2" rowspan="1">
<p class="foo bar" title="Some title!">bar</p>
</td>
</tr>
</tbody>
</table>

内联解决方案:修改attr_list以与tables兼容

attr_list可以通过在attr_list.py中添加以下行来支持单元格元素上的内联属性列表:

if not m and elem.tag == 'td':
    m = re.search(self.BASE_RE, elem.text)

不幸的是,这两个扩展都是extra一部分,内置于python-markdown中。 它们依赖于内部模块,因此制作自己的扩展(与当前的pip包兼容)是不现实的。 如果您现在要实现此解决方案,可以安装我的fork

注意: 您不能在单元格内容和属性列表之间留下任何空格 (就像您在问题中所做的那样)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM