Commits

Kevin Hunter committed 066f3e9 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: