Skip to content

Conversation

tiangolo
Copy link
Member

@tiangolo tiangolo commented Nov 28, 2023

📝 Update details syntax with new pymdown extensions format

I wrote a script to automatically update the details blocks:

import os
import re
from pathlib import Path

base_dir = Path(__file__).parent.parent

def update_details():
    os.chdir(base_dir)
    md_files = list(Path("docs").glob("**/*.md"))
    # md_files = [Path("docs/advanced/decimal.md")]
    re_str = r"<summary>((\n|.)*)</summary>"
    # md_file = md_files[25]
    for md_file in md_files:
        content = md_file.read_text()
        new_content = content
        all_starts = re.finditer("<details>", content)
        all_ends = re.finditer("</details>", content)
        for start, end in zip(all_starts, all_ends):
            sub_content = content[start.start() : end.end()]
            m = re.search(re_str, sub_content)
            assert m
            summary = m.group(1).strip()
            sub_content_internal = content[start.end() : end.start()].strip()
            sub_content_no_summary = re.sub(re_str, "", sub_content_internal).strip()
            new_sub_content = f"/// details | {summary}\n\n{sub_content_no_summary}\n\n///"
            new_content = new_content.replace(sub_content, new_sub_content)

        md_file.write_text(new_content)

if __name__ == "__main__":
    update_details()

Copy link
Contributor

📝 Docs preview for commit 34a85e9 at: https://ee7298be.sqlmodel.pages.dev

@tiangolo tiangolo merged commit 799d0aa into main Nov 28, 2023
@tiangolo tiangolo deleted the details branch November 28, 2023 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant