Files
prompt-engineering-for-deve…/content/LangChain Chat with Your Data/do.py
2023-07-16 13:37:02 +08:00

29 lines
927 B
Python

import os
import codecs
import json
def add_toc(ipynb_file):
f = codecs.open(ipynb_file, 'r')
source = f.read()
y = json.loads(source)
toc = ["\n"]
for item in y["cells"]:
if item["cell_type"]=='markdown':
item_start = item['source'][0].strip("\n")
if item_start.startswith("#"):
l = len(item_start.split()[0])
if l<=3 and l>1:
name = " ".join(item_start.split(" ")[1:])
tag = "-".join(item_start.split(" ")[1:])
tab = " "*(l-2)
toc.append(f' {tab}- [{name}](#{tag})\n')
y["cells"][0]['source']= y["cells"][0]['source'][0:1]
y["cells"][0]['source'].extend(toc)
f = codecs.open(ipynb_file, 'w')
f.write(json.dumps(y))
f.close()
for file in os.listdir("."):
if file.endswith("ipynb") and file[0].isdigit():
add_toc(file)