首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python-markdown中禁用反引号内的html转义

在python-markdown中禁用反引号内的html转义
EN

Stack Overflow用户
提问于 2013-10-28 22:20:13
回答 1查看 1.1K关注 0票数 2

我观察到,python-markdown总是在反引号内转义HTML实体,即使使用safe=False:

代码语言:javascript
复制
In [1]: import markdown

In [2]: markdown.markdown("&")
Out[2]: u'<p>&amp;</p>'

In [3]: markdown.markdown("*&amp;*")
Out[3]: u'<p><em>&amp;</em></p>'

In [4]: markdown.markdown("`&amp;`")
Out[4]: u'<p><code>&amp;amp;</code></p>'

它是一个bug还是一个特性;有没有办法保持HTML实体不变?

EN

回答 1

Stack Overflow用户

发布于 2014-03-10 01:20:59

designate a code block进行反标记,这意味着必须转义HTML实体以便正确显示代码,因此这不是一个错误。虽然我不知道您为什么要绕过这一点,但也许有更好的方法来实现您的目标,python-markdown会忽略HTML标记内的文本,因此也许将您的HTML实体包含在do- you中会符合您的目的。

代码语言:javascript
复制
>>> import markdown
>>> markdown.markdown("<div>`&amp;`</div>")
u'<div>`&amp;`</div>'

如果发现<div>标记令人反感,只需使用div类和BeautifulSoup等超文本标记语言解析工具,就可以对其进行合理的后处理。

代码语言:javascript
复制
>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup("<div class='nothing'>`&amp;`</div>")
>>> for div in soup.findAll('div', 'nothing'):
...     div.replaceWithChildren()
>>> print soup
`&amp;`

也许比您最初想要的要复杂一点,但我认为这可能是除了从根本上修改python-markdown之外最简单的解决方案。

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

https://stackoverflow.com/questions/19637247

复制
相关文章

相似问题

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