Rename key of toc_secnumbers for singlehtml

This commit is contained in:
Takeshi KOMIYA 2017-01-24 20:47:07 +09:00
parent b6a4b221b2
commit 2012ebe054
2 changed files with 13 additions and 13 deletions

View File

@ -1027,7 +1027,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
return tree return tree
def assemble_toc_secnumbers(self): def assemble_toc_secnumbers(self):
# type: () -> Dict[unicode, Dict[Tuple[unicode, unicode], Tuple[int, ...]]] # type: () -> Dict[unicode, Dict[unicode, Tuple[int, ...]]]
# Assemble toc_secnumbers to resolve section numbers on SingleHTML. # Assemble toc_secnumbers to resolve section numbers on SingleHTML.
# Merge all secnumbers to single secnumber. # Merge all secnumbers to single secnumber.
# #
@ -1037,15 +1037,16 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
# #
# There are related codes in inline_all_toctres() and # There are related codes in inline_all_toctres() and
# HTMLTranslter#add_secnumber(). # HTMLTranslter#add_secnumber().
new_secnumbers = {} new_secnumbers = {} # type: Dict[unicode, Tuple[int, ...]]
for docname, secnums in iteritems(self.env.toc_secnumbers): for docname, secnums in iteritems(self.env.toc_secnumbers):
for id, secnum in iteritems(secnums): for id, secnum in iteritems(secnums):
new_secnumbers[(docname, id)] = secnum alias = "%s/%s" % (docname, id)
new_secnumbers[alias] = secnum
return {self.config.master_doc: new_secnumbers} return {self.config.master_doc: new_secnumbers}
def assemble_toc_fignumbers(self): def assemble_toc_fignumbers(self):
# type: () -> Dict[unicode, Dict[Tuple[unicode, unicode], Dict[unicode, Tuple[int, ...]]]] # NOQA # type: () -> Dict[unicode, Dict[unicode, Dict[unicode, Tuple[int, ...]]]] # NOQA
# Assemble toc_fignumbers to resolve figure numbers on SingleHTML. # Assemble toc_fignumbers to resolve figure numbers on SingleHTML.
# Merge all fignumbers to single fignumber. # Merge all fignumbers to single fignumber.
# #
@ -1055,13 +1056,14 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
# #
# There are related codes in inline_all_toctres() and # There are related codes in inline_all_toctres() and
# HTMLTranslter#add_fignumber(). # HTMLTranslter#add_fignumber().
new_fignumbers = {} # type: Dict[Tuple[unicode, unicode], Dict[unicode, Tuple[int, ...]]] # NOQA new_fignumbers = {} # type: Dict[unicode, Dict[unicode, Tuple[int, ...]]]
# {u'foo': {'figure': {'id2': (2,), 'id1': (1,)}}, u'bar': {'figure': {'id1': (3,)}}} # {u'foo': {'figure': {'id2': (2,), 'id1': (1,)}}, u'bar': {'figure': {'id1': (3,)}}}
for docname, fignumlist in iteritems(self.env.toc_fignumbers): for docname, fignumlist in iteritems(self.env.toc_fignumbers):
for figtype, fignums in iteritems(fignumlist): for figtype, fignums in iteritems(fignumlist):
new_fignumbers.setdefault((docname, figtype), {}) alias = "%s/%s" % (docname, figtype)
new_fignumbers.setdefault(alias, {})
for id, fignum in iteritems(fignums): for id, fignum in iteritems(fignums):
new_fignumbers[(docname, figtype)][id] = fignum new_fignumbers[alias][id] = fignum
return {self.config.master_doc: new_fignumbers} return {self.config.master_doc: new_fignumbers}

View File

@ -264,11 +264,9 @@ class HTMLTranslator(BaseTranslator):
elif isinstance(node.parent, nodes.section): elif isinstance(node.parent, nodes.section):
if self.builder.name == 'singlehtml': if self.builder.name == 'singlehtml':
docname = self.docnames[-1] docname = self.docnames[-1]
anchorname = '#' + node.parent['ids'][0] anchorname = "%s/#%s" % (docname, node.parent['ids'][0])
if (docname, anchorname) not in self.builder.secnumbers: if anchorname not in self.builder.secnumbers:
anchorname = (docname, '') # try first heading which has no anchor anchorname = "%s/" % docname # try first heading which has no anchor
else:
anchorname = (docname, anchorname)
else: else:
anchorname = '#' + node.parent['ids'][0] anchorname = '#' + node.parent['ids'][0]
if anchorname not in self.builder.secnumbers: if anchorname not in self.builder.secnumbers:
@ -281,7 +279,7 @@ class HTMLTranslator(BaseTranslator):
def add_fignumber(self, node): def add_fignumber(self, node):
def append_fignumber(figtype, figure_id): def append_fignumber(figtype, figure_id):
if self.builder.name == 'singlehtml': if self.builder.name == 'singlehtml':
key = (self.docnames[-1], figtype) key = "%s/%s" % (self.docnames[-1], figtype)
else: else:
key = figtype key = figtype