]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Wiki/Formatter.hs
record before experimental changes
[Rakka.git] / Rakka / Wiki / Formatter.hs
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