]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
record before experimental changes
authorpho <pho@cielonegro.org>
Thu, 11 Oct 2007 23:28:28 +0000 (08:28 +0900)
committerpho <pho@cielonegro.org>
Thu, 11 Oct 2007 23:28:28 +0000 (08:28 +0900)
darcs-hash:20071011232828-62b54-45a538761fb0c1ac01d9b32bfc223f3c0fd4dc4c.gz

Rakka/Wiki.hs
Rakka/Wiki/Formatter.hs
Rakka/Wiki/Parser.hs
defaultPages/Help/Syntax
defaultPages/MainPage

index c5c2c68ec1b12b19e62bb73b85b81a5f96bc3ca2..3011b136a4568a41ff1e92492161cefd7855d0a1 100644 (file)
@@ -13,7 +13,7 @@ type WikiPage = [WikiElement]
 
 
 data WikiElement
-    = Block !BlockElement
+    = Block  !BlockElement
     | Inline !InlineElement
     deriving (Eq, Show)
 
index f5239381f1d718b38cc2c146ac226836ac4345c9..13827690070fd7d2031b471f39fd315920026d51 100644 (file)
@@ -5,6 +5,7 @@ module Rakka.Wiki.Formatter
 
 import           Control.Arrow
 import           Control.Arrow.ArrowList
+import           Data.Char
 import           Data.List
 import           Data.Maybe
 import           Network.URI
@@ -80,9 +81,10 @@ formatPageLink :: (ArrowXml a) => a (URI, InlineElement) XmlTree
 formatPageLink 
     = proc (baseURI, PageLink page fragment text)
     -> let uri    = case (page, fragment) of
-                      (Just  x, Just  y) -> mkPageFragmentURI baseURI x y
-                      (Just  x, Nothing) -> mkPageURI baseURI x
+                      (Just  x, Just  y) -> mkPageFragmentURI baseURI (fix x) y
+                      (Just  x, Nothing) -> mkPageURI baseURI (fix x)
                       (Nothing, Just  y) -> nullURI { uriFragment = ('#':y) }
+           fix    = (\ (x:xs) -> toUpper x : xs) . map (\ c -> if c == ' ' then '_' else c)
            href   = uriToString id uri ""
            dLabel = fromMaybe "" page ++ fromMaybe "" (fmap ('#':) fragment)
            label  = fromMaybe dLabel text
index 968e6451673a72ad680a5b9c4c391d68b3cdfc81..52e430a7e4cc12df5771fe0fe9c3695563b6df7d 100644 (file)
@@ -3,7 +3,6 @@ module Rakka.Wiki.Parser
     )
     where
 
-import           Data.Char
 import           Rakka.Wiki
 import           Text.ParserCombinators.Parsec
 
@@ -73,10 +72,8 @@ text = text' >>= return . Text
 
 pageLink :: Parser InlineElement
 pageLink = do string "[["
-              page     <- option Nothing $
-                          do x  <- satisfy (\ c -> not (elem c "#|]" || isLower c))
-                             xs <- many (noneOf "#|]")
-                             return $ Just (x:xs)
+              page     <- option Nothing 
+                          (many1 (noneOf "#|]") >>= return . Just)
               fragment <- option Nothing
                           (char '#' >> many1 (noneOf "|]") >>= return . Just)
               text     <- option Nothing
index ece7fb961bcde1d6c329f3ac3ce7bcc8b6651d81..136a295f92de5b225c9df0791a775ab1f334771a 100644 (file)
 
 ===== Heading 5 =====
 
-== Verbatim ==
+== &amp;lt;nowiki&amp;gt; tags ==
+&lt;nowiki&gt;
+[[Wiki]] markup is ignored here
+but the text is reformatted.
+&lt;/nowiki&gt;
+
+== &amp;lt;pre&amp;gt; tags ==
+&lt;pre&gt;
+[[Wiki]] markup is ignored here
+ and   reformatting is    also  disabled.
+&lt;/pre&gt;
+
+== Leading spaces ==
  This
    is a
-           verbatim
+           preformatted
       text.
+    [[Foo|Wiki markup is interpretted in here.]]
 
 == Horizontal Line ==
 ----
@@ -48,6 +61,8 @@ blah blah blah blah...
 
 == Link ==
 * [[Page]]
+* [[page]]
+* [[space in a page name]]
 * [[Page|Link to "Page"]]
 * [[Page#Heading]]
 * [[#Heading]]
index 4ab9d1e1d0cd6538c76e36ca385e743a183a9e95..7128d09f310f59058338fb960888ee9074aac3dc 100644 (file)
@@ -20,6 +20,8 @@ Another paragraph...
 
 == Link ==
 [[Page]]
+[[page]]
+[[space in a page name]]
 [[Page|Link to "Page"]]
 [[Page#Heading]]
 [[#Heading]]