chiark / gitweb /
m.htmlsanity: add a rtrim Jinja2 filter.
authorVladimír Vondruš <mosra@centrum.cz>
Sun, 7 Jul 2019 19:23:35 +0000 (21:23 +0200)
committerVladimír Vondruš <mosra@centrum.cz>
Sun, 7 Jul 2019 20:12:42 +0000 (22:12 +0200)
Argh, I wanted to update to Jina 2.10 without workarounds, but it's not
possible.

doc/plugins/htmlsanity.rst
documentation/doxygen.py
plugins/m/htmlsanity.py

index 39291ea4a6f03dd59e2b931cd30dd59cb4a17c09..f6080e81baa5cef53be69d8dc89a3f2cebdcae59 100644 (file)
@@ -254,6 +254,9 @@ option, which also defaults to :py:`False`.
 `Jinja2 goodies`_
 =================
 
+This plugin adds a ``rtrim`` filter to Jinja. It's like the builtin ``trim``,
+but working only on the right side to get rid of excessive newlines at the end.
+
 `reST rendering`_
 -----------------
 
index fc3703e70a34053f215e12e4ed9b61af7198ef26..c765f4302df36d7e24f61b022ebda0dfcd42426d 100755 (executable)
@@ -3775,6 +3775,8 @@ def run(doxyfile, templates=default_templates, wildcard=default_wildcard, index_
     def basename_or_url(path):
         if urllib.parse.urlparse(path).netloc: return path
         return os.path.basename(path)
+    def rtrim(value): return value.rstrip()
+    env.filters['rtrim'] = rtrim
     env.filters['basename_or_url'] = basename_or_url
     env.filters['urljoin'] = urllib.parse.urljoin
 
index 0f91dcab6dde3f9a35b7f867d8c97c1f04130136..fc36ce69ca18b0f322b40e236017498bf19a40b3 100644 (file)
@@ -690,6 +690,9 @@ def render_rst(value):
     pub.publish(enable_exit_status=True)
     return pub.writer.parts.get('body').strip()
 
+def rtrim(value):
+    return value.rstrip()
+
 def hyphenate(value, enable=None, lang=None):
     if enable is None: enable = settings['M_HTMLSANITY_HYPHENATION']
     if lang is None: lang = settings['M_HTMLSANITY_LANGUAGE']
@@ -710,6 +713,7 @@ def register_mcss(mcss_settings, jinja_environment, **kwargs):
     docutils_settings['language_code'] = settings['M_HTMLSANITY_LANGUAGE']
     docutils_settings.update(settings['M_HTMLSANITY_DOCUTILS_SETTINGS'])
 
+    jinja_environment.filters['rtrim'] = rtrim
     jinja_environment.filters['render_rst'] = render_rst
     jinja_environment.filters['hyphenate'] = hyphenate
     jinja_environment.filters['dehyphenate'] = dehyphenate
@@ -751,6 +755,7 @@ def pelican_format_siteurl(url):
     return urljoin(pelican_settings['SITEURL'] + ('/' if not pelican_settings['SITEURL'].endswith('/') else ''), url)
 
 def _pelican_configure(pelicanobj):
+    pelicanobj.settings['JINJA_FILTERS']['rtrim'] = rtrim
     pelicanobj.settings['JINJA_FILTERS']['render_rst'] = render_rst
     pelicanobj.settings['JINJA_FILTERS']['expand_link'] = pelican_expand_link
     pelicanobj.settings['JINJA_FILTERS']['expand_links'] = pelican_expand_links