X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FResource%2FRender.hs;h=cb01bcd35f3aa5abca2c7da7f97a9b6d47944261;hb=859d4378c2e2a1ccc8028821a37eeaa43aaa23fb;hp=698e789e7467c1ce86fc6b6a0f4c99686f9095c0;hpb=3c5211253dc61c31196a47486c538b64c32d8c5e;p=Rakka.git diff --git a/Rakka/Resource/Render.hs b/Rakka/Resource/Render.hs index 698e789..cb01bcd 100644 --- a/Rakka/Resource/Render.hs +++ b/Rakka/Resource/Render.hs @@ -5,17 +5,15 @@ module Rakka.Resource.Render import Control.Arrow import Control.Arrow.ArrowIO -import Control.Arrow.ArrowList +import Control.Arrow.ArrowIf import Data.Char import Network.HTTP.Lucu import Network.HTTP.Lucu.Utils -import Network.URI import Rakka.Environment import Rakka.Page import Rakka.Resource import Rakka.Storage import Rakka.SystemConfig -import Rakka.Utils import Rakka.Wiki.Engine import System.FilePath import System.Time @@ -27,9 +25,9 @@ import Text.XML.HXT.DOM.TypeDefs fallbackRender :: Environment -> [String] -> IO (Maybe ResourceDef) fallbackRender env path - | null path = return Nothing - | null $ head path = return Nothing - | not $ isUpper $ head $ head path = return Nothing -- /Foo/bar のような形式でない。 + | null path = return Nothing + | null $ head path = return Nothing + | isLower $ head $ head path = return Nothing -- 先頭の文字が小文字であってはならない | otherwise = return $ Just $ ResourceDef { resUsesNativeThread = False @@ -48,7 +46,7 @@ fallbackRender env path handleGet :: Environment -> PageName -> Resource () handleGet env name = runIdempotentA $ proc () - -> do pageM <- getPageA (envStorage env) -< name + -> do pageM <- getPageA (envStorage env) -< (name, Nothing) case pageM of Nothing -> handlePageNotFound env -< name @@ -56,7 +54,7 @@ handleGet env name Just redir@(Redirection _ _ _ _) -> handleRedirect env -< redir - Just entity@(Entity _ _ _ _ _ _ _ _ _ _ _ _) + Just entity@(Entity _ _ _ _ _ _ _ _ _ _ _ _ _ _) -> handleGetEntity env -< entity {- @@ -66,21 +64,31 @@ handleGet env name handleRedirect :: (ArrowXml a, ArrowIO a) => Environment -> a Page (Resource ()) handleRedirect env = proc redir - -> do BaseURI baseURI <- getSysConfA (envSysConf env) (BaseURI undefined) -< () + -> do BaseURI baseURI <- getSysConfA (envSysConf env) -< () returnA -< redirect Found (mkPageURI baseURI $ redirName redir) -- FIXME {- -- デフォルトでない場合のみ存在 + isBinary="no" + revision="112"> -- デフォルトでない場合のみ存在 lastModified="2000-01-01T00:00:00"> + + + + + +