+ , envRepository = repos
+ , envSysConf = sysConf
+ , 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
+mkInterpTable = listToTable $
+ foldl (++) [] [ Base.interpreters
+ , Image.interpreters
+ , PageList.interpreters
+ , Trackback.interpreters
+ , Outline.interpreters
+ ]
+ where
+ listToTable :: [Interpreter] -> InterpTable
+ listToTable xs
+ = M.fromList [ (commandName x, x) | x <- xs ]