[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/metacode latex2e.py umldoc.py umlrst.py
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] gzz/metacode latex2e.py umldoc.py umlrst.py |
Date: |
Sun, 09 Feb 2003 15:02:19 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Benja Fallenstein <address@hidden> 03/02/09 15:02:19
Modified files:
metacode : latex2e.py umldoc.py umlrst.py
Log message:
More awful hackery, for using bibtex in rst+latex.
References are [kappe95scalable]_, and at the end you put
'.. bibliography:: gzigzag' (produces \bibliography{gzigzag}).
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/metacode/latex2e.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/metacode/umldoc.py.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/metacode/umlrst.py.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
Patches:
Index: gzz/metacode/latex2e.py
diff -u gzz/metacode/latex2e.py:1.5 gzz/metacode/latex2e.py:1.6
--- gzz/metacode/latex2e.py:1.5 Sun Feb 9 06:58:46 2003
+++ gzz/metacode/latex2e.py Sun Feb 9 15:02:18 2003
@@ -3,8 +3,8 @@
"""
:Author: Engelbert Gruber (hacked by the Gzz project)
:Contact: address@hidden
-:Revision: $Revision: 1.5 $
-:Date: $Date: 2003/02/09 11:58:46 $
+:Revision: $Revision: 1.6 $
+:Date: $Date: 2003/02/09 20:02:18 $
:Copyright: This module has been placed in the public domain.
LaTeX2e document tree Writer.
@@ -429,21 +429,28 @@
self.depart_admonition()
def visit_citation(self, node):
- self.visit_footnote(node)
+ self.body.append([None, 'visit_citation'])
+ #self.visit_footnote(node)
def depart_citation(self, node):
- self.depart_footnote(node)
+ while self.body.pop() != [None, 'visit_citation']: pass
+ #self.depart_footnote(node)
def visit_citation_reference(self, node):
href = ''
if node.has_key('refid'):
href = node['refid']
- elif node.has_key('refname'):
- href = self.document.nameids[node['refname']]
- self.body.append('[\\hyperlink{%s}{' % href)
+ self.body.append('\\cite{%s}' % href)
+ self.body.append(None)
+
+ ##elif node.has_key('refname'):
+ ## href = self.document.nameids[node['refname']]
+ ##self.body.append('[\\hyperlink{%s}{' % href)
def depart_citation_reference(self, node):
- self.body.append('}]')
+ while not (self.body.pop() is None):
+ pass
+ ##self.body.append('}]')
def visit_classifier(self, node):
self.body.append( '(\\textbf{' )
Index: gzz/metacode/umldoc.py
diff -u gzz/metacode/umldoc.py:1.22 gzz/metacode/umldoc.py:1.23
--- gzz/metacode/umldoc.py:1.22 Sun Feb 9 06:58:46 2003
+++ gzz/metacode/umldoc.py Sun Feb 9 15:02:19 2003
@@ -58,6 +58,52 @@
mputils.__rst_init__()
umlrst.__rst_init__()
+
+# ***ugly***
+import docutils.transforms.universal, docutils.nodes
+class FinalCheckVisitor(docutils.transforms.universal.FinalCheckVisitor):
+ def visit_citation_reference(self, node):
+ if node.resolved or not node.hasattr('refname'):
+ return
+ refname = node['refname']
+ id = self.document.nameids.get(refname)
+ if id is None:
+ # Instead of complaining when a reference is not included
+ # (i.e., there's no '.. [gzz] bla' for a '[gzz]_'),
+ # we insert the missing node, empty.
+
+ # Note: I don't really know what I'm doing here,
+ # just poking around and guessing which variables
+ # contain which things...
+
+ id = refname
+ xnode = docutils.nodes.reference(refid=refname)
+ #node += xnode
+ self.document.ids[id] = xnode
+ self.document.nameids[refname] = refname
+
+ del node['refname']
+ node['refid'] = id
+ self.document.ids[id].referenced = 1
+ node.resolved = 1
+
+ ## msg = self.document.reporter.error(
+ ## 'Unknown target name: "%s".' % (node['refname']),
+ ## base_node=node)
+ ## msgid = self.document.set_id(msg)
+ ## prb = nodes.problematic(
+ ## node.rawsource, node.rawsource, refid=msgid)
+ ## prbid = self.document.set_id(prb)
+ ## msg.add_backref(prbid)
+ ## node.parent.replace(node, prb)
+ ##else:
+ ## del node['refname']
+ ## node['refid'] = id
+ ## self.document.ids[id].referenced = 1
+ ## node.resolved = 1
+
+docutils.transforms.universal.FinalCheckVisitor = FinalCheckVisitor
+
def _rstFiles(path):
files = [f for f in os.listdir(mputils._slashify(path)) \
if os.path.isfile(mputils._slashify(path)+f) and not
f.startswith('.')
Index: gzz/metacode/umlrst.py
diff -u gzz/metacode/umlrst.py:1.30 gzz/metacode/umlrst.py:1.31
--- gzz/metacode/umlrst.py:1.30 Sun Feb 9 06:58:46 2003
+++ gzz/metacode/umlrst.py Sun Feb 9 15:02:19 2003
@@ -36,7 +36,19 @@
uml_refer_directive.content = 0
docutils.parsers.rst.directives._directives['uml-refer'] =
uml_refer_directive
+
+ bibliography_directive.arguments = (1, 0, 0)
+ bibliography_directive.options = {}
+ bibliography_directive.content = 0
+ docutils.parsers.rst.directives._directives['bibliography'] =
bibliography_directive
+
+def bibliography_directive(name, arguments, options, content, lineno,
+ content_offset, block_text, state, state_machine):
+ return [docutils.nodes.raw(
+ text='\n\\bibliographystyle{abbrv}\n\\bibliography{%s}\n' %
arguments[0],
+ format='latex')]
+
def uml_directive(name, arguments, options, content, lineno,
content_offset, block_text, state, state_machine):
"""