git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: fix regression with example list references.
bf3fea0John MacFarlane
src/Text/Pandoc/Parsing.hs+5−1
@@ -798,7 +798,11 @@ exampleNum :: Stream s m Char
798 => ParserT s ParserState m (ListNumberStyle, Int)
798 => ParserT s ParserState m (ListNumberStyle, Int)
799exampleNum = do
799exampleNum = do
800 char '@'
800 char '@'
801+ lab <- mconcat . map T.pack <$>
801− lab <- T.pack <$> many (alphaNum <|> satisfy (\c -> c == '_' || c == '-'))
802+ many (many1 alphaNum <|>
803+ try (do c <- char '_' <|> char '-'
804+ cs <- many1 alphaNum
805+ return (c:cs)))
802 st <- getState
806 st <- getState
803 let num = stateNextExample st
807 let num = stateNextExample st
804 let newlabels = if T.null lab
808 let newlabels = if T.null lab
src/Text/Pandoc/Readers/Markdown.hs+5−1
@@ -1544,7 +1544,11 @@ exampleRef :: PandocMonad m => MarkdownParser m (F Inlines)
1544exampleRef = try $ do
1544exampleRef = try $ do
1545 guardEnabled Ext_example_lists
1545 guardEnabled Ext_example_lists
1546 char '@'
1546 char '@'
1547− lab <- many1Char (alphaNum <|> oneOf "-_")
1547+ lab <- mconcat . map T.pack <$>
1548+ many (many1 alphaNum <|>
1549+ try (do c <- char '_' <|> char '-'
1550+ cs <- many1 alphaNum
1551+ return (c:cs)))
1548 return $ do
1552 return $ do
1549 st <- askF
1553 st <- askF
1550 return $ case M.lookup lab (stateExamples st) of
1554 return $ case M.lookup lab (stateExamples st) of
test/command/6855.mdnew file+12
@@ -0,0 +1,12 @@
1+```
2+% pandoc -t markdown
3+(@a) one
4+(@b) two
5+
6+See (@a--@b)
7+^D
8+(1) one
9+(2) two
10+
11+See (1--2)
12+```