aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Readers/Org/Inlines.hs31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/Text/Pandoc/Readers/Org/Inlines.hs b/src/Text/Pandoc/Readers/Org/Inlines.hs
index 5f3df8d3e..56e3777c3 100644
--- a/src/Text/Pandoc/Readers/Org/Inlines.hs
+++ b/src/Text/Pandoc/Readers/Org/Inlines.hs
@@ -198,21 +198,22 @@ orgRefCite = try $ choice
normalOrgRefCite :: OrgParser (F [Citation])
normalOrgRefCite = try $ do
mode <- orgRefCiteMode
- sequence <$> sepBy1 (orgRefCiteList mode) (char ',')
- where
- -- | A list of org-ref style citation keys, parsed as citation of the given
- -- citation mode.
- orgRefCiteList :: CitationMode -> OrgParser (F Citation)
- orgRefCiteList citeMode = try $ do
- key <- orgRefCiteKey
- returnF $ Citation
- { citationId = key
- , citationPrefix = mempty
- , citationSuffix = mempty
- , citationMode = citeMode
- , citationNoteNum = 0
- , citationHash = 0
- }
+ -- | org-ref style citation key, parsed into a citation of the given mode
+ let orgRefCiteItem :: OrgParser (F Citation)
+ orgRefCiteItem = try $ do
+ key <- orgRefCiteKey
+ returnF $ Citation
+ { citationId = key
+ , citationPrefix = mempty
+ , citationSuffix = mempty
+ , citationMode = mode
+ , citationNoteNum = 0
+ , citationHash = 0
+ }
+ firstCitation <- orgRefCiteItem
+ moreCitations <- many (try $ char ',' *> orgRefCiteItem)
+ return . sequence $ firstCitation : moreCitations
+ where
-- | Read an Berkeley-style Org-mode citation. Berkeley citation style was
-- develop and adjusted to Org-mode style by John MacFarlane and Richard