haystack/docs/_src/tutorials/tutorials/convert_ipynb.py

33 lines
788 B
Python

import re
from nbconvert import MarkdownExporter
import os
from pathlib import Path
from headers import headers
def atoi(text):
return int(text) if text.isdigit() else text
def natural_keys(text):
test = [ atoi(c) for c in re.split('(\d+)',text) ]
return test
dir = Path("../../../../tutorials")
notebooks = [x for x in os.listdir(dir) if x[-6:] == ".ipynb"]
# sort notebooks based on numbers within name of notebook
notebooks = sorted(notebooks, key=lambda x: natural_keys(x))
e = MarkdownExporter(exclude_output=True)
for i, nb in enumerate(notebooks):
body, resources = e.from_filename(dir / nb)
print(f"Processing {dir}/{nb}")
with open(str(i + 1) + ".md", "w", encoding='utf-8') as f:
f.write(headers[i + 1] + "\n\n")
f.write(body)