blob: 9140c828eda6da5a9474cd88e879d80a4854156c [file] [edit]
# This script embeds MLIR generated documentations (in Markdown format) into
# CIRLangRef_Template.md to generate CIRLangRef.md
import os
import sys
docs_src_dir = sys.argv[1]
docs_bin_dir = sys.argv[2]
DIALECT_DOC_PATH = os.path.join(docs_bin_dir, "CIR", "_raw", "CIRDialect.md")
DIALECT_DOC_OUTPUT_PATH = os.path.join(docs_bin_dir, "CIR", "CIRDialect.md")
INDEX_PATH = os.path.join(docs_src_dir, "CIR", "index.rst")
INDEX_OUTPUT_PATH = os.path.join(docs_bin_dir, "CIR", "index.rst")
cir_docs_toctree = []
# ===============================================
# Post-process CIRDialect.md
# ===============================================
if os.path.exists(DIALECT_DOC_PATH):
cir_docs_toctree.append("CIRDialect")
with open(DIALECT_DOC_PATH, encoding="utf-8") as fp:
dialect_doc = fp.read()
dialect_doc = dialect_doc.replace(
"[TOC]",
"""
```{contents}
---
local:
depth: 2
---
```""".strip(),
)
with open(DIALECT_DOC_OUTPUT_PATH, "w", encoding="utf-8") as fp:
fp.write(dialect_doc)
# ===============================================
# Add toctree to index.rst if CIR docs are generated
# ===============================================
if len(cir_docs_toctree) > 0:
with open(INDEX_PATH, encoding="utf-8") as fp:
index_content = fp.read()
index_content += """
CIR Dialect Reference
==========================
.. toctree::
:numbered:
:maxdepth: 1
{}
""".format(
"\n ".join(cir_docs_toctree)
)
with open(INDEX_OUTPUT_PATH, "w", encoding="utf-8") as fp:
fp.write(index_content)