diff options
Diffstat (limited to 'src/MdBlocks/Types.hs')
| -rw-r--r-- | src/MdBlocks/Types.hs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/MdBlocks/Types.hs b/src/MdBlocks/Types.hs new file mode 100644 index 0000000..1d8450e --- /dev/null +++ b/src/MdBlocks/Types.hs @@ -0,0 +1,37 @@ +{-# LANGUAGE DeriveGeneric #-} + +module MdBlocks.Types where + +import Data.Aeson +import Data.Map.Strict (Map) +import Data.Text (Text) +import GHC.Generics + +data BlockKind + = Fenced + | Indented + deriving (Show, Eq, Generic) + +instance ToJSON BlockKind + +data Metadata = Metadata + { mdLanguage :: Maybe Text + , mdId :: Maybe Text + , mdAttrs :: Map Text Text + } + deriving (Show, Eq, Generic) + +instance ToJSON Metadata + +data Block = Block + { blockFile :: FilePath + , blockNumber :: Int + , blockKind :: BlockKind + , blockMeta :: Metadata + , blockStart :: Int + , blockEnd :: Int + , blockContent :: Text + } + deriving (Show, Eq, Generic) + +instance ToJSON Block |
