diff options
author | Ben Gamari <ben@smart-cactus.org> | 2018-09-20 08:27:37 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-09-20 10:13:55 -0400 |
commit | 4eebc8016f68719e1ccdf460754a97d1f4d6ef05 (patch) | |
tree | 63b57041e0a3584ec88ec60e75dc0e52fd237c74 | |
parent | d7fa8695324d6e0c3ea77228f9de93d529afc23e (diff) | |
download | haskell-4eebc8016f68719e1ccdf460754a97d1f4d6ef05.tar.gz |
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.
-rw-r--r-- | docs/users_guide/flags.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/docs/users_guide/flags.py b/docs/users_guide/flags.py index a70f7fef1e..284b5e06cc 100644 --- a/docs/users_guide/flags.py +++ b/docs/users_guide/flags.py @@ -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 @@ -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 |