summaryrefslogtreecommitdiff
path: root/sphinx/transforms.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2016-09-10 17:38:10 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2016-09-15 02:29:50 +0900
commitd281a32b3bdbc4a2d0c609f4f2e8e48df76f2951 (patch)
treebacf287199e0849a3a284e44162aff699234f2d1 /sphinx/transforms.py
parentcd515d568de2a397c9ffbf771f377cf5583e1d69 (diff)
downloadsphinx-git-d281a32b3bdbc4a2d0c609f4f2e8e48df76f2951.tar.gz
Refactor sphinx.environment: Reimplement filter_messages() as a transform
Diffstat (limited to 'sphinx/transforms.py')
-rw-r--r--sphinx/transforms.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/sphinx/transforms.py b/sphinx/transforms.py
index 9f2aeb8d1..516b22843 100644
--- a/sphinx/transforms.py
+++ b/sphinx/transforms.py
@@ -249,6 +249,19 @@ class PreserveTranslatableMessages(Transform):
node.preserve_original_messages()
+class FilterSystemMessages(Transform):
+ """Filter system messages from a doctree."""
+ default_priority = 999
+
+ def apply(self):
+ env = self.document.settings.env
+ filterlevel = env.config.keep_warnings and 2 or 5
+ for node in self.document.traverse(nodes.system_message):
+ if node['level'] < filterlevel:
+ env.app.debug('%s [filtered system message]', node.astext())
+ node.parent.remove(node)
+
+
class Locale(Transform):
"""
Replace translatable nodes with their translated doctree.