diff --git a/markdown.py b/markdown.py
index bb8d83977..224910be9 100644
--- a/markdown.py
+++ b/markdown.py
@@ -7,6 +7,8 @@ __email__ = "bob@libreserver.org"
__status__ = "Production"
__module_group__ = "Web Interface"
+import urllib.parse
+
def _markdown_get_sections(markdown: str) -> []:
"""Returns a list of sections for markdown
@@ -275,6 +277,7 @@ def _markdown_replace_code(markdown: str) -> str:
line_ctr = 0
changed = False
section_active = False
+ urlencode = False
for line in lines:
if not line.strip():
# skip blank lines
@@ -282,13 +285,22 @@ def _markdown_replace_code(markdown: str) -> str:
continue
if line.startswith('```'):
if not section_active:
+ if 'html' in line or 'xml' in line or 'rdf' in line:
+ urlencode = True
start_line = line_ctr
section_active = True
else:
lines[start_line] = ''
lines[line_ctr] = '
'
+ if urlencode:
+ lines[start_line] = '
' + lines[line_ctr] = '' + for line_num in range(start_line + 1, line_ctr): + lines[line_num] = \ + urllib.parse.quote_plus(lines[line_num]) section_active = False changed = True + urlencode = False line_ctr += 1 if not changed: