doxy: convert <pre> to Markdown ~~~
authordberzano <dario.berzano@cern.ch>
Thu, 11 Dec 2014 11:23:43 +0000 (12:23 +0100)
committerdberzano <dario.berzano@cern.ch>
Fri, 9 Jan 2015 15:01:09 +0000 (16:01 +0100)
Doxygen understands <pre> correctly (as it supports HTML), but code
blocks rendered with ~~~ are rendered with a different style.

doxygen/thtml2doxy.py

index f9fba53..849db84 100755 (executable)
@@ -476,6 +476,9 @@ def refactor_comment(comment, do_strip_html=True):
   # Support for LaTeX blocks on a single line
   reinline_latex = r'(?i)(.*)BEGIN_LATEX\s+(.*?)\s+END_LATEX(.*)$'
 
+  # Match <pre> (to turn it into the ~~~ Markdown syntax)
+  reblock = r'(?i)^(\s*)</?PRE>\s*$'
+
   new_comment = []
   insert_blank = False
   wait_first_non_blank = True
@@ -568,6 +571,15 @@ def refactor_comment(comment, do_strip_html=True):
           # Prevent appending lines (we have already done that)
           new_line_comment = None
 
+        # If we are not in a LaTeX block, look for <pre> tags and transform them into Doxygen code
+        # blocks (using ~~~ ... ~~~). Only <pre> tags on a single line are supported
+        if new_line_comment is not None and not in_latex:
+
+          mblock = re.search( reblock, new_line_comment  )
+          if mblock:
+            new_comment.append( mblock.group(1)+'~~~' )
+            new_line_comment = None
+
         if new_line_comment is not None:
           if in_latex:
             new_line_comment = new_line_comment.replace('#', '\\')