git.iko.soy/typeable/pandoc
on master help sign in
Add enclosedByPair1 and change relevant invocations.
a22e044leungbk
src/Text/Pandoc/Readers/Org/Inlines.hs+13−7
@@ -289,7 +289,7 @@ berkeleyBareTag :: PandocMonad m => OrgParser m ()
289berkeleyBareTag = try $ void berkeleyBareTag'
289berkeleyBareTag = try $ void berkeleyBareTag'
290
290
291berkeleyParensTag :: PandocMonad m => OrgParser m ()
291berkeleyParensTag :: PandocMonad m => OrgParser m ()
292−berkeleyParensTag = try . void $ enclosedByPair '(' ')' berkeleyBareTag'
292+berkeleyParensTag = try . void $ enclosedByPair1 '(' ')' berkeleyBareTag'
293
293
294berkeleyBareTag' :: PandocMonad m => OrgParser m ()
294berkeleyBareTag' :: PandocMonad m => OrgParser m ()
295berkeleyBareTag' = try $ void (string "cite")
295berkeleyBareTag' = try $ void (string "cite")
@@ -311,7 +311,7 @@ berkeleyTextualCite = try $ do
311-- citation style, this isn't used.
311-- citation style, this isn't used.
312-- berkeleyBracketedTextualCite :: PandocMonad m => OrgParser m (F [Citation])
312-- berkeleyBracketedTextualCite :: PandocMonad m => OrgParser m (F [Citation])
313-- berkeleyBracketedTextualCite = try . (fmap head) $
313-- berkeleyBracketedTextualCite = try . (fmap head) $
314−-- enclosedByPair '[' ']' berkeleyTextualCite
314+-- enclosedByPair1 '[' ']' berkeleyTextualCite
315
315
316-- | Read a link-like org-ref style citation. The citation includes pre and
316-- | Read a link-like org-ref style citation. The citation includes pre and
317-- post text. However, multiple citations are not possible due to limitations
317-- post text. However, multiple citations are not possible due to limitations
@@ -461,7 +461,7 @@ angleLink = try $ do
461 return link
461 return link
462
462
463linkTarget :: PandocMonad m => OrgParser m String
463linkTarget :: PandocMonad m => OrgParser m String
464−linkTarget = enclosedByPair '[' ']' (noneOf "\n\r[]")
464+linkTarget = enclosedByPair1 '[' ']' (noneOf "\n\r[]")
465
465
466possiblyEmptyLinkTarget :: PandocMonad m => OrgParser m String
466possiblyEmptyLinkTarget :: PandocMonad m => OrgParser m String
467possiblyEmptyLinkTarget = try linkTarget <|> ("" <$ string "[]")
467possiblyEmptyLinkTarget = try linkTarget <|> ("" <$ string "[]")
@@ -525,9 +525,8 @@ inlineCodeBlock :: PandocMonad m => OrgParser m (F Inlines)
525inlineCodeBlock = try $ do
525inlineCodeBlock = try $ do
526 string "src_"
526 string "src_"
527 lang <- many1 orgArgWordChar
527 lang <- many1 orgArgWordChar
528− opts <- option [] $ try (enclosedByPair '[' ']' inlineBlockOption)
528+ opts <- option [] $ enclosedByPair '[' ']' inlineBlockOption
529− <|> (mempty <$ string "[]")
530− inlineCode <- enclosedByPair '{' '}' (noneOf "\n\r")
529+ inlineCode <- enclosedByPair1 '{' '}' (noneOf "\n\r")
531 let attrClasses = [translateLang lang]
530 let attrClasses = [translateLang lang]
532 let attrKeyVal = originalLang lang <> opts
531 let attrKeyVal = originalLang lang <> opts
533 let codeInlineBlck = B.codeWith ("", attrClasses, attrKeyVal) inlineCode
532 let codeInlineBlck = B.codeWith ("", attrClasses, attrKeyVal) inlineCode
@@ -563,7 +562,14 @@ enclosedByPair :: PandocMonad m
563 -> Char -- ^ closing char
562 -> Char -- ^ closing char
564 -> OrgParser m a -- ^ parser
563 -> OrgParser m a -- ^ parser
565 -> OrgParser m [a]
564 -> OrgParser m [a]
566−enclosedByPair s e p = char s *> many1Till p (char e)
565+enclosedByPair s e p = char s *> manyTill p (char e)
566+
567+enclosedByPair1 :: PandocMonad m
568+ => Char -- ^ opening char
569+ -> Char -- ^ closing char
570+ -> OrgParser m a -- ^ parser
571+ -> OrgParser m [a]
572+enclosedByPair1 s e p = char s *> many1Till p (char e)
567
573
568emph :: PandocMonad m => OrgParser m (F Inlines)
574emph :: PandocMonad m => OrgParser m (F Inlines)
569emph = fmap B.emph <$> emphasisBetween '/'
575emph = fmap B.emph <$> emphasisBetween '/'