Commit 4eebc801 authored by Ben Gamari's avatar Ben Gamari 🐢
Browse files

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.
parent d7fa8695
......@@ -48,6 +48,8 @@ from docutils import nodes
from docutils.parsers.rst import Directive, directives
from sphinx import addnodes
from import GenericObject
from import ObjType
from sphinx.roles import XRefRole
from sphinx.errors import SphinxError
from utils import build_table_from_list
......@@ -599,14 +601,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