summaryrefslogtreecommitdiff
path: root/sphinx/domains/javascript.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/domains/javascript.py')
-rw-r--r--sphinx/domains/javascript.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py
index d510d7903..f612fb914 100644
--- a/sphinx/domains/javascript.py
+++ b/sphinx/domains/javascript.py
@@ -4,12 +4,11 @@
The JavaScript domain.
- :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
-from typing import Any, Dict, Iterator, List, Tuple
-from typing import cast
+from typing import Any, Dict, Iterator, List, Tuple, cast
from docutils import nodes
from docutils.nodes import Element, Node
@@ -30,11 +29,10 @@ from sphinx.util.docfields import Field, GroupedField, TypedField
from sphinx.util.docutils import SphinxDirective
from sphinx.util.nodes import make_id, make_refnode
-
logger = logging.getLogger(__name__)
-class JSObject(ObjectDescription):
+class JSObject(ObjectDescription[Tuple[str, str]]):
"""
Description of a JavaScript object.
"""
@@ -49,6 +47,11 @@ class JSObject(ObjectDescription):
#: based on directive nesting
allow_nesting = False
+ option_spec = {
+ 'noindex': directives.flag,
+ 'noindexentry': directives.flag,
+ }
+
def handle_signature(self, sig: str, signode: desc_signature) -> Tuple[str, str]:
"""Breaks down construct signatures
@@ -120,9 +123,10 @@ class JSObject(ObjectDescription):
domain = cast(JavaScriptDomain, self.env.get_domain('js'))
domain.note_object(fullname, self.objtype, node_id, location=signode)
- indextext = self.get_index_text(mod_name, name_obj)
- if indextext:
- self.indexnode['entries'].append(('single', indextext, node_id, '', None))
+ if 'noindexentry' not in self.options:
+ indextext = self.get_index_text(mod_name, name_obj)
+ if indextext:
+ self.indexnode['entries'].append(('single', indextext, node_id, '', None))
def get_index_text(self, objectname: str, name_obj: Tuple[str, str]) -> str:
name, obj = name_obj
@@ -143,7 +147,7 @@ class JSObject(ObjectDescription):
:py:class:`JSObject` represents JavaScript language constructs. For
constructs that are nestable, this method will build up a stack of the
- nesting heirarchy so that it can be later de-nested correctly, in
+ nesting hierarchy so that it can be later de-nested correctly, in
:py:meth:`after_content`.
For constructs that aren't nestable, the stack is bypassed, and instead