# 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 += f""" CIR Dialect Reference ========================== .. toctree:: :numbered: :maxdepth: 1 {"\n ".join(cir_docs_toctree)} """ with open(INDEX_OUTPUT_PATH, "w", encoding="utf-8") as fp: fp.write(index_content)