)
where
+import Rakka.Page
import Rakka.Wiki
import Rakka.Wiki.Interpreter
import Rakka.Wiki.Interpreter.Base.Image
, divInterp
, imageInterp
, imgFrameInterp
+
+ , pageNameInterp
]
lineBreakInterp :: Interpreter
-lineBreakInterp = pureInlineInterp "br" interpret
- where
- interpret (InlineCommand _ attrs _) _ = LineBreak attrs
+lineBreakInterp = InlineCommandInterpreter {
+ iciName = "br"
+ , iciInterpret
+ = \ _ (InlineCommand _ attrs _) -> return $ LineBreak attrs
+ }
spanInterp :: Interpreter
-spanInterp = pureInlineInterp "span" interpret
- where
- interpret (InlineCommand _ attrs contents) _ = Span attrs contents
+spanInterp = InlineCommandInterpreter {
+ iciName = "span"
+ , iciInterpret
+ = \ _ (InlineCommand _ attrs contents) -> return $ Span attrs contents
+ }
divInterp :: Interpreter
-divInterp = pureBlockInterp "div" interpret
- where
- interpret (BlockCommand _ attrs contents) _ = Div attrs contents
\ No newline at end of file
+divInterp = BlockCommandInterpreter {
+ bciName = "div"
+ , bciInterpret
+ = \ _ (BlockCommand _ attrs contents) -> return $ Div attrs contents
+ }
+
+
+pageNameInterp :: Interpreter
+pageNameInterp = InlineCommandInterpreter {
+ iciName = "pageName"
+ , iciInterpret
+ = \ ctx (InlineCommand _ _ _) -> case ctxPage ctx of
+ Nothing -> return $ Text "(None)"
+ Just page -> return $ Text $ pageName page
+ }
\ No newline at end of file