From 3a7663281a35292b87471da4f5b7a88808546076 Mon Sep 17 00:00:00 2001 From: Albert Krewinkel Date: Mon, 25 Sep 2017 09:31:29 +0200 Subject: [PATCH] Org reader: update emphasis border chars The org reader was updated to match current org-mode behavior: the set of characters which are acceptable to occur as the first or last character in an org emphasis have been changed and now allows all non-whitespace chars at the inner border of emphasized text (see `org-emphasis-regexp-components`). Fixes: #3933 --- src/Text/Pandoc/Readers/Org/Inlines.hs | 6 +++--- test/Tests/Readers/Org.hs | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Text/Pandoc/Readers/Org/Inlines.hs b/src/Text/Pandoc/Readers/Org/Inlines.hs index 42fdfd4dd..c5b1ccc52 100644 --- a/src/Text/Pandoc/Readers/Org/Inlines.hs +++ b/src/Text/Pandoc/Readers/Org/Inlines.hs @@ -735,15 +735,15 @@ many1TillNOrLessNewlines n p end = try $ -- | Chars allowed to occur before emphasis (spaces and newlines are ok, too) emphasisPreChars :: [Char] -emphasisPreChars = "\t \"'({" +emphasisPreChars = "-\t ('\"{" -- | Chars allowed at after emphasis emphasisPostChars :: [Char] -emphasisPostChars = "\t\n !\"'),-.:;?\\}[" +emphasisPostChars = "-\t\n .,:!?;'\")}[" -- | Chars not allowed at the (inner) border of emphasis emphasisForbiddenBorderChars :: [Char] -emphasisForbiddenBorderChars = "\t\n\r \"'," +emphasisForbiddenBorderChars = "\t\n\r " -- | The maximum number of newlines within emphasisAllowedNewlines :: Int diff --git a/test/Tests/Readers/Org.hs b/test/Tests/Readers/Org.hs index a9097f993..0a91d9357 100644 --- a/test/Tests/Readers/Org.hs +++ b/test/Tests/Readers/Org.hs @@ -131,18 +131,18 @@ tests = para (spcSep [ emph $ "t/&" <> space <> "a" , "/" , "./r/" - , "(" <> (strong "l") <> ")" - , (emph "e") <> "!" - , (emph "b") <> "." + , "(" <> strong "l" <> ")" + , emph "e" <> "!" + , emph "b" <> "." ]) - , "Quotes are forbidden border chars" =: - "/'nope/ *nope\"*" =?> - para ("/'nope/" <> space <> "*nope\"*") + , "Quotes are allowed border chars" =: + "/'yep/ *sure\"*" =?> + para (emph "'yep" <> space <> strong "sure\"") - , "Commata are forbidden border chars" =: - "/nada,/" =?> - para "/nada,/" + , "Spaces are forbidden border chars" =: + "/nada /" =?> + para "/nada /" , "Markup should work properly after a blank line" =: T.unlines ["foo", "", "/bar/"] =?>