From 2db76fa0482a088a56aaa87111250da408aaf93c Mon Sep 17 00:00:00 2001 From: Richard Brooksby Date: Sun, 2 Jun 2013 12:30:10 +0100 Subject: [PATCH] Adding section number stripping to design document conversion, to allow section numbers to be included. Copied from Perforce Change: 182391 ServerID: perforce.ravenbrook.com --- mps/manual/source/extensions/mps/designs.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mps/manual/source/extensions/mps/designs.py b/mps/manual/source/extensions/mps/designs.py index de6d772e42b..ceab31b888c 100644 --- a/mps/manual/source/extensions/mps/designs.py +++ b/mps/manual/source/extensions/mps/designs.py @@ -36,6 +36,14 @@ typedef = re.compile(r'^``typedef ([^`]*)``$', re.MULTILINE) func = re.compile(r'``([A-Za-z][A-Za-z0-9_]+\(\))``') typename = re.compile(r'``({0}|[A-Z][A-Za-z0-9_]*(?:Class|Struct|Method)|mps_[a-z_]+_[stu])``(?: )?' .format('|'.join(map(re.escape, TYPES.split())))) +history = re.compile(r'^Document History\n.*', + re.MULTILINE | re.IGNORECASE | re.DOTALL) + +# Strip section numbering +secnum = re.compile(r'^(?:[0-9]+|[A-Z])\.\s+(.*)$\n(([=`:.\'"~^_*+#-])\3+)$', + re.MULTILINE) +def secnum_sub(m): + return m.group(1) + '\n' + m.group(3) * len(m.group(1)) # Convert Ravenbrook style citations into MPS Manual style citations. # Example citations transformation, from: @@ -69,8 +77,6 @@ def citation_sub(m): else: result += ' "{title}".'.format(**groups) return result -history = re.compile(r'^Document History\n.*', - re.MULTILINE | re.IGNORECASE | re.DOTALL) def convert_file(name, source, dest): s = open(source).read() @@ -85,6 +91,7 @@ def convert_file(name, source, dest): s = typename.sub(r':c:type:`\1`', s) s = func.sub(r':c:func:`\1`', s) s = macro.sub(r':c:macro:`\1`', s) + s = secnum.sub(secnum_sub, s) s = citation.sub(citation_sub, s) s = history.sub('', s) try: