Blogdown-0.2.3: src/AST.hs
module AST where
data AST = AST [Block] (Maybe FootnoteDefs)
deriving (Show)
data FootnoteDefs = FootnoteDefs [FootnoteDef]
deriving (Show)
data FootnoteDef = FootnoteDef {
index :: Int,
content :: [Block]
}
deriving (Show)
data ListItem = ListItem [Inline]
| SubList List
deriving (Show)
data List = List Bool [ListItem]
deriving (Show)
data TableCell = TableHeaderCell [Inline]
| TableBodyCell [Inline]
deriving (Show)
data TableRow = TableRow [TableCell]
deriving (Show)
data Block = HardRule
| Paragraph [Inline]
| Header Int [Inline]
| ListBlock List
| BlockQuote [Inline]
| BlockCode {
codeClass :: String,
codeContent :: String
}
| BlockHtml Html
| Table {
thead :: Maybe [TableRow],
body :: [TableRow]
}
deriving (Show)
data Inline = Italics [Inline]
| Bold [Inline]
| Code String
| FootnoteRef Int
| Plaintext String
| InlineHtml Html
| Link {
text :: [Inline],
href :: String
}
| Image {
alt :: String,
src :: String
}
deriving (Show)
data HtmlTagType = Open | Close | SelfClosing
deriving (Show, Eq)
data HtmlTag = HtmlTag {
tagname :: String,
attrs :: [Attr]
}
deriving (Show)
data Attr = Attr String String
deriving (Show)
data Html = PairTag HtmlTag [Either String Html]
| SingleTag HtmlTag
deriving (Show)