git.iko.soy/typeable/pandoc
on master help sign in
Changes to Markdown reader for better conformity to the
84aa875fiddlosopher
src/Text/Pandoc/Readers/Markdown.hs+12−6
@@ -322,7 +322,7 @@ bulletListStart = try $ do
322 skipSpaces
322 skipSpaces
323
323
324anyOrderedListStart = try $ do
324anyOrderedListStart = try $ do
325− optional newline -- if preceded by a Plain block in a list context
325+ optional newline -- if preceded by a Plain block in a list context
326 nonindentSpaces
326 nonindentSpaces
327 state <- getState
327 state <- getState
328 if stateStrict state
328 if stateStrict state
@@ -786,8 +786,6 @@ endline = try $ do
786 then do
786 then do
787 notFollowedBy emailBlockQuoteStart
787 notFollowedBy emailBlockQuoteStart
788 notFollowedBy (char '#') -- atx header
788 notFollowedBy (char '#') -- atx header
789− notFollowedBy (manyTill anyChar newline >> oneOf setextHChars)
790− -- setext header
791 else return ()
789 else return ()
792 -- parse potential list-starts differently if in a list:
790 -- parse potential list-starts differently if in a list:
793 if stateParserContext st == ListItemState
791 if stateParserContext st == ListItemState
@@ -854,9 +852,10 @@ autoLinkEmail = try $ do
854 char '<'
852 char '<'
855 name <- many1Till (noneOf "/:<> \t\n") (char '@')
853 name <- many1Till (noneOf "/:<> \t\n") (char '@')
856 domain <- sepBy1 (many1 (noneOf "/:.@<> \t\n")) (char '.')
854 domain <- sepBy1 (many1 (noneOf "/:.@<> \t\n")) (char '.')
857− let src = name ++ "@" ++ (joinWithSep "." domain)
858 char '>'
855 char '>'
856+ let src = name ++ "@" ++ (joinWithSep "." domain)
857+ txt <- autoLinkText src
859− return $ Link [Code src] (("mailto:" ++ src), "")
858+ return $ Link txt (("mailto:" ++ src), "")
860
859
861-- a link <http://like.this.com>
860-- a link <http://like.this.com>
862autoLinkRegular = try $ do
861autoLinkRegular = try $ do
@@ -864,7 +863,14 @@ autoLinkRegular = try $ do
864 prot <- oneOfStrings ["http:", "ftp:", "mailto:"]
863 prot <- oneOfStrings ["http:", "ftp:", "mailto:"]
865 rest <- many1Till (noneOf " \t\n<>") (char '>')
864 rest <- many1Till (noneOf " \t\n<>") (char '>')
866 let src = prot ++ rest
865 let src = prot ++ rest
866+ txt <- autoLinkText src
867− return $ Link [Code src] (src, "")
867+ return $ Link txt (src, "")
868+
869+autoLinkText src = do
870+ st <- getState
871+ return $ if stateStrict st
872+ then [Str src]
873+ else [Code src]
868
874
869image = try $ do
875image = try $ do
870 char '!'
876 char '!'