changeset 19992:8ac7b85bd8f9 stable

minirst: do not interpret a directive as a literal block When a directive was on its own line, it was interpreted as a literal block. Example of problematic input: .. note:: a note text
author Simon Heimberg <simohe@besonet.ch>
date Mon, 04 Nov 2013 10:23:06 +0100
parents ba6486076429
children 03ec85b9cfc4
files mercurial/minirst.py
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/minirst.py	Wed Nov 06 10:20:18 2013 -0800
+++ b/mercurial/minirst.py	Mon Nov 04 10:23:06 2013 +0100
@@ -106,6 +106,12 @@
                 # Partially minimized form: remove space and both
                 # colons.
                 blocks[i]['lines'][-1] = blocks[i]['lines'][-1][:-3]
+            elif len(blocks[i]['lines']) == 1 and \
+                 blocks[i]['lines'][0].lstrip(' ').startswith('.. ') and \
+                 blocks[i]['lines'][0].find(' ', 3) == -1:
+                # directive on its onw line, not a literal block
+                i += 1
+                continue
             else:
                 # Fully minimized form: remove just one colon.
                 blocks[i]['lines'][-1] = blocks[i]['lines'][-1][:-1]