mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-11-09 10:39:41 -06:00
33 lines
985 B
Python
33 lines
985 B
Python
import glob
|
|
import re
|
|
|
|
num_map = {'0': 'Zero', '1': 'One', '2': 'Two', '3': 'Three', '4': 'Four', '5': 'Five', '6': 'Six', '7': 'Seven', '8': 'Eight', '9': 'Nine'}
|
|
|
|
files = glob.glob("books/vol*/**/*.qmd", recursive=True) + glob.glob("books/shared/**/*.qmd", recursive=True)
|
|
|
|
replaced_count = 0
|
|
for fname in files:
|
|
with open(fname, "r") as f:
|
|
content = f.read()
|
|
|
|
orig = content
|
|
# Find all macros like \Something2 and replace with \SomethingTwo
|
|
def replacer(match):
|
|
macro = match.group(0)
|
|
new_macro = ""
|
|
for char in macro:
|
|
if char in num_map:
|
|
new_macro += num_map[char]
|
|
else:
|
|
new_macro += char
|
|
return new_macro
|
|
|
|
content = re.sub(r'\\[a-zA-Z]+[0-9]+', replacer, content)
|
|
|
|
if content != orig:
|
|
with open(fname, "w") as f:
|
|
f.write(content)
|
|
replaced_count += 1
|
|
|
|
print(f"Fixed {replaced_count} files with bad numbered macros.")
|