X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FWiki.hs;h=3b1802f0e4cc42928fc4341e03f2eb36116eb1a1;hb=16b140fe235a43f9dfb9b57e69ebc302beeaea27;hp=3011b136a4568a41ff1e92492161cefd7855d0a1;hpb=ee964fa000ff558084db1477cc4edc3b85a39256;p=Rakka.git diff --git a/Rakka/Wiki.hs b/Rakka/Wiki.hs index 3011b13..3b1802f 100644 --- a/Rakka/Wiki.hs +++ b/Rakka/Wiki.hs @@ -1,21 +1,18 @@ module Rakka.Wiki ( WikiPage - , WikiElement(..) , BlockElement(..) , InlineElement(..) + + , ListElement(..) + , ListType(..) + , ListItem ) where import Rakka.Page -type WikiPage = [WikiElement] - - -data WikiElement - = Block !BlockElement - | Inline !InlineElement - deriving (Eq, Show) +type WikiPage = [BlockElement] data BlockElement @@ -23,7 +20,10 @@ data BlockElement headingLevel :: !Int , headingText :: !String } - | EmptyLine + | HorizontalLine + | List !ListElement + | LeadingSpaced ![InlineElement] + | Paragraph ![InlineElement] deriving (Eq, Show) @@ -35,3 +35,20 @@ data InlineElement , linkText :: !(Maybe String) } deriving (Eq, Show) + + +data ListElement + = ListElement { + listType :: !ListType + , listItems :: ![ListItem] + } + deriving (Eq, Show) + + +data ListType + = Bullet + | Numbered + deriving (Eq, Show) + + +type ListItem = [Either ListElement InlineElement]