Kevin Hunter avatar Kevin Hunter committed b01c564 Draft

Enable align center with dynamically create Graphviz objects in HTML.

Comments (0)

Files changed (1)

sphinx/ext/graphviz.py

     optional_arguments = 1
     final_argument_whitespace = False
     option_spec = {
+        'align': directives.unchanged,
         'alt': directives.unchanged,
         'inline': directives.flag,
         'caption': directives.unchanged,
         node = graphviz()
         node['code'] = dotcode
         node['options'] = []
+        if 'align' in self.options:
+            node['align'] = self.options['align']
         if 'alt' in self.options:
             node['alt'] = self.options['alt']
         if 'caption' in self.options:
     optional_arguments = 0
     final_argument_whitespace = False
     option_spec = {
+        'align': directives.unchanged,
         'alt': directives.unchanged,
         'inline': directives.flag,
         'caption': directives.unchanged,
         node['code'] = '%s %s {\n%s\n}\n' % \
                        (self.name, self.arguments[0], '\n'.join(self.content))
         node['options'] = []
+        if 'align' in self.options:
+            node['align'] = self.options['align']
         if 'alt' in self.options:
             node['alt'] = self.options['alt']
         if 'caption' in self.options:
               str(self.builder.config.graphviz_dot) + \
               str(self.builder.config.graphviz_dot_args)
               ).encode('utf-8')
-              
+
     fname = '%s-%s.%s' % (prefix, sha(hashkey).hexdigest(), format)
     if hasattr(self.builder, 'imgpath'):
         # HTML
         self.builder.warn('dot code %r: ' % code + str(exc))
         raise nodes.SkipNode
 
+    wrapper_attrs = dict()
+    wrapper_attrs['CLASS'] = 'graphviz'
+
     inline = node.get('inline', False)
     if inline:
         wrapper = 'span'
     else:
-        wrapper = 'p'
+        wrapper = 'div'
+        if node.has_key('align'):
+            wrapper_attrs['align'] = 'align="{}"'.format(node['align'])
+            wrapper_attrs['CLASS'] += ' align-{}'.format(node['align'])
 
-    self.body.append(self.starttag(node, wrapper, CLASS='graphviz'))
+    self.body.append(self.starttag(node, wrapper, **wrapper_attrs))
     if fname is None:
         self.body.append(self.encode(code))
     else:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.