我有一个降价表语法字符串,比如说:
table_md=\
"| Tables | Are | Cool |\n\
| ------------- |-------------| -----|\n\
| col 3 is | right-aligned | $1600 |\n\
| col 2 is | centered | $12 |\n\
| zebra stripes | are neat | $1 |\n"
我想将其转换为html语法表字符串:
<table>
<thead>
<tr>
<th>Tables</th>
<th>Are</th>
<th>Cool</th>
</tr>
</thead>
<tbody>
<tr>
<td>col 3 is</td>
<td>right-aligned</td>
<td>$1600</td>
</tr>
<tr>
<td>col 2 is</td>
<td>centered</td>
<td>$12</td>
</tr>
<tr>
<td>zebra stripes</td>
<td>are neat</td>
<td>$1</td>
</tr>
</tbody>
</table>
首先搜索stackoverflow,我尝试使用this:
import markdown
table_html=markdown.markdown(table_md)
但结果是一个html段落:
'<p>| Tables... |</p>'
通过讨论这个问题,我来到了markdown extensions,并尝试将扩展名添加到上面的命令中:
table_html=markdown.markdown(table_md, extensions=[MyExtension(), \
'markdown.extensions.tables'])
然后它显示错误说"NameError: name 'MyExtension' is not defined"
stackoverflow中没有相同的情况。
请帮我看看如何处理上面的MyExtension。谢谢!
答案 0 :(得分:3)
首先,您可以输入如下信息:
table_md="| Tables | Are | Cool |\n\
| ------------- |-------------| -----|\n\
| col 3 is | right-aligned | $1600 |\n\
| col 2 is | centered | $12 |\n\
| zebra stripes | are neat | $1 |\n"
使用扩展程序markdown.extensions.tables
table_html=markdown.markdown(table_md, extensions=['markdown.extensions.tables'])
输出是:
>>> print table_html
<table>
<thead>
<tr>
<th>Tables</th>
<th>Are</th>
<th>Cool</th>
</tr>
</thead>
<tbody>
<tr>
<td>col 3 is</td>
<td>right-aligned</td>
<td>$1600</td>
</tr>
<tr>
<td>col 2 is</td>
<td>centered</td>
<td>$12</td>
</tr>
<tr>
<td>zebra stripes</td>
<td>are neat</td>
<td>$1</td>
</tr>
</tbody>
</table>
答案 1 :(得分:1)
我找到了解决方案,extension library状态“扩展名列表可能包含扩展名实例和/或扩展名称字符串”,因此MyExtension()是可选的,所以在这种情况下我可以删除它,解决方案是:
table_html=markdown.markdown(table_md, extensions=['markdown.extensions.tables'])
对于那些想要添加自己的添加或更改Markdown语法的人,可以使用MyExtension,如下所示:
from markdown.extensions import Extension
class MyExtension(Extension):
# define your extension here...
markdown.markdown(text, extensions=[MyExtension(option='value')])