resolve-asciidoc-refs.py 521 B

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