, encodePageName
, decodePageName
, mkPageURI
+ , mkPageFragmentURI
, mkObjectURI
+ , mkAuxiliaryURI
)
where
mkPageURI :: URI -> PageName -> URI
mkPageURI baseURI name
= baseURI {
- uriPath = foldl combine "/" [uriPath baseURI, encodePageName name]
+ uriPath = foldl combine "/" [uriPath baseURI, encodePageName name ++ ".html"]
+ }
+
+
+mkPageFragmentURI :: URI -> PageName -> String -> URI
+mkPageFragmentURI baseURI name fragment
+ = baseURI {
+ uriPath = foldl combine "/" [uriPath baseURI, encodePageName name ++ ".html"]
+ , uriFragment = ('#':fragment)
}
mkObjectURI :: URI -> PageName -> URI
mkObjectURI baseURI name
+ = mkAuxiliaryURI baseURI ["object"] name
+
+
+mkAuxiliaryURI :: URI -> [String] -> PageName -> URI
+mkAuxiliaryURI baseURI basePath name
= baseURI {
- uriPath = foldl combine "/" [uriPath baseURI, "object", encodePageName name]
+ uriPath = foldl combine "/" ([uriPath baseURI] ++ basePath ++ [encodePageName name])
}