ref: ea68f1c8d3e2815e2ca22ff83de1fdd26d07af49
parent: 98ba0c4a37cc8223b513efb4f2a5df4f25ec0756
author: Werner Lemberg <[email protected]>
date: Fri Dec 8 15:15:15 EST 2017
[docmaker] Fix code section parsing. Stuff like { <bla> } confused the parser, which incorrectly treated `<bla>' as a markup tag. * src/tools/docmaker/content.py (ContentProcessor::process_content): Apply `re_markup_tags' only outside of code sections.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,21 @@
2017-12-08 Werner Lemberg <[email protected]>
+ [docmaker] Fix code section parsing.
+
+ Stuff like
+
+ {
+ <bla>
+ }
+
+ confused the parser, which incorrectly treated `<bla>' as a markup
+ tag.
+
+ * src/tools/docmaker/content.py (ContentProcessor::process_content):
+ Apply `re_markup_tags' only outside of code sections.
+
+2017-12-08 Werner Lemberg <[email protected]>
+
New `ftdriver.h' file, covering all driver modules.
This reduces redundancy and increases synergy; it also reduces the
--- a/src/tools/docmaker/content.py
+++ b/src/tools/docmaker/content.py
@@ -453,15 +453,32 @@
markup_lines = []
first = 1
+ margin = -1
+ in_code = 0
+
for line in content:
- found = None
- for t in re_markup_tags:
- m = t.match( line )
+ if in_code:
+ m = re_code_end.match( line )
+ if m and len( m.group( 1 ) ) <= margin:
+ in_code = 0
+ margin = -1
+ else:
+ m = re_code_start.match( line )
if m:
- found = string.lower( m.group( 1 ) )
- prefix = len( m.group( 0 ) )
- line = " " * prefix + line[prefix:] # remove markup from line
- break
+ in_code = 1
+ margin = len( m.group( 1 ) )
+
+ found = None
+
+ if not in_code:
+ for t in re_markup_tags:
+ m = t.match( line )
+ if m:
+ found = string.lower( m.group( 1 ) )
+ prefix = len( m.group( 0 ) )
+ # remove markup from line
+ line = " " * prefix + line[prefix:]
+ break
# is it the start of a new markup section ?
if found: