首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python将Markdown表转换为html表

使用Python将Markdown表转换为html表
EN

Stack Overflow用户
提问于 2017-11-01 05:44:54
回答 2查看 5.3K关注 0票数 11

我有一个减价表语法字符串,例如:

代码语言:javascript
复制
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语法表字符串:

代码语言:javascript
复制
<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>

首先通过堆栈溢出搜索,我尝试使用

代码语言:javascript
复制
import markdown
table_html=markdown.markdown(table_md)

但其结果是一个html段落:

代码语言:javascript
复制
'<p>| Tables...    |</p>'

通过处理这个问题,我来到了标记扩展,并尝试将扩展添加到上面的命令:

代码语言:javascript
复制
table_html=markdown.markdown(table_md, extensions=[MyExtension(), \
'markdown.extensions.tables'])

然后它会显示错误,说"NameError: name 'MyExtension' is not defined"

在堆栈溢出中也不存在相同的情况。

请帮助我如何处理上面的MyExtension。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-01 06:30:41

首先,您可以获得如下输入:

代码语言:javascript
复制
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

代码语言:javascript
复制
table_html=markdown.markdown(table_md, extensions=['markdown.extensions.tables'])

产出如下:

代码语言:javascript
复制
>>> 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>
票数 11
EN

Stack Overflow用户

发布于 2017-11-01 06:29:45

我找到了解决方案,扩展库声明“扩展列表可能包含扩展实例和/或扩展名字符串”,因此MyExtension()是可选的,因此我可以在本例中删除它,解决方案是:

代码语言:javascript
复制
table_html=markdown.markdown(table_md, extensions=['markdown.extensions.tables'])

对于那些希望自己添加或更改Markdown语法的人,您可以使用MyExtension,如下所示:

代码语言:javascript
复制
from markdown.extensions import Extension
class MyExtension(Extension):
    # define your extension here...

markdown.markdown(text, extensions=[MyExtension(option='value')])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47048906

复制
相关文章

相似问题

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