#!/usr/bin/env python import sys, re fnmap = {} # Uebersetzung alter Index --> neuer Index fndir = {} # Neuer Index --> Fussnotentext footnote_number = 1 # aktuelle Fussnote, 0 wenn im Fussnotenbereich def replace_index(m): global fnmap, fndir, footnote_number idx = int(m.group(1)) if not idx in fnmap: fnmap[idx] = footnote_number footnote_number +=1 return "[%s]" % fnmap[idx] file = file(sys.argv[1]) for line in file: if line == "@footnote:\n": footnote_number = 0 else: if footnote_number: # Wir sind im Text-Bereich print re.sub('\[(\d+)\]', replace_index, line), else: # Wir sind im Fussnoten-Bereich m = re.match('^\[(\d+)\] (.*)', line) if m: idx=int(m.group(1)) fndir[fnmap[idx]] = m.group(2) del fnmap[idx] # wichtig fuer Memory-Verbrauch! # Jetzt geben wir die Fussnoten aus print "\nFussnoten:" for i in range(1,len(fndir) + 1): if i in fndir: print "[%d] %s" % (i,fndir[i]) else: print "[%d] " % i