@@ -593,11 +593,17 @@ imageOption =
593 <|> try (many1 (oneOf "x0123456789") <* string "px")
593 <|> try (many1 (oneOf "x0123456789") <* string "px")
594 <|> try (oneOfStrings ["link=","alt=","page=","class="] <* many (noneOf "|]"))
594 <|> try (oneOfStrings ["link=","alt=","page=","class="] <* many (noneOf "|]"))
596+collapseUnderscores :: String -> String
597+collapseUnderscores [] = []
598+collapseUnderscores ('_':'_':xs) = collapseUnderscores ('_':xs)
599+collapseUnderscores (x:xs) = x : collapseUnderscores xs
601+addUnderscores :: String -> String
602+addUnderscores = collapseUnderscores . intercalate "_" . words
596internalLink :: MWParser Inlines
604internalLink :: MWParser Inlines
597internalLink = try $ do
605internalLink = try $ do
599− let addUnderscores x = let (pref,suff) = break (=='#') x
600− in pref ++ intercalate "_" (words suff)
601 pagename <- unwords . words <$> many (noneOf "|]")
607 pagename <- unwords . words <$> many (noneOf "|]")
602 label <- option (B.text pagename) $ char '|' *>
608 label <- option (B.text pagename) $ char '|' *>
603 ( (mconcat <$> many1 (notFollowedBy (char ']') *> inline))
609 ( (mconcat <$> many1 (notFollowedBy (char ']') *> inline))