wxWidgets/wxPython/docs/bin/docparser/restconvert.py

32 lines
1.0 KiB
Python

import re
conversion_table = {
"B" : "**",
"I" : "*",
"TT": "``",
"P" : "\n",
"BR": "\n",
}
html_classlink_re = "<A HREF=\".*?\">(.*?)</A>"
def htmlToReST(html):
# \n is useless in the HTML docs, we'll use P tags to break paragraphs.
restText = html.replace("\n", "")
restText = restText.replace("*", "\\*")
if restText.find("<P>") == 0:
restText = restText[3:]
link_regex = re.compile(html_classlink_re, re.DOTALL | re.MULTILINE | re.IGNORECASE)
restText = link_regex.sub("`\g<1>`", restText)
for htmltag in conversion_table:
for tagname in [htmltag, htmltag.lower()]:
restText = restText.replace("<%s>" % tagname, conversion_table[htmltag])
restText = restText.replace("</%s>" % tagname, conversion_table[htmltag])
# we need to escape any remaining double-quotes
restText = restText.replace('"', '\\"')
return restText.strip()