]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Wiki.hs
implemented listing
[Rakka.git] / Rakka / Wiki.hs
index c5c2c68ec1b12b19e62bb73b85b81a5f96bc3ca2..3b1802f0e4cc42928fc4341e03f2eb36116eb1a1 100644 (file)
@@ -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]