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