首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python-Markdown中将属性添加到表

如何在Python-Markdown中将属性添加到表
EN

Stack Overflow用户
提问于 2013-09-20 01:43:14
回答 1查看 2.2K关注 0票数 5

遵循以下文档:

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

这是可行的:

代码语言:javascript
复制
### This makes a title {: .with-some-class }

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

代码语言:javascript
复制
| Title | blabla 
-----------------
| foo   | bar {: .with-some-class }

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-27 13:47:40

您已经发现了attr_listtables扩展之间的不兼容性。<td>是一个块级元素,所以默认情况下,attr_list在下一行查找属性列表,而不是内联。我认为单元格元素有一个很好的例外情况(就像目前的header元素一样),因为没有办法使用tables扩展来创建多行单元格。

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

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

获取the third-party Grid Tables extension,它支持多行单元格,并将属性列表放入自己的行,如下所示:

代码语言:javascript
复制
+-------+----------+-------------------------------+
| Title            | blabla                        |
+=======+==========+===============================+
| foo   | bar                                      |
|       | {: class="foo bar" title="Some title!" } |
+-------+------------------------------------------+

输出:

代码语言:javascript
复制
<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.py添加以下行,attr_list可以支持单元格元素的内联属性列表:

代码语言:javascript
复制
if not m and elem.tag == 'td':
    m = re.search(self.BASE_RE, elem.text)

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

注意:you cannot leave any space between the cell content and attribute list (正如您在问题中所做的那样)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18901540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档