git.iko.soy/typeable/pandoc
on master help sign in
Allow newline before URL in markdown link references. Resolves Issue #81.

Added tests for this issue in new "markdown-reader-more" tests. Changed RunTests.hs to run these tests. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1401 788f1e2b-df1e-0410-8736-df70ead52e1b

commitdd2b77d5900014ef865ba8a23ac0ad4acdc946b1 authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateSun 10 Aug 2008, 23:26 (18 years ago) parentac28fa2
4 files changed+25−7
Text/Pandoc/Readers/Markdown.hs+4−6 tests/RunTests.hs+3−1 tests/markdown-reader-more.native+5 tests/markdown-reader-more.txt+13
Text/Pandoc/Readers/Markdown.hs+4−6
@@ -187,10 +187,9 @@ referenceKey = try $ do
187187 nonindentSpaces
188188 lab <- reference
189189 char ':'
190− skipSpaces
191− optional (char '<')
192− src <- many (noneOf "> \n\t")
193− optional (char '>')
190+ skipSpaces >> optional newline >> skipSpaces >> notFollowedBy (char '[')
191+ src <- (char '<' >> many (noneOf "> \n\t") >>~ char '>')
192+ <|> many (noneOf " \n\t")
194193 tit <- option "" referenceTitle
195194 blanklines
196195 endPos <- getPosition
@@ -203,8 +202,7 @@ referenceKey = try $ do
203202
204203referenceTitle :: GenParser Char st String
205204referenceTitle = try $ do
206− (many1 spaceChar >> option '\n' newline) <|> newline
207− skipSpaces
205+ skipSpaces >> optional newline >> skipSpaces
208206 tit <- (charsInBalanced '(' ')' >>= return . unwords . words)
209207 <|> do delim <- char '\'' <|> char '"'
210208 manyTill anyChar (try (char delim >> skipSpaces >>
tests/RunTests.hs+3−1
@@ -61,6 +61,8 @@ main = do
6161 "testsuite.txt" "testsuite.native"
6262 r7 <- runTest "markdown reader (tables)" ["-r", "markdown", "-w", "native"]
6363 "tables.txt" "tables.native"
64+ r7a <- runTest "markdown reader (more)" ["-r", "markdown", "-w", "native"]
65+ "markdown-reader-more.txt" "markdown-reader-more.native"
6466 r8 <- runTest "rst reader" ["-r", "rst", "-w", "native", "-s", "-S"]
6567 "rst-reader.rst" "rst-reader.native"
6668 r9 <- runTest "html reader" ["-r", "html", "-w", "native", "-s"]
@@ -69,7 +71,7 @@ main = do
6971 "latex-reader.latex" "latex-reader.native"
7072 r11 <- runTest "native reader" ["-r", "native", "-w", "native", "-s"]
7173 "testsuite.native" "testsuite.native"
72− let results = r1s ++ [r2, r3, r4, r5, r6, r7, r8, r9, r10, r11]
74+ let results = r1s ++ [r2, r3, r4, r5, r6, r7, r7a, r8, r9, r10, r11]
7375 if all id results
7476 then do
7577 putStrLn "\nAll tests passed."
tests/markdown-reader-more.nativenew file+5
@@ -0,0 +1,5 @@
1+Pandoc (Meta [] [] "")
2+[ Header 1 [Str "Additional",Space,Str "markdown",Space,Str "reader",Space,Str "tests"]
3+, Header 2 [Str "Blank",Space,Str "line",Space,Str "before",Space,Str "URL",Space,Str "in",Space,Str "link",Space,Str "reference"]
4+, Para [Link [Str "foo"] ("/url",""),Space,Str "and",Space,Link [Str "bar"] ("/url","title")] ]
5+
tests/markdown-reader-more.txtnew file+13
@@ -0,0 +1,13 @@
1+# Additional markdown reader tests
2+
3+## Blank line before URL in link reference
4+
5+[foo] and [bar]
6+
7+[foo]:
8+ /url
9+
10+[bar]:
11+/url
12+"title"
13+