+encodeFragment :: String -> String
+encodeFragment = escapeURIString isSafeChar . C8.unpack . encode UTF8
+
+
+pageFileName' :: Page -> String
+pageFileName' page
+ = fromMaybe (defaultFileName (pageType page) (pageName page)) (pageFileName page)
+
+
+defaultFileName :: MIMEType -> PageName -> String
+defaultFileName pType pName
+ = let baseName = takeFileName pName
+ in
+ case pType of
+ MIMEType "text" "x-rakka" _ -> baseName <.> "rakka"
+ MIMEType "text" "css" _ -> baseName <.> "css"
+ _ -> baseName
+
+