]> ruin.nu Git - yawbih.git/commitdiff
cleaner, nicer
authorMichael Andreen <harv@ruin.nu>
Mon, 13 Dec 2004 10:25:52 +0000 (10:25 +0000)
committerMichael Andreen <harv@ruin.nu>
Sat, 26 Jan 2008 11:33:17 +0000 (12:33 +0100)
Wiki.hs

diff --git a/Wiki.hs b/Wiki.hs
index 83827cc1a6e6fbb9e04059f91350b99a0ae824cd..c531f8ac271c90d9bad964bced24d963ffe7209d 100644 (file)
--- a/Wiki.hs
+++ b/Wiki.hs
@@ -77,30 +77,20 @@ pLink = do
                [] -> return (Link l l)
                _ -> return (Link l d)
 
-pBold = do
-       string "**"
-       s <- pStringParser "**"
-       return (Bold s)
-
-pEmph = do
-       string "//"
-       s <- pStringParser "//"
-       return (Emph s)
-
-pUnderline = do
-       string "__"
-       s <- pStringParser "__"
-       return (Underline s)
-
-pStrike = do
-       string "--"
-       s <- pStringParser "--"
-       return (Strike s)
-
-pStringParser xs = do 
+pBold = pS "**" (\s -> Bold s)
+pEmph = pS "//" (\s -> Emph s)
+pUnderline = pS "__" (\s -> Underline s)
+pStrike = pS "--" (\s -> Strike s)
+
+pS s f = do
+       string s
+       s <- pStopAt s
+       return (f s)
+
+pStopAt xs = do 
        try (string xs >> return []) <|> (do
                s <- pMain 
-               ss <- pStringParser xs
+               ss <- pStopAt xs
                return (s:ss))
 
 pString xs = do
@@ -113,7 +103,7 @@ pHeading = do
        many1 pEol
        level <- many1 $ char '='
        char ' '
-       s <- pStringParser (' ':level)
+       s <- pStopAt (' ':level)
        return (Heading (length level) s)
 
 pURL = do