【问题标题】:Convert Markdown tables to html tables using Python使用 Python 将 Markdown 表转换为 html 表
【发布时间】:2018-04-13 10:03:48
【问题描述】:

我有一个降价表语法字符串,比如:

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。谢谢!

【问题讨论】:

  • 我投票结束这个问题,因为没有任何努力!
  • 感谢提醒!我已经为这个问题付出了努力。

标签: python html markdown


【解决方案1】:

首先您可以输入如下内容:

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>

【讨论】:

  • 你也想出来了 :)
【解决方案2】:

我找到了解决方案,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')])

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 2021-05-17
    • 2018-08-02
    • 2022-10-04
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多