summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2017-01-06 17:52:09 +0100
committerAlbert Krewinkel <albert@zeitkraut.de>2017-01-06 18:22:19 +0100
commit4ca420e937471c568e6d14e8017e184d0959ae09 (patch)
tree56669a4801f7edc8745a6d5db903056aa108d472 /src
parent21e6ca197694a8f65bd2717dc441ea99f3f20312 (diff)
Org reader: accept org-ref citations followed by commas
Bugfix for an issue which, whenever the citation was immediately followed by a comma, prevented correct parsing of org-ref citations.
Diffstat (limited to 'src')
-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