25 lines
700 B
Python
Executable File
25 lines
700 B
Python
Executable File
#!/bin/env python3
|
|
|
|
import re
|
|
import sys
|
|
|
|
with open(sys.argv[1], 'r') as f:
|
|
text = f.read()
|
|
result = ''
|
|
prev = 0
|
|
count = 1
|
|
for match in re.finditer(r"(\[[^]]*\]\s*\(\s*#fn(\d+)\s*\)\s*\[\s*\^(\d+)\s*\])", text):
|
|
result += text[prev:match.start(2)] + str(count) + text[match.end(2):match.start(3)] + str(count)
|
|
prev = match.end(3)
|
|
count += 1
|
|
|
|
count = 1
|
|
end_doc_start = prev
|
|
for match in re.finditer(r"^\[\s*\^(\d+)\s*\]:", text[end_doc_start:], re.MULTILINE):
|
|
result += text[prev:match.start(1)+end_doc_start] + str(count)
|
|
prev = match.end(1)+end_doc_start
|
|
count += 1
|
|
|
|
result += text[prev:]
|
|
print(result, end='')
|