]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Environment.hs
The big change
[Rakka.git] / Rakka / Environment.hs
index 321ba7ed07bac0a8ba53304ac1a798f8c84c1901..d40294ae44c27f224908291509c3f735478c40e6 100644 (file)
@@ -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