]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
Record before an experiment
authorpho <pho@cielonegro.org>
Sun, 21 Oct 2007 08:42:02 +0000 (17:42 +0900)
committerpho <pho@cielonegro.org>
Sun, 21 Oct 2007 08:42:02 +0000 (17:42 +0900)
darcs-hash:20071021084202-62b54-e9616ae706efdb9aed9acdf17139e24763ffcaed.gz

Rakka.cabal
Rakka/Wiki/Engine.hs
Rakka/Wiki/Interpreter.hs
Rakka/Wiki/Interpreter/Base.hs
Rakka/Wiki/Interpreter/Base/Image.hs
defaultPages/StyleSheet/Default

index 495148ebe58c7f5811da583fb7a44f8cf97ba4d8..859d3054ad7c64c91ef4afbad073da4318f9af4b 100644 (file)
@@ -31,12 +31,14 @@ Exposed-Modules:
     Rakka.Page
     Rakka.Storage
     Rakka.SystemConfig
+    Rakka.Utils
     Rakka.Wiki
     Rakka.Wiki.Interpreter
 Other-Modules:
     Rakka.Storage.DefaultPage
-    Rakka.Utils
 Data-Files:
+    defaultpages/Help/SampleImage/Large
+    defaultpages/Help/SampleImage/Small
     defaultPages/Help/Syntax
     defaultPages/MainPage
     defaultPages/StyleSheet/Default
@@ -47,6 +49,17 @@ Executable:
     rakka
 Main-Is:
     Main.hs
+Other-Modules:
+    Rakka.Environment
+    Rakka.Resource
+    Rakka.Resource.Index
+    Rakka.Resource.Object
+    Rakka.Resource.Render
+    Rakka.Wiki.Interpreter.Base
+    Rakka.Wiki.Interpreter.Base.Image
+    Rakka.Wiki.Engine
+    Rakka.Wiki.Formatter
+    Rakka.Wiki.Parser
 Extensions:
     Arrows
 GHC-Options:
@@ -56,6 +69,8 @@ GHC-Options:
 Executable:
     RakkaUnitTest
 Main-Is:
-    tests/RakkaUnitTest.hs
+    RakkaUnitTest.hs
 Hs-Source-Dirs:
     tests
+Other-Modules:
+    WikiParserTest
\ No newline at end of file
index 66e2ccc4363cea341c5d8de4cbb82bdea9053219..3300181bab098ea913c76240864d0bbc5483d81f 100644 (file)
@@ -67,6 +67,14 @@ interpretCommands :: Environment -> InterpTable -> Maybe Page -> WikiPage -> IO
 interpretCommands _   _     _    []     = return []
 interpretCommands env table page blocks = mapM interpBlock blocks
     where
+      ctx :: InterpreterContext
+      ctx = InterpreterContext {
+                  ctxPage    = page
+                , ctxTree    = blocks
+                , ctxStorage = envStorage env
+                , ctxSysConf = envSysConf env
+                }
+
       interpBlock :: BlockElement -> IO BlockElement
       interpBlock (List list)           = interpList list >>= return . List
       interpBlock (DefinitionList defs) = mapM interpDefinition defs >>= return . DefinitionList
@@ -101,7 +109,7 @@ interpretCommands env table page blocks = mapM interpBlock blocks
                   -> fail ("no such interpreter: " ++ bCmdName cmd)
 
               Just interp
-                  -> bciInterpret interp cmd page (envStorage env) (envSysConf env)
+                  -> bciInterpret interp ctx cmd
                      >>=
                      interpBlock
 
@@ -119,7 +127,7 @@ interpretCommands env table page blocks = mapM interpBlock blocks
                   -> fail ("no such interpreter: " ++ iCmdName cmd)
 
               Just interp
-                  -> iciInterpret interp cmd page (envStorage env) (envSysConf env)
+                  -> iciInterpret interp ctx cmd
                      >>=
                      interpInline
 
index bfaab67b0cd742d2ea0f02b7ebaf7b0913fffa9a..09f7414671e75c3a7a047826d7b6e8a9f49a9c6d 100644 (file)
@@ -1,11 +1,9 @@
 module Rakka.Wiki.Interpreter
     ( Interpreter(..)
+    , InterpreterContext(..)
 
     , commandName -- private
     , commandType -- private
-
-    , pureInlineInterp
-    , pureBlockInterp
     )
     where
 
