summaryrefslogtreecommitdiff
path: root/sphinx/util/nodes.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/util/nodes.py')
-rw-r--r--sphinx/util/nodes.py88
1 files changed, 45 insertions, 43 deletions
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index a18eac580..d5e43e716 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -4,15 +4,14 @@
Docutils node-related utility functions for Sphinx.
- :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.
"""
import re
import unicodedata
import warnings
-from typing import Any, Callable, Iterable, List, Set, Tuple
-from typing import cast
+from typing import Any, Callable, Iterable, List, Set, Tuple, cast
from docutils import nodes
from docutils.nodes import Element, Node
@@ -28,9 +27,11 @@ from sphinx.util import logging
if False:
# For type annotation
from typing import Type # for python3.5.1
+
from sphinx.builders import Builder
+ from sphinx.domain import IndexEntry
from sphinx.environment import BuildEnvironment
- from sphinx.utils.tags import Tags
+ from sphinx.util.tags import Tags
logger = logging.getLogger(__name__)
@@ -241,6 +242,7 @@ def is_translatable(node: Node) -> bool:
LITERAL_TYPE_NODES = (
nodes.literal_block,
nodes.doctest_block,
+ nodes.math_block,
nodes.raw,
)
IMAGE_TYPE_NODES = (
@@ -313,7 +315,7 @@ def get_prev_node(node: Node) -> Node:
return None
-def traverse_translatable_index(doctree: Element) -> Iterable[Tuple[Element, List[str]]]:
+def traverse_translatable_index(doctree: Element) -> Iterable[Tuple[Element, List["IndexEntry"]]]: # NOQA
"""Traverse translatable index node from a document tree."""
for node in doctree.traverse(NodeMatcher(addnodes.index, inline=False)): # type: addnodes.index # NOQA
if 'raw_entries' in node:
@@ -467,46 +469,46 @@ def _make_id(string: str) -> str:
_non_id_chars = re.compile('[^a-zA-Z0-9._]+')
_non_id_at_ends = re.compile('^[-0-9._]+|-+$')
_non_id_translate = {
- 0x00f8: u'o', # o with stroke
- 0x0111: u'd', # d with stroke
- 0x0127: u'h', # h with stroke
- 0x0131: u'i', # dotless i
- 0x0142: u'l', # l with stroke
- 0x0167: u't', # t with stroke
- 0x0180: u'b', # b with stroke
- 0x0183: u'b', # b with topbar
- 0x0188: u'c', # c with hook
- 0x018c: u'd', # d with topbar
- 0x0192: u'f', # f with hook
- 0x0199: u'k', # k with hook
- 0x019a: u'l', # l with bar
- 0x019e: u'n', # n with long right leg
- 0x01a5: u'p', # p with hook
- 0x01ab: u't', # t with palatal hook
- 0x01ad: u't', # t with hook
- 0x01b4: u'y', # y with hook
- 0x01b6: u'z', # z with stroke
- 0x01e5: u'g', # g with stroke
- 0x0225: u'z', # z with hook
- 0x0234: u'l', # l with curl
- 0x0235: u'n', # n with curl
- 0x0236: u't', # t with curl
- 0x0237: u'j', # dotless j
- 0x023c: u'c', # c with stroke
- 0x023f: u's', # s with swash tail
- 0x0240: u'z', # z with swash tail
- 0x0247: u'e', # e with stroke
- 0x0249: u'j', # j with stroke
- 0x024b: u'q', # q with hook tail
- 0x024d: u'r', # r with stroke
- 0x024f: u'y', # y with stroke
+ 0x00f8: 'o', # o with stroke
+ 0x0111: 'd', # d with stroke
+ 0x0127: 'h', # h with stroke
+ 0x0131: 'i', # dotless i
+ 0x0142: 'l', # l with stroke
+ 0x0167: 't', # t with stroke
+ 0x0180: 'b', # b with stroke
+ 0x0183: 'b', # b with topbar
+ 0x0188: 'c', # c with hook
+ 0x018c: 'd', # d with topbar
+ 0x0192: 'f', # f with hook
+ 0x0199: 'k', # k with hook
+ 0x019a: 'l', # l with bar
+ 0x019e: 'n', # n with long right leg
+ 0x01a5: 'p', # p with hook
+ 0x01ab: 't', # t with palatal hook
+ 0x01ad: 't', # t with hook
+ 0x01b4: 'y', # y with hook
+ 0x01b6: 'z', # z with stroke
+ 0x01e5: 'g', # g with stroke
+ 0x0225: 'z', # z with hook
+ 0x0234: 'l', # l with curl
+ 0x0235: 'n', # n with curl
+ 0x0236: 't', # t with curl
+ 0x0237: 'j', # dotless j
+ 0x023c: 'c', # c with stroke
+ 0x023f: 's', # s with swash tail
+ 0x0240: 'z', # z with swash tail
+ 0x0247: 'e', # e with stroke
+ 0x0249: 'j', # j with stroke
+ 0x024b: 'q', # q with hook tail
+ 0x024d: 'r', # r with stroke
+ 0x024f: 'y', # y with stroke
}
_non_id_translate_digraphs = {
- 0x00df: u'sz', # ligature sz
- 0x00e6: u'ae', # ae
- 0x0153: u'oe', # ligature oe
- 0x0238: u'db', # db digraph
- 0x0239: u'qp', # qp digraph
+ 0x00df: 'sz', # ligature sz
+ 0x00e6: 'ae', # ae
+ 0x0153: 'oe', # ligature oe
+ 0x0238: 'db', # db digraph
+ 0x0239: 'qp', # qp digraph
}