diff --git a/examples/convert_code_to_doc.py b/examples/convert_code_to_doc.py index 68a1d847e8e310b8158363782224737ca0a8328d..0ec2fdd3311f59edb09cf1753761d03d1620a3a7 100755 --- a/examples/convert_code_to_doc.py +++ b/examples/convert_code_to_doc.py @@ -65,6 +65,16 @@ def transformCode(code, rules, codeFileName): wrapContent = parseTaggedContent("content", action=wrapContentIntoDetails) code = wrapContent.transformString(code) + # Transform "[[details]] content" and "[[/details]]" to HTML + transformDetailsBegin = LineStart() + Suppress(ZeroOrMore(" ") + "//" + ZeroOrMore(" ") + "[[details]]" + ZeroOrMore(" ")) + Optional(restOfLine) + def detailBeginHTML(token): + return "// <details><summary> Click to show " + token[0] + "</summary>\n" + transformDetailsBegin.setParseAction(detailBeginHTML) + code = transformDetailsBegin.transformString(code) + transformDetailsEnd = LineStart() + Suppress(ZeroOrMore(" ") + "//" + ZeroOrMore(" ") + "[[/details]]") + Optional(restOfLine) + transformDetailsEnd.setParseAction(replaceWith("// </details>\n")) + code = transformDetailsEnd.transformString(code) + for transform in rules: code = transform.transformString(code) return code