huangcm
2024-12-18 9d29be7f7249789d6ffd0440067187a9f040c2cd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
 
import fileinput
import re
import sys
 
refs = {}
complete_file = ""
 
for line in open(sys.argv[1], 'r'):
   complete_file += line
 
for m in re.findall('\[\[(.+)\]\]\n=+ ([^\n]+)', complete_file):
   ref, title = m
   refs["<<" + ref + ">>"] = "<<" + ref + ", " + title + ">>"
 
def translate(match):
   try:
       return refs[match.group(0)]
   except KeyError:
       return ""
 
rc = re.compile('|'.join(map(re.escape, sorted(refs, reverse=True))))
for line in open(sys.argv[1], 'r'):
   print rc.sub(translate, line),