diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index c69c2e0..db927fe 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -14,6 +14,7 @@ import posixpath
import os
import copy
+import docutils
from docutils import nodes
from docutils.writers.html4css1 import Writer, HTMLTranslator as BaseTranslator
@@ -368,8 +369,7 @@ class HTMLTranslator(BaseTranslator):
node['uri'] = posixpath.join(self.builder.imgpath,
self.builder.images[olduri])
- if node['uri'].lower().endswith('svg') or \
- node['uri'].lower().endswith('svgz'):
+ if node['uri'].lower().endswith(('svg', 'svgz')):
atts = {'src': node['uri']}
if node.has_key('width'):
atts['width'] = node['width']
@@ -408,6 +408,15 @@ class HTMLTranslator(BaseTranslator):
pass
BaseTranslator.visit_image(self, node)
+ # overwritten
+ def depart_image(self, node):
+ if docutils.__version__ >= "0.13":
+ # since docutils-0.13, HTMLWriter does not push context data on visit_image()
+ if node['uri'].lower().endswith(('svg', 'svgz')):
+ self.body.append(self.context.pop())
+ else:
+ self.body.append(self.context.pop())
+
def visit_toctree(self, node):
# this only happens when formatting a toc from env.tocs -- in this
# case we don't want to include the subtree