diff options
Diffstat (limited to 'sort-xrefs.py')
-rwxr-xr-x | sort-xrefs.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sort-xrefs.py b/sort-xrefs.py new file mode 100755 index 0000000000..f9c1f1fa90 --- /dev/null +++ b/sort-xrefs.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import re +import sys + +# group 0: The whole shebang +# group 1 or group 2: The page name (sans fonts, if any) +# group 3: The section +REFERENCE = re.compile(r'(?:\\fB([a-zA-Z0-9_.-]+)\\fR|([a-zA-Z0-9_.-]+))\(([0-9][A-Za-z]*)\)') +def match_section(match): + return match.group(3).upper() + +def match_page(match): + return match.group(1) or match.group(2) + +def sort_key(line): + match = REFERENCE.match(line) # If this fails we're hosed + assert(match) + return [match_section(match), match_page(match)] + + +lines = [f.rstrip(',\n') for f in sys.stdin] +lines.sort(key=sort_key) +print(',\n'.join(lines)) |