Commit 5ed9c861 authored by Zejun Wu's avatar Zejun Wu Committed by Ben Gamari

users_guide: fix sphinx error caused by non-explicit override

Encouter following error when `make`:

```
Extension error:
The 'ghc-flag' directive is already registered to domain std
```

as we register `ghc-flag` to `std` in `add_object_type` first and then
overtride it in `add_directive_to_domain`.

Test Plan:
  make -C utils/haddock/doc html SPHINX_BUILD=/usr/bin/sphinx-build

Reviewers: austin, bgamari, patrickdoc

Subscribers: rwbarton, carter

Differential Revision: https://phabricator.haskell.org/D5161

(cherry picked from commit 8c7d33a8)
parent 6f717bc6
......@@ -48,8 +48,6 @@ 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,20 +597,15 @@ 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_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')
app.add_object_type('ghc-flag', 'ghc-flag')
app.add_directive_to_domain('std', 'ghc-flag', Flag, override=True)
# Add extension directive, and override the class with our own
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')
app.add_object_type('extension', 'extension')
app.add_directive_to_domain('std', 'extension', LanguageExtension,
override=True)
# 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