Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
21 lines
628 B
Python
21 lines
628 B
Python
from __future__ import annotations
|
|
|
|
from typing import Iterable, Sequence
|
|
|
|
|
|
def md_table(headers: Sequence[str], rows: Iterable[Sequence[str]]) -> str:
|
|
"""Render a simple GitHub-flavored Markdown table.
|
|
|
|
Args:
|
|
headers: Column header strings.
|
|
rows: Row values.
|
|
|
|
Returns:
|
|
Markdown table as a single string.
|
|
"""
|
|
|
|
header_line = "| " + " | ".join(str(h) for h in headers) + " |"
|
|
sep_line = "| " + " | ".join(["---"] * len(headers)) + " |"
|
|
body_lines = ["| " + " | ".join(str(cell) for cell in row) + " |" for row in rows]
|
|
return "\n".join([header_line, sep_line, *body_lines])
|