X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FWiki.hs;h=96231a46c72174bc33c7df3733e8c9457e230b09;hb=bd2b1344f5ed3d4de91297bfe08658e52d682b82;hp=b8be3a3fabf8bc5d3a56ef77cdd9207da6c81baf;hpb=c2cc1241c50c8ff3843002526011574e77f669aa;p=Rakka.git diff --git a/Rakka/Wiki.hs b/Rakka/Wiki.hs index b8be3a3..96231a4 100644 --- a/Rakka/Wiki.hs +++ b/Rakka/Wiki.hs @@ -8,9 +8,15 @@ module Rakka.Wiki , ListItem , Definition(..) + + , CommandType(..) + , Attribute + , BlockCommand(..) + , InlineCommand(..) ) where +import Data.Generics import Rakka.Page @@ -27,7 +33,9 @@ data BlockElement | DefinitionList ![Definition] | Preformatted ![InlineElement] | Paragraph ![InlineElement] - deriving (Eq, Show) + | Div ![Attribute] ![BlockElement] + | BlockCmd !BlockCommand + deriving (Eq, Show, Typeable, Data) data InlineElement @@ -39,7 +47,12 @@ data InlineElement , linkFragment :: !(Maybe String) , linkText :: !(Maybe String) } - deriving (Eq, Show) + | LineBreak ![Attribute] + | Span ![Attribute] ![InlineElement] + | Image ![Attribute] + | Anchor ![Attribute] ![InlineElement] + | InlineCmd !InlineCommand + deriving (Eq, Show, Typeable, Data) data ListElement @@ -47,13 +60,13 @@ data ListElement listType :: !ListType , listItems :: ![ListItem] } - deriving (Eq, Show) + deriving (Eq, Show, Typeable, Data) data ListType = Bullet | Numbered - deriving (Eq, Show) + deriving (Eq, Show, Typeable, Data) type ListItem = [Either ListElement InlineElement] @@ -64,4 +77,31 @@ data Definition defTerm :: ![InlineElement] , defDesc :: ![InlineElement] } - deriving (Eq, Show) \ No newline at end of file + deriving (Eq, Show, Typeable, Data) + + +data CommandType + = InlineCommandType + | BlockCommandType + deriving (Eq, Show) + + +type Attribute = (String, String) + + +data BlockCommand + = BlockCommand { + bCmdName :: !String + , bCmdAttributes :: ![Attribute] + , bCmdContents :: ![BlockElement] + } + deriving (Eq, Show, Typeable, Data) + + +data InlineCommand + = InlineCommand { + iCmdName :: !String + , iCmdAttributes :: ![Attribute] + , iCmdContents :: ![InlineElement] + } + deriving (Eq, Show, Typeable, Data)