tree <- ( eelem "/"
+= ( eelem "page"
+= sattr "site" siteName
+ += sattr "baseURI" (uriToString id baseURI "")
+= sattr "name" (pageName page)
+= sattr "type" (show $ pageType page)
+= ( case pageLanguage page of
+= ( eelem "body"
+= (constA page >>> formatMainPage sto sysConf interpTable)
)
+ += (constA page >>> formatSource)
>>>
uniqueNamespacesFromDeclAndQNames
)
returnA -< tree
+formatSource :: (ArrowXml a, ArrowChoice a) => a Page XmlTree
+formatSource = proc page
+ -> if pageIsBinary page then
+ none -< ()
+ else
+ let source = decodeLazy UTF8 (pageContent page)
+ in
+ ( eelem "source" += mkText ) -< source
+
+
formatUnexistentPage :: (ArrowXml a, ArrowChoice a, ArrowIO a) =>
Storage
-> SystemConfig
tree <- ( eelem "/"
+= ( eelem "pageNotFound"
- += sattr "site" siteName
- += sattr "styleSheet" (uriToString id (mkObjectURI baseURI cssName) "")
- += sattr "name" name
+ += sattr "site" siteName
+ += sattr "baseURI" (uriToString id baseURI "")
+ += sattr "name" name
+
+ += ( eelem "styleSheets"
+ += ( eelem "styleSheet"
+ += sattr "src" (uriToString id (mkObjectURI baseURI cssName) "")
+ )
+ )
+
+ += ( eelem "scripts"
+ += ( eelem "script"
+ += sattr "src" (uriToString id (baseURI { uriPath = "/js" }) "")
+ )
+ )
+= ( eelem "pageTitle"
+= ( (constA name &&& constA Nothing &&& constA pageTitle)