tree <- ( eelem "/"
+= ( eelem "page"
+= sattr "site" siteName
- += sattr "styleSheet" (uriToString id (mkObjectURI baseURI cssName) "")
+ += sattr "baseURI" (uriToString id baseURI "")
+= sattr "name" (pageName page)
+= sattr "type" (show $ pageType page)
+= ( case pageLanguage page of
+= sattr "revision" (show $ pageRevision page)
+= sattr "lastModified" (formatW3CDateTime $ pageLastMod page)
+ += ( eelem "styleSheets"
+ += ( eelem "styleSheet"
+ += sattr "src" (uriToString id (mkObjectURI baseURI cssName) "")
+ )
+ )
+
+ += ( eelem "scripts"
+ += ( eelem "script"
+ += sattr "src" (uriToString id (baseURI { uriPath = "/js" }) "")
+ )
+ )
+
+= ( case pageSummary page of
Nothing -> none
Just s -> eelem "summary" += txt s
+= ( 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)
setAttribute doc "rakka:isBoring" $ Just $ yesOrNo $ pageIsBoring page
setAttribute doc "rakka:isBinary" $ Just $ yesOrNo $ pageIsBinary page
setAttribute doc "rakka:revision" $ Just $ show $ pageRevision page
+ setAttribute doc "rakka:summary" $ pageSummary page
+
+ addHiddenText doc (pageName page)
case pageType page of
MIMEType "text" "css" _
wikifyParseError :: ParseError -> WikiPage
wikifyParseError err
= [Div [("class", "error")]
- [ Preformatted [Text (show err)] ]]
+ [ Block (Preformatted [Text (show err)]) ]]