]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
Implemented dummy trackback commands
authorpho <pho@cielonegro.org>
Wed, 24 Oct 2007 06:15:14 +0000 (15:15 +0900)
committerpho <pho@cielonegro.org>
Wed, 24 Oct 2007 06:15:14 +0000 (15:15 +0900)
darcs-hash:20071024061514-62b54-b7cf1ed1b108702cba371091df744f5e9976d42a.gz

Rakka.cabal
Rakka/Environment.hs
Rakka/Page.hs
Rakka/Plugin.hs [deleted file]
Rakka/Wiki/Interpreter/Trackback.hs [new file with mode: 0644]
Rakka/Wiki/Parser.hs
defaultPages/SideBar/Left
defaultPages/StyleSheet/Default

index 7df3dc4b370754170e3a5ec69d4f36f9820c9e77..c250b7e9cd1ed3ade2fe013e213ed7b9948b4b90 100644 (file)
@@ -42,7 +42,6 @@ Main-Is:
 Other-Modules:
     Rakka.Environment
     Rakka.Page
-    Rakka.Plugin
     Rakka.Resource
     Rakka.Resource.Index
     Rakka.Resource.Object
@@ -55,6 +54,7 @@ Other-Modules:
     Rakka.Wiki.Interpreter
     Rakka.Wiki.Interpreter.Base
     Rakka.Wiki.Interpreter.Image
+    Rakka.Wiki.Interpreter.Trackback
     Rakka.Wiki.Interpreter.Outline
     Rakka.Wiki.Engine
     Rakka.Wiki.Formatter
index 48105b4a6d2b840e43e2b87bb7ddedf51c2d4f4b..e52f4efabe4883fe7f05d6506e3cee2a10a9b23e 100644 (file)
@@ -12,9 +12,10 @@ import qualified Network.HTTP.Lucu.Config as LC
 import           Rakka.Storage
 import           Rakka.SystemConfig
 import           Rakka.Wiki.Interpreter
-import qualified Rakka.Wiki.Interpreter.Base    as Base
-import qualified Rakka.Wiki.Interpreter.Image   as Image
-import qualified Rakka.Wiki.Interpreter.Outline as Outline
+import qualified Rakka.Wiki.Interpreter.Base      as Base
+import qualified Rakka.Wiki.Interpreter.Image     as Image
+import qualified Rakka.Wiki.Interpreter.Trackback as Trackback
+import qualified Rakka.Wiki.Interpreter.Outline   as Outline
 import           Subversion.Repository
 import           System.Directory
 import           System.FilePath
@@ -69,6 +70,7 @@ mkInterpTable :: InterpTable
 mkInterpTable = listToTable $
                 foldl (++) [] [ Base.interpreters
                               , Image.interpreters
+                              , Trackback.interpreters
                               , Outline.interpreters
                               ]
     where
index 93c7465c2079ea448571e78d0a7c804134eda0d1..29f0964541d4228ea4c2a6b7e14a7f445c4e4a6e 100644 (file)
@@ -6,6 +6,7 @@ module Rakka.Page
     , mkPageURI
     , mkPageFragmentURI
     , mkObjectURI
+    , mkAuxiliaryURI
     )
     where
 
@@ -78,6 +79,11 @@ mkPageFragmentURI baseURI name 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])
       }
diff --git a/Rakka/Plugin.hs b/Rakka/Plugin.hs
deleted file mode 100644 (file)
index 930c8e0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-module Rakka.Plugin
-    ( Plugin(..)
-    , RequestHandler
-    , RequestContext(..)
-    )
-    where
-
-import           Data.Typeable
-import           Network.HTTP.Lucu
-import           Rakka.Wiki.Interpreter
-import           Rakka.Storage
-import           Rakka.SystemConfig
-
-
-data Plugin
-    = Plugin {
-        pinInterpreters    :: ![Interpreter]
-      , pinRequestHandlers :: ![RequestHandler]
-      }
-    deriving (Typeable)
-
-
-type RequestHandler
-    = RequestContext -> [String] -> IO (Maybe ResourceDef)
-
-
-data RequestContext
-    = RequestContext {
-        rcStorage :: !Storage
-      , rcSysConf :: !SystemConfig
-      }
diff --git a/Rakka/Wiki/Interpreter/Trackback.hs b/Rakka/Wiki/Interpreter/Trackback.hs
new file mode 100644 (file)
index 0000000..984c4aa
--- /dev/null
@@ -0,0 +1,35 @@
+module Rakka.Wiki.Interpreter.Trackback
+    ( interpreters
+    )
+    where
+
+import           Rakka.Page
+import           Rakka.SystemConfig
+import           Rakka.Wiki
+import           Rakka.Wiki.Interpreter
+
+
+interpreters :: [Interpreter]
+interpreters = [ trackbackURLInterp
+               , trackbacksInterp
+               ]
+
+
+trackbackURLInterp :: Interpreter
+trackbackURLInterp
+    = InlineCommandInterpreter {
+        iciName = "trackbackURL"
+      , iciInterpret
+          = \ ctx _ -> do BaseURI baseURI <- getSysConf (ctxSysConf ctx) (BaseURI undefined)
+                          let uri = mkAuxiliaryURI baseURI ["trackback"] (ctxPageName ctx)
+                          return $ ExternalLink uri (Just "Trackback URL")
+      }
+
+
+trackbacksInterp :: Interpreter
+trackbacksInterp 
+    = BlockCommandInterpreter {
+        bciName = "trackbacks"
+      , bciInterpret
+          = \ _ _ -> return $ Div [("class", "trackbacks")] []
+      }
index 6c5d20722c89f8243b8accc45fe193d771b33f8b..eb236ce1e54e57bab3d8c22cbd4e7433d193dc31 100644 (file)
@@ -272,8 +272,7 @@ blockCmd cmdTypeOf
       undefinedCmdErr name
           = Div [("class", "error")]
             [ Paragraph [Text ("The command `" ++ name ++ "' is not defined. " ++
-                               "Ensure that you haven't mistyped and the module " ++
-                               "providing the command is actually loaded.")
+                               "Make sure you haven't mistyped.")
                         ]
             ]
 
index d03ad83ea7c5d456c42d4db270bcf962e670d772..bce6b7152554dd36b42eaa1997dbb4ae7e1ef26a 100644 (file)
@@ -7,8 +7,12 @@
 <outline />
 
 = Menu =
+* [[MainPage|Main]]
+* [[Help/Syntax|Syntax Help]]
 
 = Trackbacks =
+<trackbackURL />
+<trackbacks />
 
 ]]></textData>
 </page>
index 9500b194391db6d85884d69ab0c9b837ffb4175d..15d58b2f373de4f0dde83fd93e23e198369a0d52 100644 (file)
     padding: 20px;
 }
 
+.sideBar p {
+    margin-left: 5px;
+}
+
+.sideBar .outline li {
+    margin-left: 1em;
+    padding: 0;
+}
+
 .sideBar li {
     padding: 3px;
 }
 }
 
 .sideBar li + li {
-    margin-top: 0.2em;
+    margin-top: 0.1em;
 }
 
-.sideBar ul + h1 {
+.sideBar * + h1 {
     margin-top: 1.2em;
 }
 
 body {
     background-color: white;
     color: black;
+}
 
+.body {
     line-height: 1.3;
 }
 
+p {
+    margin: 0 0 0.8em 0;
+}
+
 h1, h2, h3, h4, h5, h6 {
     font-weight: normal;
 }
@@ -221,10 +236,7 @@ a {
 
 .sideBar .outline li {
     list-style-type: disc;
-    margin-left: 1em;
-    
-    padding: 0;
-    line-height: 1.0;
+    background-color: inherit;
 }
 .sideBar .outline li li {
     list-style-type: circle;
@@ -239,8 +251,9 @@ a {
     list-style-type: circle;
 }
 
-p {
-    margin: 0 0 0.8em 0;
+.sideBar li {
+    padding: 2px 5px;
+    background-color: #f5f5f5;
 }
 
 /* float **********************************************************************/