From b5f53e1972393161fdd00c240bc47b9953134627 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Wed, 6 Jul 2011 08:52:07 +0200 Subject: [PATCH] Move node filtering into extract_messages. --- sphinx/builders/gettext.py | 4 ---- sphinx/util/nodes.py | 13 +++++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index 407f1cd13..fbe8afbb2 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -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) diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index a241f5742..682ea77bc 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -22,16 +22,25 @@ from sphinx.util.pycompat import class_types explicit_title_re = re.compile(r'^(.+?)\s*(?$', 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 # orphan # 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: