Commit 6f717bc6 authored by Ben Gamari's avatar Ben Gamari 🐢

users-guide: Fix build with sphinx 1.8

It seems that both add_object_type and add_directive_to_domain both register a
directive. Previously sphinx didn't seem to mind this but as of Sphinx 1.8 it
crashes with an exception.

(cherry picked from commit 4eebc801)
parent 35959490
......@@ -48,6 +48,8 @@ from docutils import nodes
from docutils.parsers.rst import Directive, directives
from sphinx import addnodes
from sphinx.domains.std import GenericObject
from sphinx.domains import ObjType
from sphinx.roles import XRefRole
from sphinx.errors import SphinxError
from utils import build_table_from_list
......@@ -597,14 +599,20 @@ def purge_flags(app, env, docname):
### Initialization
def setup(app):
# Yuck: We can't use app.add_object_type since we need to provide the
# Directive instance ourselves.
std_object_types = app.registry.domain_object_types.setdefault('std', {})
# Add ghc-flag directive, and override the class with our own
app.add_object_type('ghc-flag', 'ghc-flag')
app.add_directive_to_domain('std', 'ghc-flag', Flag)
app.add_role_to_domain('std', 'ghc-flag', XRefRole())
std_object_types['ghc-flag'] = ObjType('ghc-flag', 'ghc-flag')
# Add extension directive, and override the class with our own
app.add_object_type('extension', 'extension')
app.add_directive_to_domain('std', 'extension', LanguageExtension)
app.add_role_to_domain('std', 'extension', XRefRole())
std_object_types['extension'] = ObjType('ghc-flag', 'ghc-flag')
# NB: language-extension would be misinterpreted by sphinx, and produce
# lang="extensions" XML attributes
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment