]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Wiki.hs
Wrote many...
[Rakka.git] / Rakka / Wiki.hs
index 613869b2a9091b83f1b234aa2c20b85ca08caab3..719ed62cc646699ebb4069a2bc1c6b51506b3de0 100644 (file)
@@ -1,16 +1,18 @@
 module Rakka.Wiki
     ( WikiPage
+
+    , Element(..)
+    , Attribute
+
     , BlockElement(..)
     , InlineElement(..)
 
-    , ListElement(..)
+    , Definition(..)
+
     , ListType(..)
     , ListItem
 
-    , Definition(..)
-
     , CommandType(..)
-    , Attribute
     , BlockCommand(..)
     , InlineCommand(..)
     )
@@ -24,17 +26,29 @@ import           Rakka.Page
 type WikiPage = [BlockElement]
 
 
+data Element
+    = Block  !BlockElement
+    | Inline !InlineElement
+    deriving (Eq, Show, Typeable, Data)
+
+
+type Attribute = (String, String)
+
+
 data BlockElement
     = Heading {
         headingLevel :: !Int
       , headingText  :: !String
       }
     | HorizontalLine
-    | List !ListElement
+    | List {
+        listType  :: !ListType
+      , listItems :: ![ListItem]
+      }
     | DefinitionList ![Definition]
     | Preformatted ![InlineElement]
     | Paragraph ![InlineElement]
-    | Div ![Attribute] ![BlockElement]
+    | Div ![Attribute] ![Element]
     | EmptyBlock
     | BlockCmd !BlockCommand
     deriving (Eq, Show, Typeable, Data)
@@ -69,21 +83,13 @@ data InlineElement
     deriving (Eq, Show, Typeable, Data)
 
 
-data ListElement
-    = ListElement {
-        listType  :: !ListType
-      , listItems :: ![ListItem]
-      }
-    deriving (Eq, Show, Typeable, Data)
-
-
 data ListType
     = Bullet
     | Numbered
     deriving (Eq, Show, Typeable, Data)
 
 
-type ListItem = [Either ListElement InlineElement]
+type ListItem = [Element]
 
 
 data Definition
@@ -100,9 +106,6 @@ data CommandType
     deriving (Eq, Show)
 
 
-type Attribute = (String, String)
-
-
 data BlockCommand
     = BlockCommand {
         bCmdName       :: !String