diff options
author | Albert Krewinkel <albert@zeitkraut.de> | 2019-11-14 14:28:30 +0100 |
---|---|---|
committer | Albert Krewinkel <albert@zeitkraut.de> | 2019-11-14 14:46:32 +0100 |
commit | e43c2e75a1284f464ce1ef9b3b6e12ea2b645f4a (patch) | |
tree | ddd0f19717500a734a43549dc10aecbb2e246d09 | |
parent | 8ff7fd484f5f89e33a7d1df9d396f11ee1b4a169 (diff) | |
download | pandoc-e43c2e75a1284f464ce1ef9b3b6e12ea2b645f4a.tar.gz |
RST writer: fix backslash escaping after strings
The check whether a complex inline element following a string must be
escaped, now depends on the last character of the string instead of the
first.
Fixes: #5906
-rw-r--r-- | src/Text/Pandoc/Writers/RST.hs | 4 | ||||
-rw-r--r-- | test/Tests/Writers/RST.hs | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs index b299e6135..4a3b1b066 100644 --- a/src/Text/Pandoc/Writers/RST.hs +++ b/src/Text/Pandoc/Writers/RST.hs @@ -462,7 +462,7 @@ transformInlines = insertBS . okBeforeComplex Space = True okBeforeComplex SoftBreak = True okBeforeComplex LineBreak = True - okBeforeComplex (Str (T.uncons -> Just (c,_))) + okBeforeComplex (Str (T.unsnoc -> Just (_,c))) = isSpace c || c `elemText` "-:/'\"<([{āā" okBeforeComplex _ = False isComplex :: Inline -> Bool @@ -491,7 +491,7 @@ flatten outer combineAll = foldl combine [] combine :: [Inline] -> Inline -> [Inline] - combine f i = + combine f i = case (outer, i) of -- quotes are not rendered using RST inlines, so we can keep -- them and they will be readable and parsable diff --git a/test/Tests/Writers/RST.hs b/test/Tests/Writers/RST.hs index 8727b38be..e6377c02f 100644 --- a/test/Tests/Writers/RST.hs +++ b/test/Tests/Writers/RST.hs @@ -105,6 +105,9 @@ tests = [ testGroup "rubrics" , "keeps quotes" =: strong (str "f" <> doubleQuoted (str "d") <> str "l") =?> "**fādāl**" + , "backslash inserted between str and code" =: + str "/api?query=" <> code "foo" =?> + "/api?query=\\ ``foo``" ] , testGroup "headings" [ "normal heading" =: |