Files
prompt-engineering-for-deve…/content/Building Systems with the ChatGPT API/add_update_toc.py

31 lines
989 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' and len(item['source'])>0:
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("."):
print(file)
if file.endswith("ipynb") and file[0].isdigit():
print(file)
add_toc(file)