sphinx.ext.pngmath: make Latex errors non-fatal for HTML output

This commit is contained in:
Pauli Virtanen 2008-11-20 21:38:21 +02:00
parent 331f625f91
commit 6be9f22ecf

View File

@ -177,8 +177,29 @@ def cleanup_tempdir(app, exc):
except Exception: except Exception:
pass pass
def _html_error(latex, message):
html = """
<div class="system-message">
<p class="system-message-title">System Message: WARNING/2</p>
<p>Latex error in a math directive</p>
<pre class="literal-block">
%s
</pre>
<pre class="literal-block">
%s
</pre>
</p>
</div>
""" % (latex, message)
print "WARNING:", message
return html
def html_visit_math(self, node): def html_visit_math(self, node):
try:
fname, depth = render_math(self, '$'+node['latex']+'$') fname, depth = render_math(self, '$'+node['latex']+'$')
except MathExtError, exc:
self.body.append(_html_error(node['latex'], exc))
raise nodes.SkipNode
self.body.append('<img class="math" src="%s" alt="%s" %s/>' % self.body.append('<img class="math" src="%s" alt="%s" %s/>' %
(fname, self.encode(node['latex']).strip(), (fname, self.encode(node['latex']).strip(),
depth and 'style="vertical-align: %dpx" ' % (-depth) or '')) depth and 'style="vertical-align: %dpx" ' % (-depth) or ''))
@ -189,7 +210,11 @@ def html_visit_displaymath(self, node):
latex = node['latex'] latex = node['latex']
else: else:
latex = wrap_displaymath(node['latex'], None) latex = wrap_displaymath(node['latex'], None)
try:
fname, depth = render_math(self, latex) fname, depth = render_math(self, latex)
except MathExtError, exc:
self.body.append(_html_error(node['latex'], exc))
raise nodes.SkipNode
self.body.append(self.starttag(node, 'div', CLASS='math')) self.body.append(self.starttag(node, 'div', CLASS='math'))
self.body.append('<p>') self.body.append('<p>')
if node['number']: if node['number']: