]> gitweb @ CieloNegro.org - Rakka.git/blob - Rakka/Wiki/Interpreter/Base.hs
Farewell the dream of plug-in system... It's way too hard to implement nicely. Many...
[Rakka.git] / Rakka / Wiki / Interpreter / Base.hs
1 module Rakka.Wiki.Interpreter.Base
2     ( interpreters
3     )
4     where
5
6 import           Rakka.Wiki
7 import           Rakka.Wiki.Interpreter
8
9
10 interpreters :: [Interpreter]
11 interpreters = [ lineBreakInterp
12                , spanInterp
13                , divInterp
14                , pageNameInterp
15                ]
16
17
18 lineBreakInterp :: Interpreter
19 lineBreakInterp = InlineCommandInterpreter {
20                     iciName      = "br"
21                   , iciInterpret
22                       = \ _ (InlineCommand _ attrs _) -> return $ LineBreak attrs
23                   }
24
25
26 spanInterp :: Interpreter
27 spanInterp = InlineCommandInterpreter {
28                iciName      = "span"
29              , iciInterpret
30                  = \ _ (InlineCommand _ attrs contents) -> return $ Span attrs contents
31              }
32
33
34 divInterp :: Interpreter
35 divInterp = BlockCommandInterpreter {
36               bciName      = "div"
37             , bciInterpret
38                 = \ _ (BlockCommand _ attrs contents) -> return $ Div attrs contents
39             }
40
41
42 pageNameInterp :: Interpreter
43 pageNameInterp = InlineCommandInterpreter {
44                    iciName      = "pageName"
45                  , iciInterpret
46                      = \ ctx _ -> return $ Text (ctxPageName ctx)
47                  }