view nobuild/docutils-plantuml.patch @ 137:9a9dcae45e08

Misc support file changes
author David Bryant <bagnose@gmail.com>
date Sun, 30 Sep 2012 15:25:11 +0930
parents
children
line wrap: on
line source

Index: docutils/parsers/rst/directives/__init__.py
===================================================================
--- docutils/parsers/rst/directives/__init__.py	(revision 7515)
+++ docutils/parsers/rst/directives/__init__.py	(working copy)
@@ -19,6 +19,7 @@
 
 
 _directive_registry = {
+      'uml': ('uml', 'Uml'),
       'attention': ('admonitions', 'Attention'),
       'caution': ('admonitions', 'Caution'),
       'code': ('body', 'CodeBlock'),
Index: docutils/parsers/rst/directives/uml.py
===================================================================
--- docutils/parsers/rst/directives/uml.py	(revision 0)
+++ docutils/parsers/rst/directives/uml.py	(working copy)
@@ -0,0 +1,64 @@
+# Author: mauriciocap <mauriciocap@gmail.com>
+# Copyright: inherited from docutils.sf.net
+# MCAP
+
+"""
+Directive to generate uml diagrams using plantuml
+
+Options:
+  - path: prefix without extension (e.g. "images/login" will generate images/login.txt and images/login.png" ). Files will usualy be OVERWRITEN. But: if no content is specified and .txt file exists, png will be generated from this txt
+"""
+
+__docformat__ = 'reStructuredText'
+
+from docutils.parsers.rst.directives.images import Image
+from docutils.parsers.rst import directives
+from docutils._compat import b
+import os
+
+import sys
+
+class Uml(Image):
+    required_arguments = 0
+    optional_arguments = 1
+    option_spec = Image.option_spec.copy()
+    has_content = True
+
+    def run(self):
+        fname= "uml/%06d" % self.lineno #A: default
+        if (len(self.arguments)>0):
+            fname= self.arguments[0]
+        #A: path contains the path for the txt and image without extension
+        (fnameOutDir, fnameBase)= os.path.split(fname)
+        txtFname= fname+".txt"
+        imgFname= fname+".png"
+        if self.content:
+            os.path.isdir(fnameOutDir) or os.mkdir(fnameOutDir)
+            #A: fnameOutDir exists, BUT only ONE level will be created
+            fo= open(txtFname,"wb")
+            fo.write(b('@startuml\n'))
+            try:
+                fo.write(b(self.state_machine.document.settings.plantuml_hdr+'\n'))
+            except AttributeError:
+                pass
+
+            fo.write(b('\n'.join(self.content)))
+
+            fo.write(b("\n@enduml\n"))
+            fo.close()
+            #A: txt file OVERWRITEN!
+        if (not self.state.document.settings.file_insertion_enabled):
+            warning = self.state_machine.reporter.warning(
+              'File and URL access deactivated; ignoring "%s" '
+              'directive.' % self.name, nodes.literal_block(
+                    self.block_text, self.block_text), line=self.lineno)
+            return [warning]
+
+        plantumlCmd= "plantuml %s"
+        try:
+            plantumlCmd= self.state_machine.document.settings.plantuml_cmd
+        except AttributeError:
+            pass
+        os.system(plantumlCmd % txtFname)
+        self.arguments= [imgFname]
+        return Image.run(self)
Index: docutils/parsers/rst/languages/en.py
===================================================================
--- docutils/parsers/rst/languages/en.py	(revision 7515)
+++ docutils/parsers/rst/languages/en.py	(working copy)
@@ -51,6 +51,7 @@
       #'imagemap': 'imagemap',
       'image': 'image',
       'figure': 'figure',
+      'uml': 'uml', #MCAP
       'include': 'include',
       'raw': 'raw',
       'replace': 'replace',
Index: go.sh
===================================================================
--- go.sh	(revision 0)
+++ go.sh	(working copy)
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+./setup.py build --force && ./setup.py install --prefix=${HOME}/local

Property changes on: go.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property