Skip to content
This repository has been archived by the owner on Mar 7, 2019. It is now read-only.

Commit

Permalink
Handle breaking change to indexnode introduced in Sphinx 1.4.
Browse files Browse the repository at this point in the history
Fixes #48
  • Loading branch information
Chris Thunes committed Sep 30, 2016
1 parent ffc7408 commit 67e1756
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions javasphinx/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from docutils import nodes
from docutils.parsers.rst import Directive, directives

from sphinx import addnodes
from sphinx import addnodes, version_info
from sphinx.roles import XRefRole
from sphinx.locale import l_, _
from sphinx.domains import Domain, ObjType
Expand Down Expand Up @@ -187,7 +187,7 @@ def add_target_and_index(self, name, sig, signode):

indextext = self.get_index_text(package, type, name)
if indextext:
self.indexnode['entries'].append(('single', indextext, fullname, ''))
self.indexnode['entries'].append(_create_indexnode(indextext, fullname))

def before_content(self):
self.set_type = False
Expand Down Expand Up @@ -222,7 +222,7 @@ def handle_method_signature(self, sig, signode):
mods = formatter.output_modifiers(member.modifiers).build()
signode += nodes.Text(mods + ' ', mods + ' ')

if member.type_parameters:
if member.type_parameters:
type_params = formatter.output_type_params(member.type_parameters).build()
signode += nodes.Text(type_params, type_params)
signode += nodes.Text(' ', ' ')
Expand Down Expand Up @@ -425,7 +425,7 @@ def run(self):
ret.append(targetnode)

indextext = _('%s (package)') % (package,)
inode = addnodes.index(entries=[('single', indextext, 'package-' + package, '')])
inode = addnodes.index(entries=[_create_indexnode(indextext, 'package-' + package)])
ret.append(inode)

return ret
Expand Down Expand Up @@ -584,3 +584,11 @@ def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
def get_objects(self):
for refname, (docname, type, _) in self.data['objects'].items():
yield (refname, refname, type, docname, refname, 1)


def _create_indexnode(indextext, fullname):
# See https://github.com/sphinx-doc/sphinx/issues/2673
if version_info < (1, 4):
return ('single', indextext, fullname, '')
else:
return ('single', indextext, fullname, '', None)

0 comments on commit 67e1756

Please sign in to comment.