[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
|
from . import translator
|
||||||
|
|
||||||
import sphinx.environment
|
import sphinx.environment
|
||||||
|
try:
|
||||||
|
from sphinx.environment.adapters import toctree
|
||||||
|
except ImportError:
|
||||||
|
toctree = None
|
||||||
|
|
||||||
import sphinx.builders.html
|
import sphinx.builders.html
|
||||||
from docutils import nodes
|
from docutils import nodes
|
||||||
def setup(app):
|
def setup(app):
|
||||||
@ -93,6 +98,14 @@ class monkey(object):
|
|||||||
old = getattr(self.obj, name)
|
old = getattr(self.obj, name)
|
||||||
setattr(self.obj, name, lambda self_, *args, **kwargs: \
|
setattr(self.obj, name, lambda self_, *args, **kwargs: \
|
||||||
fn(old, 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)
|
@monkey(sphinx.environment.BuildEnvironment)
|
||||||
def resolve_toctree(old_resolve, self, docname, *args, **kwargs):
|
def resolve_toctree(old_resolve, self, docname, *args, **kwargs):
|
||||||
|
Loading…
Reference in New Issue
Block a user