{"repo":"byExist/marklas","free":true,"listed":false,"github":"https://github.com/byExist/marklas","clone":"git clone https://github.com/byExist/marklas.git","description":"Bidirectional converter between Markdown and Atlassian Document Format (ADF)","language":"Python","stars":21,"topics":["adf","confluence","converter","jira","markdown","python"],"license":"MIT","category":"ai-agents","readme_excerpt":"Marklas Bidirectional converter between Markdown and Atlassian Document Format (ADF) . 한국어 · 日本語 --- Why Marklas? Confluence and Jira store documents in ADF — a verbose JSON structure. Marklas converts it to readable Markdown and back: ADF-only features (panels, mentions, colored text, etc.) are preserved as HTML elements with adf attributes, so the full structure survives a roundtrip: Pass plain=True to strip roundtrip metadata and get clean Markdown for LLM consumption. Installation Usage Advanced Usage For pipelines that need to modify the AST between parsing and rendering, use Transformer : A handler returns one of three values: Return Effect --- --- None Skip — pass to the next handler, or leave unchanged Node Replace the original node list[Node] Splice multiple nodes in place of the original Multiple handlers can be registered for the same type; they run in registration order and the first non- None result wins. The tree is traversed bottom-up, and nodes returned by a handler are not revisited. Function Description --- --- parse md(md) Markdown → AST parse adf(adf) ADF JSON → AST render md(doc) AST → Markdown render adf(doc) AST → ADF JSON Transformer Registry of typed visitors for AST rewriting Token Efficiency Markdown is significantly more compact than ADF JSON — critical for LLM-based workflows where every token counts. ADF JSON Markdown Markdown (plain) --- --- --- --- Tokens 2,173,468 858,970 560,765 Reduction — 2.5x 3.9x Measured on 204 real Confluence pages (com","default_branch":null,"files":null,"tree":[],"storefront":"/r/byExist","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/byExist/marklas/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}