diff options
author | Sébastien Dailly <sebastien@chimrod.com> | 2013-10-12 19:21:22 +0200 |
---|---|---|
committer | Sébastien Dailly <sebastien@chimrod.com> | 2013-10-12 19:21:22 +0200 |
commit | 0420a6c83f52e7886d58e4847df4127ab11d17fc (patch) | |
tree | 6c3aba71c5db98e4910d8d6dbea5c5923e96b6f5 /content/resources/rst_graphviz/rst2latex.py | |
parent | f0833a629dce15f20a1a9a330a0e413beb5a8158 (diff) |
Added graphviz 4 rst
Diffstat (limited to 'content/resources/rst_graphviz/rst2latex.py')
-rwxr-xr-x | content/resources/rst_graphviz/rst2latex.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/content/resources/rst_graphviz/rst2latex.py b/content/resources/rst_graphviz/rst2latex.py new file mode 100755 index 0000000..9185405 --- /dev/null +++ b/content/resources/rst_graphviz/rst2latex.py @@ -0,0 +1,64 @@ +#!/usr/bin/python + +# $Id: rst2latex.py 5905 2009-04-16 12:04:49Z milde $ +# Author: David Goodger <goodger@python.org> +# Copyright: This module has been placed in the public domain. + +""" +A minimal front end to the Docutils Publisher, producing LaTeX. +""" + +try: + import locale + locale.setlocale(locale.LC_ALL, '') +except: + pass + +import subprocess +import os.path + +from docutils.core import publish_cmdline +from docutils.parsers.rst import directives +from docutils.parsers.rst.directives.images import Figure + +description = ('Generates LaTeX documents from standalone reStructuredText ' + 'sources. ' + 'Reads from <source> (default is stdin) and writes to ' + '<destination> (default is stdout). See ' + '<http://docutils.sourceforge.net/docs/user/latex.html> for ' + 'the full reference.') + +class Graphviz(Figure): + """ Generate a graphviz image + """ + required_arguments = 0 + optional_arguments = 1 + final_argument_whitespace = True + + has_content = True + + option_spec = Figure.option_spec.copy() + + def run(self): + + text = '\n'.join(self.content) + extension = 'png' + imageFile = "tmp/%s.%s" % (hash(text), extension) + if not os.path.exists(imageFile): + conversion = subprocess.Popen(['/usr/bin/dot', + '-T', 'png', + '-o', imageFile, + ], + stdin=subprocess.PIPE + ) + conversion.communicate(text) + conversion.wait() + + self.arguments = [imageFile] + self.options['scale'] = 50 + self.content = None + return Figure.run(self) + +directives.register_directive('graphviz', Graphviz) + +publish_cmdline(writer_name='latex', description=description) |