X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FResource%2FRender.hs;h=d358cd80db606b058c88717e711751d77f8c63b4;hb=bea735cd0409bc96e2962ee9e97cae5f7bf4d585;hp=c25ca586fc628cdafcd19dd176f19eec73342d3a;hpb=b444493e17ad49d60464bb5cf02898bd9198af3c;p=Rakka.git diff --git a/Rakka/Resource/Render.hs b/Rakka/Resource/Render.hs index c25ca58..d358cd8 100644 --- a/Rakka/Resource/Render.hs +++ b/Rakka/Resource/Render.hs @@ -2,25 +2,20 @@ 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 Data.Maybe +import qualified Data.ByteString.Lazy as Lazy import Network.HTTP.Lucu -import Network.HTTP.Lucu.Utils 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 @@ -38,7 +33,7 @@ resRender env } where toPageName :: [String] -> PageName - toPageName = decodePageName . joinWith "/" + toPageName = UTF8.decodeString . joinPath {- @@ -68,7 +63,7 @@ handleRender env name let (bin, cType) = case cTypeM of Just (MIMEType "application" "x-rakka-base64-stream" _) - -> let b = Lazy.pack $ fromJust $ B64.decode $ L8.unpack entity + -> let b = decodeBase64LBS entity in (b, guessMIMEType b) Just t @@ -83,7 +78,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