@@ -18,19 +16,20 @@ import           Rakka.Wiki
 data Interpreter
     = InlineCommandInterpreter {
         iciName      :: String
-      , iciInterpret :: InlineCommand
-                     -> Maybe Page
-                     -> Storage
-                     -> SystemConfig
-                     -> IO InlineElement
+      , iciInterpret :: InterpreterContext -> InlineCommand -> IO InlineElement
       }
     | BlockCommandInterpreter {
         bciName      :: String
-      , bciInterpret :: BlockCommand
-                     -> Maybe Page
-                     -> Storage
-                     -> SystemConfig
-                     -> IO BlockElement
+      , bciInterpret :: InterpreterContext -> BlockCommand -> IO BlockElement
+      }
+
+
+data InterpreterContext
+    = InterpreterContext {
+        ctxPage    :: Maybe Page
+      , ctxTree    :: WikiPage
+      , ctxStorage :: Storage
+      , ctxSysConf :: SystemConfig
       }
 
 
@@ -42,17 +41,3 @@ commandName (BlockCommandInterpreter  name _) = name
 commandType :: Interpreter -> CommandType
 commandType (InlineCommandInterpreter _ _) = InlineCommandType
 commandType (BlockCommandInterpreter  _ _) = BlockCommandType
-
-
-pureInlineInterp :: String
-                 -> (InlineCommand -> Maybe Page -> InlineElement)
-                 -> Interpreter
-pureInlineInterp name f
-    = InlineCommandInterpreter name $ \ cmd page _ _ -> return $ f cmd page
-
-
-pureBlockInterp :: String
-                -> (BlockCommand -> Maybe Page -> BlockElement)
-                -> Interpreter
-pureBlockInterp name f
-    = BlockCommandInterpreter name $ \ cmd page _ _ -> return $ f cmd page
index 437705dbdecbdfe7305acd7393d0d421ca104500..1475f461478c4d8694dd680216b449431a0cb3a8 100644 (file)
@@ -18,18 +18,24 @@ baseInterpreters = [ lineBreakInterp
 
 
 lineBreakInterp :: Interpreter
-lineBreakInterp = pureInlineInterp "br" interpret
-    where
-      interpret (InlineCommand _ attrs _) _ = LineBreak attrs
+lineBreakInterp = InlineCommandInterpreter {
+                    iciName      = "br"
+                  , iciInterpret
+                      = \ _ (InlineCommand _ attrs _) -> return $ LineBreak attrs
+                  }
 
 
 spanInterp :: Interpreter
-spanInterp = pureInlineInterp "span" interpret
-    where
-      interpret (InlineCommand _ attrs contents) _ = Span attrs contents
+spanInterp = InlineCommandInterpreter {
+               iciName      = "span"
+             , iciInterpret
+                 = \ _ (InlineCommand _ attrs contents) -> return $ Span attrs contents
+             }
 
 
 divInterp :: Interpreter
-divInterp = pureBlockInterp "div" interpret
-    where
-      interpret (BlockCommand _ attrs contents) _ = Div attrs contents
\ No newline at end of file
+divInterp = BlockCommandInterpreter {
+              bciName      = "div"
+            , bciInterpret
+                = \ _ (BlockCommand _ attrs contents) -> return $ Div attrs contents
+            }
index d23ec78ded73dcf5f1ee2d19da339d7d443d6e7f..f73b205454604d055b96f873047c636eac093105 100644 (file)
@@ -21,8 +21,8 @@ imageInterp
     = InlineCommandInterpreter {
         iciName      = "img"
       , iciInterpret
-          = \ (InlineCommand _ attrs inside) _ _ sysConf ->
-            do BaseURI baseURI <- getSysConf sysConf (BaseURI undefined)
+          = \ ctx (InlineCommand _ attrs inside) ->
+            do BaseURI baseURI <- getSysConf (ctxSysConf ctx) (BaseURI undefined)
 
                let pageName = lookup "src" attrs
                when (pageName == Nothing)
@@ -61,8 +61,8 @@ imgFrameInterp
     = BlockCommandInterpreter {
         bciName      = "imgframe"
       , bciInterpret
-          = \ (BlockCommand _ attrs inside) _ _ sysConf ->
-            do BaseURI baseURI <- getSysConf sysConf (BaseURI undefined)
+          = \ ctx (BlockCommand _ attrs inside) ->
+            do BaseURI baseURI <- getSysConf (ctxSysConf ctx) (BaseURI undefined)
 
                let pageName = lookup "src" attrs
                when (pageName == Nothing)
index a51a05371affc2ade7ff08273a6d3af7d0fa0d3e..49dce5ce5027e04052bbd64f5e3277226ee587a9 100644 (file)
@@ -195,8 +195,8 @@ img {
     padding: 5px;
 
     border-color: #cccccc;
-    border-width: 2px;
-    border-style: dotted;
+    border-width: 1px;
+    border-style: solid;
 }
 
 .imageFrame p {