mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Move node filtering into extract_messages.
This commit is contained in:
parent
f1f7bde914
commit
b5f53e1972
@ -81,10 +81,6 @@ class I18nBuilder(Builder):
|
||||
catalog = self.catalogs[docname.split(SEP, 1)[0]]
|
||||
|
||||
for node, msg in extract_messages(doctree):
|
||||
if not node.source:
|
||||
continue # built-in message
|
||||
if isinstance(node, nodes.literal_block):
|
||||
continue
|
||||
catalog.add(msg, node)
|
||||
|
||||
|
||||
|
@ -22,16 +22,25 @@ from sphinx.util.pycompat import class_types
|
||||
explicit_title_re = re.compile(r'^(.+?)\s*(?<!\x00)<(.*?)>$', re.DOTALL)
|
||||
caption_ref_re = explicit_title_re # b/w compat alias
|
||||
|
||||
|
||||
IGNORED_NODES = (
|
||||
nodes.Invisible,
|
||||
nodes.Inline,
|
||||
nodes.literal_block,
|
||||
nodes.doctest_block,
|
||||
#XXX there are probably more
|
||||
)
|
||||
def extract_messages(doctree):
|
||||
"""Extract translatable messages from a document tree."""
|
||||
for node in doctree.traverse(nodes.TextElement):
|
||||
if isinstance(node, (nodes.Invisible, nodes.Inline)):
|
||||
if not node.source:
|
||||
continue # built-in message
|
||||
if isinstance(node, IGNORED_NODES):
|
||||
continue
|
||||
# <field_name>orphan</field_name>
|
||||
# XXX ignore all metadata (== docinfo)
|
||||
if isinstance(node, nodes.field_name) and node.children[0] == 'orphan':
|
||||
continue
|
||||
|
||||
msg = node.rawsource.replace('\n', ' ').strip()
|
||||
# XXX nodes rendering empty are likely a bug in sphinx.addnodes
|
||||
if msg:
|
||||
|
Loading…
Reference in New Issue
Block a user