aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Parsing.hs6
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs6
-rw-r--r--test/command/6855.md12
3 files changed, 22 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs
index 6c8442ce8..4bae8942b 100644
--- a/src/Text/Pandoc/Parsing.hs
+++ b/src/Text/Pandoc/Parsing.hs
@@ -798,7 +798,11 @@ exampleNum :: Stream s m Char
=> ParserT s ParserState m (ListNumberStyle, Int)
exampleNum = do
char '@'
- lab <- T.pack <$> many (alphaNum <|> satisfy (\c -> c == '_' || c == '-'))
+ lab <- mconcat . map T.pack <$>
+ many (many1 alphaNum <|>
+ try (do c <- char '_' <|> char '-'
+ cs <- many1 alphaNum
+ return (c:cs)))
st <- getState
let num = stateNextExample st
let newlabels = if T.null lab
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 02f1f212f..5888bf095 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1544,7 +1544,11 @@ exampleRef :: PandocMonad m => MarkdownParser m (F Inlines)
exampleRef = try $ do
guardEnabled Ext_example_lists
char '@'
- lab <- many1Char (alphaNum <|> oneOf "-_")
+ lab <- mconcat . map T.pack <$>
+ many (many1 alphaNum <|>
+ try (do c <- char '_' <|> char '-'
+ cs <- many1 alphaNum
+ return (c:cs)))
return $ do
st <- askF
return $ case M.lookup lab (stateExamples st) of
diff --git a/test/command/6855.md b/test/command/6855.md
new file mode 100644
index 000000000..46f1ccf65
--- /dev/null
+++ b/test/command/6855.md
@@ -0,0 +1,12 @@
+```
+% pandoc -t markdown
+(@a) one
+(@b) two
+
+See (@a--@b)
+^D
+(1) one
+(2) two
+
+See (1--2)
+```