aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2006-12-31 19:22:02 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2006-12-31 19:22:02 +0000
commit0d182772f9fb6b37de7d7a198709136e6c76e0a8 (patch)
tree2943dd56f64aa61b6eaadabd77099950658e50b0 /src/Text/Pandoc/Readers
parent7f7b456d9621f1a109cc2e15315677ad1d19f1bf (diff)
downloadpandoc-0d182772f9fb6b37de7d7a198709136e6c76e0a8.tar.gz
Revised inline code parsing in Markdown reader to conform to
Markdown.pl. Now any number of `'s can begin inline code, which will end with the same number of `'s. For example, to have two backticks as code, write ``` `` ``` git-svn-id: https://pandoc.googlecode.com/svn/trunk@360 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 4d49e1f28..9913b60f9 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -519,7 +519,7 @@ rawLaTeXEnvironment' = do
-- inline
--
-text = choice [ math, strong, emph, code2, code1, str, linebreak, tabchar,
+text = choice [ math, strong, emph, code, str, linebreak, tabchar,
whitespace, endline ] <?> "text"
inline = choice [ rawLaTeXInline', escapedChar, special, hyphens, text,
@@ -548,23 +548,15 @@ hyphens = try (do
else do{ string ""; return Space }
return (Str result))
--- parses inline code, between codeStart and codeEnd
-code1 = try (do
- char codeStart
- result <- many (noneOf [codeEnd])
- char codeEnd
+-- parses inline code, between n codeStarts and n codeEnds
+code = try (do
+ starts <- many1 (char codeStart)
+ let num = length starts
+ result <- many1Till anyChar (try (count num (char codeEnd)))
-- get rid of any internal newlines
let result' = removeLeadingTrailingSpace $ joinWithSep " " $ lines result
return (Code result'))
--- parses inline code, between 2 codeStarts and 2 codeEnds
-code2 = try (do
- string [codeStart, codeStart]
- result <- manyTill anyChar (try (string [codeEnd, codeEnd]))
- let result' = removeLeadingTrailingSpace $ joinWithSep " " $ lines result
- -- get rid of any internal newlines
- return (Code result'))
-
mathWord = many1 (choice [ (noneOf (" \t\n\\" ++ [mathEnd])),
(try (do
c <- char '\\'