- linkPage :: !(Maybe PageName)
- , linkFragment :: !(Maybe String)
- , linkText :: !(Maybe String)
+ linkPage ∷ !(Maybe PageName)
+ , linkFragment ∷ !(Maybe Text)
+ , linkText ∷ !(Maybe Text)
+ }
+ | ExternalLink {
+ extLinkURI ∷ !URI
+ , extLinkText ∷ !(Maybe Text)
+ }
+ | LineBreak ![Attribute]
+ | Span ![Attribute] ![InlineElement]
+ | Image {
+ imgSource ∷ !(Either URI PageName)
+ , imgAlt ∷ !(Maybe Text)
+ }
+ | Anchor ![Attribute] ![InlineElement]
+ | Input ![Attribute]
+ | EmptyInline
+ | InlineCmd !InlineCommand
+ deriving (Eq, Show)
+
+data ListType
+ = Bullet
+ | Numbered
+ deriving (Eq, Show)
+
+type ListItem = [Element]
+
+data Definition
+ = Definition {
+ defTerm ∷ ![InlineElement]
+ , defDesc ∷ ![InlineElement]
+ }
+ deriving (Eq, Show)
+
+data CommandType
+ = InlineCommandType
+ | BlockCommandType
+ deriving (Eq, Show)
+
+data BlockCommand
+ = BlockCommand {
+ bCmdName ∷ !Text
+ , bCmdAttributes ∷ ![Attribute]
+ , bCmdContents ∷ ![BlockElement]
+ }
+ deriving (Eq, Show)
+
+data InlineCommand
+ = InlineCommand {
+ iCmdName :: !Text
+ , iCmdAttributes :: ![Attribute]
+ , iCmdContents :: ![InlineElement]