[Docstring-checkins] CVS: dps/dps/transforms references.py,1.1,1.2
Status: Pre-Alpha
Brought to you by:
goodger
From: David G. <go...@us...> - 2002-01-28 02:19:50
|
Update of /cvsroot/docstring/dps/dps/transforms In directory usw-pr-cvs1:/tmp/cvs-serv11195/dps/dps/transforms Modified Files: references.py Log Message: - Added footnote numbering transform. Index: references.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/transforms/references.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** references.py 2002/01/26 00:10:09 1.1 --- references.py 2002/01/28 02:19:47 1.2 *************** *** 302,306 **** def transform(self, doctree): ! pass --- 302,345 ---- def transform(self, doctree): ! self.setup_transform(doctree) ! startnum = doctree.autofootnote_start ! self.autofootnote_labels = [] ! self.number_footnotes() ! self.number_footnote_references(startnum) ! ! def number_footnotes(self): ! for footnote in self.doctree.autofootnotes: ! label = str(self.doctree.autofootnote_start) ! self.doctree.autofootnote_start += 1 ! footnote.insert(0, nodes.label('', label)) ! if footnote.hasattr('dupname'): ! continue ! if footnote.hasattr('name'): ! name = footnote['name'] ! for ref in self.doctree.footnote_refs.get(name, []): ! ref += nodes.Text(label) ! ref.resolved = 1 ! else: ! footnote['name'] = label ! self.doctree.note_explicit_target(footnote, footnote) ! self.autofootnote_labels.append(label) ! ! def number_footnote_references(self, startnum): ! i = 0 ! for ref in self.doctree.autofootnote_refs: ! if ref.resolved or ref.hasattr('refname'): ! continue ! try: ! ref += nodes.Text(self.autofootnote_labels[i]) ! ref['refname'] = self.autofootnote_labels[i] ! except IndexError: ! sw = self.doctree.reporter.error( ! 'Too many autonumbered footnote references: only %s ' ! 'corresponding footnotes available.' ! % len(self.autofootnote_labels)) ! self.doctree += sw ! break ! ref.resolved = 1 ! i += 1 |