make math_numfig work with singlehtml writer

This commit is contained in:
Oliver Jahn
2017-12-16 09:37:38 -05:00
parent 04f2929f59
commit 53a84de822
5 changed files with 15 additions and 12 deletions

View File

@@ -334,7 +334,7 @@ def html_visit_displaymath(self, node):
self.body.append(self.starttag(node, 'div', CLASS='math'))
self.body.append('<p>')
if node['number']:
number = get_node_equation_number(self.builder.env, node)
number = get_node_equation_number(self, node)
self.body.append('<span class="eqno">(%s)' % number)
self.add_permalink_ref(node, _('Permalink to this equation'))
self.body.append('</span>')

View File

@@ -36,7 +36,7 @@ def html_visit_displaymath(self, node):
if i == 0:
# necessary to e.g. set the id property correctly
if node['number']:
number = get_node_equation_number(self.builder.env, node)
number = get_node_equation_number(self, node)
self.body.append('<span class="eqno">(%s)' % number)
self.add_permalink_ref(node, _('Permalink to this equation'))
self.body.append('</span>')

View File

@@ -133,17 +133,20 @@ class MathDomain(Domain):
return len(targets) + 1
def get_node_equation_number(env, node):
if env.config.math_numfig and env.config.numfig:
docname = node['docname']
if docname in env.toc_fignumbers:
id = node['ids'][0]
number = env.toc_fignumbers[docname]['displaymath'].get(id, ())
number = '.'.join(map(str, number))
def get_node_equation_number(writer, node):
if writer.builder.config.math_numfig and writer.builder.config.numfig:
figtype = 'displaymath'
if writer.builder.name == 'singlehtml':
key = u"%s/%s" % (writer.docnames[-1], figtype)
else:
number = ''
key = figtype
id = node['ids'][0]
number = writer.builder.fignumbers.get(key, {}).get(id, ())
number = '.'.join(map(str, number))
else:
number = node['number']
return number

View File

@@ -37,7 +37,7 @@ def html_visit_displaymath(self, node):
# necessary to e.g. set the id property correctly
if node['number']:
number = get_node_equation_number(self.builder.env, node)
number = get_node_equation_number(self, node)
self.body.append('<span class="eqno">(%s)' % number)
self.add_permalink_ref(node, _('Permalink to this equation'))
self.body.append('</span>')

View File

@@ -243,7 +243,7 @@ def html_visit_displaymath(self, node):
self.body.append(self.starttag(node, 'div', CLASS='math'))
self.body.append('<p>')
if node['number']:
number = get_node_equation_number(self.builder.env, node)
number = get_node_equation_number(self, node)
self.body.append('<span class="eqno">(%s)</span>' % number)
if fname is None:
# something failed -- use text-only as a bad substitute