ex ((Url l):xs) = do
hlink (URL {unURL = (l)}) (text l)
ex xs
+ex ((Pre s):xs) = do
+ pre $ text s
+ ex xs
heading 1 = h1
heading 2 = h2
ex2 ((Strike d):xs) = "<strike>"++ex2 d++"</strike>"++ex2 xs
ex2 ((Heading n d):xs) = "\n<h"++show n++">"++ex2 d++"</h"++show n++">\n"++ex2 xs
ex2 ((Url l):xs) = "<link: "++l++">"++ex2 xs
+ex2 ((Pre s):xs) = "<pre>"++s++"</pre>"++ex2 xs
test s = case parse wikiParser "" s of
Backend (getCurrent,getList,get,setCurrent,update)
,PGB
,createPGB
- ,Markup (Text, Paragraph, Link, Bold, Emph, Heading, Url, Underline, Strike)
+ ,Markup (Text, Paragraph, Link, Bold, Emph, Heading, Url, Underline, Strike, Pre)
,Document
,wikiParser
| Url String
| Underline [Markup]
| Strike [Markup]
+ | Pre String
type Document = [Markup]
string "://"
s <- many1 (alphaNum <|> oneOf "?.:&-/")
return (Url (proto++"://"++s))
+
+pPre = do
+ string "<pre>"
+ s <- pString "</pre>"
+ return (Pre s)
pMain = try (pHeading)
<|> (try (pPara)
<|> pSpace
+ <|> try(pPre)
<|> try(pBold)
<|> try(pEmph)
<|> try(pUnderline)