, mkPageFragmentURI
, mkObjectURI
, mkAuxiliaryURI
+ , mkRakkaURI
)
where
, pageIsLocked :: !Bool
, pageIsBoring :: !Bool
, pageIsBinary :: !Bool
- , pageRevision :: !(Maybe RevNum)
+ , pageRevision :: !RevNum
, pageLastMod :: !CalendarTime
, pageSummary :: !(Maybe String)
, pageOtherLang :: !(Map LanguageTag PageName)
where
isSafe :: Char -> Bool
isSafe c
+ | c == '/' = True
+ | isReserved c = False
| c >= ' ' && c <= '~' = True
| otherwise = False
= baseURI {
uriPath = foldl combine "/" ([uriPath baseURI] ++ basePath ++ [encodePageName name])
}
+
+
+mkRakkaURI :: PageName -> URI
+mkRakkaURI name = URI {
+ uriScheme = "rakka:"
+ , uriAuthority = Nothing
+ , uriPath = encodePageName name
+ , uriQuery = ""
+ , uriFragment = ""
+ }