在Python中将文本转换为HTML注释

1 投票
2 回答
1221 浏览
提问于 2025-04-18 04:58

我有一个Python脚本,它可以生成一些HTML代码。这个脚本使用的是Python的Markdown库。我想把原始的Markdown文本放在HTML的最后面,作为注释,这样在调试的时候偶尔会用到。我试过直接把Markdown文本放在HTML的后面,但在Firefox上不太管用。所以我想的办法是先运行Markdown,然后把Markdown源代码作为注释加在HTML后面。不过,HTML对注释的内容有点严格。网站htmlhelp.com给出了以下建议:

因此,使用以下简单规则来编写有效且被接受的[可移植]注释:
HTML注释以""开头,注释中不能包含“--”或“>”。
(来源)

所以看起来我需要对我的Markdown文本进行一些处理,才能让HTML接受它作为注释。有没有现成的工具可以帮助我做到这一点?

2 个回答

1

难道你不能直接用 .replace 来处理吗?其实,你可以把那些字符替换成 任何东西,不过用转义字符来替换,可能并不会让你的评论变得更容易理解,跟什么都不替换差不多。

commented = '<!-- %s -->' % markdown_text.replace('--', '').replace('>', '')
3

根据w3的说明:

Comments consist of the following parts, in exactly the following order:

- the comment start delimiter "<!--"
- text
- the comment end delimiter "-->"

The text part of comments has the following restrictions:

1. must not start with a ">" character
2. must not start with the string "->"
3. must not contain the string "--"
4. must not end with a "-" character

这些规则非常简单。你可以用正则表达式来强制执行这些规则,但其实它们简单到根本不需要这样做!

四个条件中有三个可以通过简单的拼接来满足,剩下的一个只需要用一个简单的replace()函数就能搞定。总的来说,这一切都可以用一行代码完成

def html_comment(text):
    return '<!-- ' + text.replace('--', '- - ') + ' -->'

注意空格的使用。

撰写回答