{-# LANGUAGE
TemplateHaskell
#-}
-----------------------------------------------------------------------------
-- |
-- Module : None
-- License : http://www.gnu.org/copyleft/gpl.html
--
-- Maintainer : mmirman@andrew.cmu.edu
-- Stability : experimental
-- Portability : probable
--
-- Just a test class for the main library.
module Main where
import Data.Functor
import Language.XmlHtml.HtmlTags
import Language.XmlHtml.XmlWriter
import Network
import Control.Concurrent
import System.IO
import System.Posix.Signals
handler sock = do
sClose sock
putStrLn "Ending Program"
main = withSocketsDo $ do
socket <- listenOn $ PortNumber 1338
installHandler sigINT (Catch $ handler socket) Nothing
sequence_ $ repeat $ do
(h,_,_) <- accept socket
forkIO $ do
t <- page <$> msg
hPutStr h $ t
hFlush h
hClose h
page content = "HTTP/1.0 200 OK\r\nContent-Length: "++show (length content)++"\r\n\r\n"++content++"\r\n"
msg = makeXml $
html $ do
liftIO $ putStrLn "hi - why is this printing so many times?"
body $ name "thisbody" $ do
h1 "AHA better syntax bitches!"
p $ name "dig" $ "HEHE and paragraphs!"
anchor $ name "dog" $ href "http://www.hulu.com/" $ "And links"