X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FEnvironment.hs;h=d40294ae44c27f224908291509c3f735478c40e6;hb=45a315230ec341d3f7a9b80f8004148949a5e2e5;hp=321ba7ed07bac0a8ba53304ac1a798f8c84c1901;hpb=e43bb104a7313dd696b8bb8aa3bafff94706a187;p=Rakka.git diff --git a/Rakka/Environment.hs b/Rakka/Environment.hs index 321ba7e..d40294a 100644 --- a/Rakka/Environment.hs +++ b/Rakka/Environment.hs @@ -5,9 +5,12 @@ module Rakka.Environment ) where +import Control.Arrow +import Control.Arrow.ArrowList import qualified Data.Map as M import Network import qualified Network.HTTP.Lucu.Config as LC +import Rakka.Page import Rakka.Storage import Rakka.SystemConfig import Rakka.Wiki.Engine @@ -22,6 +25,8 @@ import System.Directory import System.FilePath import System.IO import System.Log.Logger +import Text.HyperEstraier +import Text.XML.HXT.Arrow.XmlIOStateArrow logger = "Rakka.Environment" @@ -53,7 +58,7 @@ setupEnv lsdir portNum do noticeM logger ("Creating a subversion repository on " ++ reposPath) createRepository reposPath [] [] sysConf <- mkSystemConfig lucuConf repos - storage <- mkStorage lsdir repos (makeDraft interpTable) + storage <- mkStorage lsdir repos (makeDraft' interpTable) return $ Environment { envLocalStateDir = lsdir @@ -63,6 +68,18 @@ setupEnv lsdir portNum , envStorage = storage , envInterpTable = interpTable } + where + makeDraft' :: InterpTable -> Page -> IO Document + makeDraft' interpTable page + = do [doc] <- runX ( setErrorMsgHandler False fail + >>> + constA page + >>> + xmlizePage + >>> + makeDraft interpTable + ) + return doc mkInterpTable :: InterpTable