From 39b4420fe0d395f0a9dd40e0ab011a7c123c253c Mon Sep 17 00:00:00 2001
From: Timo Koch <timo.koch@iws.uni-stuttgart.de>
Date: Thu, 2 Apr 2020 17:23:47 +0200
Subject: [PATCH] [examples][docgen] Make it simpler to create toggled content
 with '[[details]] content'

---
 examples/convert_code_to_doc.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/examples/convert_code_to_doc.py b/examples/convert_code_to_doc.py
index 68a1d847e8..0ec2fdd331 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
-- 
GitLab