X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FResource%2FRender.hs;h=8202cf626e050d0ada2f8352dbbaa61042dc89fa;hb=88747f2;hp=778ca2114dba15d8945674510b1c70abc70c3a55;hpb=d128bc12ae9f763c37941122bf2e163517810bba;p=Rakka.git diff --git a/Rakka/Resource/Render.hs b/Rakka/Resource/Render.hs index 778ca21..8202cf6 100644 --- a/Rakka/Resource/Render.hs +++ b/Rakka/Resource/Render.hs @@ -2,24 +2,21 @@ module Rakka.Resource.Render ( resRender ) where - -import qualified Codec.Binary.Base64 as B64 import Control.Arrow import Control.Arrow.ArrowIO import Control.Arrow.ArrowList import Control.Monad.Trans -import qualified Data.ByteString.Lazy as Lazy (ByteString, pack) -import qualified Data.ByteString.Lazy.Char8 as L8 hiding (ByteString) +import qualified Data.ByteString.Lazy as Lazy import Network.HTTP.Lucu -import Network.HTTP.Lucu.Utils +import OpenSSL.EVP.Base64 import Rakka.Environment import Rakka.Page import Rakka.Utils import Rakka.Wiki.Engine +import System.FilePath.Posix import Text.XML.HXT.Arrow.Namespace import Text.XML.HXT.Arrow.WriteDocument import Text.XML.HXT.Arrow.XmlArrow -import Text.XML.HXT.Arrow.XmlIOStateArrow import Text.XML.HXT.DOM.TypeDefs import Text.XML.HXT.DOM.XmlKeywords @@ -37,7 +34,7 @@ resRender env } where toPageName :: [String] -> PageName - toPageName = decodePageName . joinWith "/" + toPageName = UTF8.decodeString . joinPath {- @@ -67,7 +64,7 @@ handleRender env name let (bin, cType) = case cTypeM of Just (MIMEType "application" "x-rakka-base64-stream" _) - -> let b = Lazy.pack $ B64.decode $ L8.unpack entity + -> let b = decodeBase64LBS entity in (b, guessMIMEType b) Just t @@ -82,7 +79,9 @@ handleRender env name >>> render env >>> - writeDocumentToString [ (a_indent, v_1) ] + writeDocumentToString [ (a_indent , v_1) + , (a_output_encoding, utf8) + , (a_no_xml_pi , v_0) ] ) output xmlStr