git » alan.git » commit a4b9efd

Render booklet/key as Markdown for better formatting

author Alan Dipert
2025-12-04 05:01:52 UTC
committer Alan Dipert
2025-12-04 05:01:52 UTC
parent da41042dda2c3f59bc02e5a6e4635d045b56bb26

Render booklet/key as Markdown for better formatting

render_text.py +13 -17

diff --git a/render_text.py b/render_text.py
index 0c6a0a0..9958dcc 100644
--- a/render_text.py
+++ b/render_text.py
@@ -21,62 +21,58 @@ def parse_args() -> argparse.Namespace:
 
 
 def render_booklet(data: Dict[str, Any]) -> str:
-    lines = ["Alan's Language Aptitude iNstrument (ALAN)", ""]
+    lines = ["# Alan's Language Aptitude iNstrument (ALAN)", ""]
     meta = data.get("meta", {})
     if meta.get("instructions"):
         lines.append(meta["instructions"])
         lines.append("")
     params = meta.get("generation_params")
     if params:
-        lines.append("Generation parameters:")
+        lines.append("## Generation parameters")
         for k, v in params.items():
-            lines.append(f"- {k}: {v}")
+            lines.append(f"- **{k}**: {v}")
         lines.append("")
     if meta.get("rules"):
-        lines.append("Grammar Cheat Sheet")
-        lines.append("-------------------")
+        lines.append("## Grammar Cheat Sheet")
         for rule in meta["rules"]:
             lines.append(f"- {rule}")
         lines.append("")
     dict_data = meta.get("dictionary", {})
     if dict_data:
-        lines.append("Starter Dictionary")
-        lines.append("-----------------")
+        lines.append("## Starter Dictionary")
         for title, group in [
             ("Nouns", dict_data.get("nouns", {})),
             ("Verbs", dict_data.get("verbs", {})),
             ("Adjectives", dict_data.get("adjectives", {})),
         ]:
-            lines.append(title)
+            lines.append(f"**{title}**")
             for eng, lang in group.items():
-                lines.append(f"  {eng} = {lang}")
-            lines.append("")
+                lines.append(f"- {eng} = {lang}")
         lines.append("")
 
     for section in data.get("sections", []):
-        lines.append(f"Section {section['id']}")
-        lines.append("-" * 20)
+        lines.append(f"## Section {section['id']}")
         for intro in section.get("intro_text", []):
             lines.append(intro)
             lines.append("")
         for q in section.get("questions", []):
-            lines.append(f"{q['number']}. {q['stem']}")
+            lines.append(f"**{q['number']}. {q['stem']}**")
             for opt in q.get("options", []):
-                lines.append(f"  {opt['label']}) {opt['text']}")
+                lines.append(f"- {opt['label']}) {opt['text']}")
             lines.append("")
         lines.append("")
     return "\n".join(lines)
 
 
 def render_key(data: Dict[str, Any]) -> str:
-    lines = ["Answer Key", ""]
+    lines = ["# Answer Key", ""]
     for section in data.get("sections", []):
         for q in section.get("questions", []):
             correct = next((o for o in q["options"] if o["is_correct"]), None)
-            lines.append(f"{q['number']}: {correct['label'] if correct else '?'}")
+            lines.append(f"**{q['number']}: {correct['label'] if correct else '?'}**")
             for opt in q["options"]:
                 mark = "(correct)" if opt["is_correct"] else ""
-                lines.append(f"  {opt['label']}) {opt['text']} {mark}")
+                lines.append(f"- {opt['label']}) {opt['text']} {mark}")
             lines.append("")
     return "\n".join(lines)