X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FWiki%2FInterpreter%2FBase.hs;h=d36b80df34c4250c31ca69e1314b1a704836bab7;hb=8d43862784caf5fc187c948c89e7ef58551f5642;hp=3d38c2c3c9dc2c34478e36de00175d73d1aa0784;hpb=605a843e408a7ef475fbb5a26f408271ab315cc8;p=Rakka.git diff --git a/Rakka/Wiki/Interpreter/Base.hs b/Rakka/Wiki/Interpreter/Base.hs index 3d38c2c..d36b80d 100644 --- a/Rakka/Wiki/Interpreter/Base.hs +++ b/Rakka/Wiki/Interpreter/Base.hs @@ -5,6 +5,7 @@ module Rakka.Wiki.Interpreter.Base import Data.Map (Map) import qualified Data.Map as M +import Data.Maybe import Rakka.Page import Rakka.SystemConfig import Rakka.Wiki @@ -16,7 +17,7 @@ interpreters = [ lineBreakInterp , spanInterp , divInterp , pageNameInterp --- , otherLangsInterp + , otherLangsInterp ] @@ -51,7 +52,7 @@ pageNameInterp = InlineCommandInterpreter { = \ ctx _ -> return $ Text (ctxPageName ctx) } -{- + otherLangsInterp :: Interpreter otherLangsInterp = BlockCommandInterpreter { @@ -63,14 +64,23 @@ otherLangsInterp -> return EmptyBlock Just linkTable - -> do Languages langTable <- getSysConf (ctxSysConf ctx) (Languages undefined) + -> do Languages langTable <- getSysConf (ctxSysConf ctx) let merged = mergeTables langTable (M.toList linkTable) - -- FIXME + return $ List $ mkLangList merged } where mergeTables :: Map LanguageTag LanguageName -> [(LanguageTag, PageName)] -> [(LanguageName, PageName)] mergeTables _ [] = [] - mergeTables m (x:xs) = fromMaybe x (M.lookup x m) : mergeTables m xs --} \ No newline at end of file + mergeTables m (x:xs) = let (langTag, pageName) = x + langName = fromMaybe langTag (M.lookup langTag m) + in + (langName, pageName) : mergeTables m xs + + mkLangList :: [(LanguageName, PageName)] -> ListElement + mkLangList xs = ListElement Bullet (map mkLangLink xs) + + mkLangLink :: (LanguageName, PageName) -> ListItem + mkLangLink (langName, pageName) + = [Right (PageLink (Just pageName) Nothing (Just langName))] \ No newline at end of file