sphinx-mermaid.py (Source)

from pathlib import Path
def mermaid(md):
    new_content = ""
    replacement_in_progress = False
    with open (md, 'r' ) as f:
        line = f.readline()
        while line:
            new_line = line
            if "```mermaid" in line:
                new_line = '<div class="mermaid">\n'
                replacement_in_progress = True
            elif "```" in line and replacement_in_progress:
                new_line = '</div>\n'
                replacement_in_progress = False
            new_content += new_line
            line = f.readline()
    f.close()
    with open (md, 'w' ) as f:
        f.write(new_content)
        f.close()
for md in Path("source").glob("**/*.md"):
    file_string = str(md.absolute())
    mermaid(file_string)