8 import Data.ByteString.Base (LazyByteString)
9 import qualified Data.ByteString.Char8 as C8
11 import Data.Encoding.UTF8
12 import Network.HTTP.Lucu
16 type PageName = String
23 , pageIsTheme :: Bool -- text/css 以外では無意味
24 , pageIsFeed :: Bool -- text/x-rakka 以外では無意味
25 , pageIsLocked :: Bool
26 , pageIsBoring :: Bool
27 , pageSummary :: Maybe String
28 , pageOtherLang :: [(String, PageName)]
29 , pageContent :: LazyByteString
33 -- UTF-8 に encode してから 0x20 - 0x7E の範圍を除いて URI escape する。
34 encodePageName :: PageName -> FilePath
35 encodePageName = escapeURIString shouldEscape . C8.unpack . encode UTF8
37 shouldEscape :: Char -> Bool
39 | c >= ' ' && c <= '~' = False