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

时间:2014-05-01 02:46:51

标签: python markdown html

我有一个生成一些HTML的Python脚本。它是使用the Python markdown library完成的。我想将原始Markdown文本粘贴在HTML末尾的注释中,它有时会对调试有用。我试过在HTML结束后只是掠夺Markdown文本,它对我不起作用(Firefox)。所以我想象这个工作的方式是我运行Markdown,然后在HTML之后添加标记为注释的Markdown源。然而,HTML在评论中允许的内容显然有点挑剔。经过一些讨论后,网站htmlhelp.com提供了以下建议:

  

因此,请使用以下简单规则撰写有效且已接受的[便携式]评论:
      HTML评论以“”开头,不包含“ - ”或“>”评论中的任何地方。
  (source)

所以看起来我需要做一些转义或者某些事情来将我的一堆降价文本转换为HTML将作为评论接受的形式。是否有现成的工具可以帮助我做到这一点?

2 个答案:

答案 0 :(得分: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

这些是非常简单的规则。你可以正则执行它们,但它们很简单你甚至不需要它!

4个条件中的3个可以通过连接来满足,而另一个可以通过简单的replace()来满足。 总而言之,这是一个单行

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

注意空格。

答案 1 :(得分:1)

你不能只.replace吗?最终,您可以用任何替换这些字符,但用替换代码替换可能不会使您的评论比用任何替换更容易阅读。

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