X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FPage.hs;h=29f0964541d4228ea4c2a6b7e14a7f445c4e4a6e;hb=ace1b98b247b32e719a72a04fafe9fbffc1c49b0;hp=c22e5206583c819facd8baab5ec437a4038d60a7;hpb=885faf1cabc3f79c90e1885268e2a9138b1ddefb;p=Rakka.git diff --git a/Rakka/Page.hs b/Rakka/Page.hs index c22e520..29f0964 100644 --- a/Rakka/Page.hs +++ b/Rakka/Page.hs @@ -4,7 +4,9 @@ module Rakka.Page , encodePageName , decodePageName , mkPageURI + , mkPageFragmentURI , mkObjectURI + , mkAuxiliaryURI ) where @@ -63,12 +65,25 @@ decodePageName = decode UTF8 . C8.pack . unEscapeString 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]) }