fix(docs): allow multi-level nesting in Starlight file trees

This commit is contained in:
2026-07-26 22:04:02 -04:00
parent ddaaf35c85
commit c4980a15b1
4 changed files with 89 additions and 76 deletions
+5 -2
View File
@@ -315,7 +315,7 @@ def _as_ruled_table(para: list[str]) -> str | None:
TREE_ROOT_RE = re.compile(r"^[~$][\w./{}-]*/$")
TREE_BRANCH_RE = re.compile(r"^[├└]──\s*(\S+)\s*(.*)$")
TREE_BRANCH_RE = re.compile(r"^([│ \t]*)[├└]──\s*(\S+)\s*(.*)$")
def _as_file_tree(para: list[str]) -> str | None:
@@ -329,7 +329,10 @@ def _as_file_tree(para: list[str]) -> str | None:
return None
branches.append(m.groups())
out = ["<FileTree>", f"- {para[0].strip()}"]
out += [f" - {name} {desc}".rstrip() for name, desc in branches]
for prefix, name, desc in branches:
depth = len(prefix.replace('\t', ' ')) // 4
indent = " " * (depth + 1)
out.append(f"{indent}- {name} {desc}".rstrip())
out.append("</FileTree>")
return "\n".join(out)