[FIX] port db0cb1b09237b2e004c7a7eceadedde668f4ac30 from tech doc
fix Sphinx 1.6 compatibility leading to the "tiles" on the home page not working anymore: 1.6 replaces BuildEnvironment.reolve_toctree by TocTree().resolve(), while the method still exists it's not actually called anymore
This commit is contained in:
parent
591adeeb84
commit
63a615bc67
@ -5,6 +5,11 @@ from . import switcher
|
||||
from . import translator
|
||||
|
||||
import sphinx.environment
|
||||
try:
|
||||
from sphinx.environment.adapters import toctree
|
||||
except ImportError:
|
||||
toctree = None
|
||||
|
||||
import sphinx.builders.html
|
||||
from docutils import nodes
|
||||
def setup(app):
|
||||
@ -93,6 +98,14 @@ class monkey(object):
|
||||
old = getattr(self.obj, name)
|
||||
setattr(self.obj, name, lambda self_, *args, **kwargs: \
|
||||
fn(old, self_, *args, **kwargs))
|
||||
if toctree:
|
||||
# 1.6 and above use a new toctree adapter object for processing rather
|
||||
# than functions on the BuildEnv & al
|
||||
@monkey(toctree.TocTree)
|
||||
def resolve(old_resolve, tree, docname, *args, **kwargs):
|
||||
if docname == tree.env.config.master_doc:
|
||||
return resolve_content_toctree(tree.env, docname, *args, **kwargs)
|
||||
return old_resolve(tree, docname, *args, **kwargs)
|
||||
|
||||
@monkey(sphinx.environment.BuildEnvironment)
|
||||
def resolve_toctree(old_resolve, self, docname, *args, **kwargs):
|
||||
|
Loading…
Reference in New Issue
Block a user