diff options
author | Albert Krewinkel <albert@zeitkraut.de> | 2018-02-21 08:53:29 +0100 |
---|---|---|
committer | Albert Krewinkel <albert@zeitkraut.de> | 2018-02-21 22:43:18 +0100 |
commit | 00d20ccd09a8542fda631ab16c7f569098f2918d (patch) | |
tree | 7fb3eff8a5c95349d9f50e9b8cdc73250b63c637 /src/Text/Pandoc/Readers/Org/Inlines.hs | |
parent | 84db7e492a7a7091ca366f24c21dd5d44163f0da (diff) | |
download | pandoc-00d20ccd09a8542fda631ab16c7f569098f2918d.tar.gz |
Org reader: allow changing emphasis syntax
The characters allowed before and after emphasis can be configured via
`#+pandoc-emphasis-pre` and `#+pandoc-emphasis-post`, respectively. This
allows to change which strings are recognized as emphasized text on a
per-document or even per-paragraph basis. The allowed characters must be
given as (Haskell) string.
#+pandoc-emphasis-pre: "-\t ('\"{"
#+pandoc-emphasis-post: "-\t\n .,:!?;'\")}["
If the argument cannot be read as a string, the default value is
restored.
Closes: #4378
Diffstat (limited to 'src/Text/Pandoc/Readers/Org/Inlines.hs')
-rw-r--r-- | src/Text/Pandoc/Readers/Org/Inlines.hs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/Text/Pandoc/Readers/Org/Inlines.hs b/src/Text/Pandoc/Readers/Org/Inlines.hs index 670f8ace0..3a12f38d0 100644 --- a/src/Text/Pandoc/Readers/Org/Inlines.hs +++ b/src/Text/Pandoc/Readers/Org/Inlines.hs @@ -603,6 +603,8 @@ updatePositions :: PandocMonad m => Char -> OrgParser m Char updatePositions c = do + st <- getState + let emphasisPreChars = orgStateEmphasisPreChars st when (c `elem` emphasisPreChars) updateLastPreCharPos when (c `elem` emphasisForbiddenBorderChars) updateLastForbiddenCharPos return c @@ -681,8 +683,10 @@ emphasisEnd c = try $ do updateLastStrPos popInlineCharStack return c - where acceptablePostChars = - surroundingEmphasisChar >>= \x -> oneOf (x ++ emphasisPostChars) + where + acceptablePostChars = do + emphasisPostChars <- orgStateEmphasisPostChars <$> getState + surroundingEmphasisChar >>= \x -> oneOf (x ++ emphasisPostChars) mathStart :: PandocMonad m => Char -> OrgParser m Char mathStart c = try $ @@ -734,14 +738,6 @@ many1TillNOrLessNewlines n p end = try $ -- here (see, e.g., the Emacs Lisp variable `org-emphasis-regexp-components` -- for details). --- | Chars allowed to occur before emphasis (spaces and newlines are ok, too) -emphasisPreChars :: [Char] -emphasisPreChars = "-\t ('\"{" - --- | Chars allowed at after emphasis -emphasisPostChars :: [Char] -emphasisPostChars = "-\t\n .,:!?;'\")}[" - -- | Chars not allowed at the (inner) border of emphasis emphasisForbiddenBorderChars :: [Char] emphasisForbiddenBorderChars = "\t\n\r " |