@@ -55,9 +55,6 @@ readMarkdown state s = (readWith parseMarkdown) state (s ++ "\n\n")
5555-- Constants and data structure definitions
5656--
5757
58−spaceChars :: [Char]
59−spaceChars = " \t"
60−
6158bulletListMarkers :: [Char]
6259bulletListMarkers = "*+-"
6360
@@ -325,7 +322,7 @@ hrule = try $ do
325322 skipSpaces
326323 start <- oneOf hruleChars
327324 count 2 (skipSpaces >> char start)
328− skipMany (oneOf spaceChars <|> char start)
325+ skipMany (spaceChar <|> char start)
329326 newline
330327 optional blanklines
331328 return HorizontalRule
@@ -634,7 +631,7 @@ htmlBlock :: GenParser Char ParserState Block
634631htmlBlock = try $ do
635632 failUnlessBeginningOfLine
636633 first <- htmlElement
637− finalSpace <- many (oneOf spaceChars)
634+ finalSpace <- many spaceChar
638635 finalNewlines <- many newline
639636 return $ RawHtml $ first ++ finalSpace ++ finalNewlines
640637
@@ -939,12 +936,12 @@ strikeout = failIfStrict >> enclosed (string "~~") (try $ string "~~") inline >>
939936
940937superscript :: GenParser Char ParserState Inline
941938superscript = failIfStrict >> enclosed (char '^') (char '^')
942− (notFollowedBy' whitespace >> inline) >>= -- may not contain Space
939+ (notFollowedBy spaceChar >> inline) >>= -- may not contain Space
943940 return . Superscript
944941
945942subscript :: GenParser Char ParserState Inline
946943subscript = failIfStrict >> enclosed (char '~') (char '~')
947− (notFollowedBy' whitespace >> inline) >>= -- may not contain Space
944+ (notFollowedBy spaceChar >> inline) >>= -- may not contain Space
948945 return . Subscript
949946
950947abbrev :: GenParser Char ParserState Inline
@@ -1053,17 +1050,15 @@ emDash :: GenParser Char st Inline
10531050emDash = oneOfStrings ["---", "--"] >> return EmDash
10541051
10551052whitespace :: GenParser Char ParserState Inline
1056−whitespace = do
1057− sps <- many1 (oneOf spaceChars)
1058− if length sps >= 2
1059− then option Space (endline >> return LineBreak)
1060− else return Space <?> "whitespace"
1053+whitespace = spaceChar >>
1054+ ( (spaceChar >> skipMany spaceChar >> option Space (endline >> return LineBreak))
1055+ <|> (skipMany spaceChar >> return Space) ) <?> "whitespace"
10611056
10621057nonEndline :: GenParser Char st Char
10631058nonEndline = satisfy (/='\n')
10641059
10651060strChar :: GenParser Char st Char
1066−strChar = noneOf (specialChars ++ spaceChars ++ "\n")
1061+strChar = noneOf (specialChars ++ " \t\n")
10671062
10681063str :: GenParser Char st Inline
10691064str = many1 strChar >>= return . Str