- global toc
- label = slugify(m.group(3), "_")
- if labels.has_key(label):
- n = 0
- while True:
- l = "%s_%d" % (label, n)
- if not labels.has_key(l):
- label = l
- break
- n += 1
-
- toc.append( (label, int(m.group(1))-1, m.group(3)) )
- return '<h%s%s>%s<a name="%s"> </a></h%s>' % (
- m.group(1),
- m.group(2),
- m.group(3),
- label,
- m.group(1))
+ """
+ Function used for re.sub() to find all header elements (h1, h2, ...).
+ Data from those elements (level, headline) are stored in the global
+ array `toc`.
+
+ This function also modifies the text by adding a anchor to the
+ header.
+ """
+ global _toc
+ global _first
+ label = slugify(m.group(3), "_")
+ if _labels.has_key(label):
+ n = 0
+ while True:
+ l = "%s_%d" % (label, n)
+ if not _labels.has_key(l):
+ label = l
+ break
+ n += 1
+
+ level = int(m.group(1))
+ if _first == -1:
+ _first = level
+ _toc.append( (level - _first, m.group(3), label) )
+ _labels[label] = 1
+ return '<h%s%s>%s<a name="%s"> </a></h%s>' % (
+ m.group(1),
+ m.group(2),
+ m.group(3),
+ label,
+ m.group(1))
+