{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DoAndIfThenElse #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE LiberalTypeSynonyms #-}
{-# OPTIONS_GHC -Wall -fno-warn-orphans
-fno-warn-missing-signatures
-fno-warn-missing-methods
-fno-warn-duplicate-exports #-}
module Uniform.Markdown
(markdownFileType
, MarkdownText, unMT, makeMT
, readMarkdown2
, extMD
)
where
import qualified Text.Pandoc as Pandoc
import UniformBase
import Uniform.PandocImports ( Pandoc, callPandoc )
extMD :: Extension
extMD :: Extension
extMD = FilePath -> Extension
Extension FilePath
"md"
newtype MarkdownText = MarkdownText Text
deriving (Int -> MarkdownText -> ShowS
[MarkdownText] -> ShowS
MarkdownText -> FilePath
forall a.
(Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a
showList :: [MarkdownText] -> ShowS
$cshowList :: [MarkdownText] -> ShowS
show :: MarkdownText -> FilePath
$cshow :: MarkdownText -> FilePath
showsPrec :: Int -> MarkdownText -> ShowS
$cshowsPrec :: Int -> MarkdownText -> ShowS
Show, ReadPrec [MarkdownText]
ReadPrec MarkdownText
Int -> ReadS MarkdownText
ReadS [MarkdownText]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MarkdownText]
$creadListPrec :: ReadPrec [MarkdownText]
readPrec :: ReadPrec MarkdownText
$creadPrec :: ReadPrec MarkdownText
readList :: ReadS [MarkdownText]
$creadList :: ReadS [MarkdownText]
readsPrec :: Int -> ReadS MarkdownText
$creadsPrec :: Int -> ReadS MarkdownText
Read, MarkdownText -> MarkdownText -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MarkdownText -> MarkdownText -> Bool
$c/= :: MarkdownText -> MarkdownText -> Bool
== :: MarkdownText -> MarkdownText -> Bool
$c== :: MarkdownText -> MarkdownText -> Bool
Eq, Eq MarkdownText
MarkdownText -> MarkdownText -> Bool
MarkdownText -> MarkdownText -> Ordering
MarkdownText -> MarkdownText -> MarkdownText
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: MarkdownText -> MarkdownText -> MarkdownText
$cmin :: MarkdownText -> MarkdownText -> MarkdownText
max :: MarkdownText -> MarkdownText -> MarkdownText
$cmax :: MarkdownText -> MarkdownText -> MarkdownText
>= :: MarkdownText -> MarkdownText -> Bool
$c>= :: MarkdownText -> MarkdownText -> Bool
> :: MarkdownText -> MarkdownText -> Bool
$c> :: MarkdownText -> MarkdownText -> Bool
<= :: MarkdownText -> MarkdownText -> Bool
$c<= :: MarkdownText -> MarkdownText -> Bool
< :: MarkdownText -> MarkdownText -> Bool
$c< :: MarkdownText -> MarkdownText -> Bool
compare :: MarkdownText -> MarkdownText -> Ordering
$ccompare :: MarkdownText -> MarkdownText -> Ordering
Ord)
unMT :: MarkdownText -> Text
unMT :: MarkdownText -> Text
unMT (MarkdownText Text
a) = Text
a
makeMT :: Text -> MarkdownText
makeMT :: Text -> MarkdownText
makeMT = Text -> MarkdownText
MarkdownText
instance Zeros MarkdownText where
zero :: MarkdownText
zero = Text -> MarkdownText
MarkdownText forall z. Zeros z => z
zero
markdownFileType :: TypedFile5 Text MarkdownText
markdownFileType :: TypedFile5 Text MarkdownText
markdownFileType =
TypedFile5 {tpext5 :: Extension
tpext5 = Extension
extMD} :: TypedFile5 Text MarkdownText
instance TypedFiles7 Text MarkdownText where
wrap7 :: Text -> MarkdownText
wrap7 Text
a = Text -> MarkdownText
MarkdownText Text
a
unwrap7 :: MarkdownText -> Text
unwrap7 (MarkdownText Text
a) = Text
a
readMarkdown2 :: MarkdownText -> ErrIO Pandoc
readMarkdown2 :: MarkdownText -> ErrIO Pandoc
readMarkdown2 MarkdownText
text1 =
forall a. PandocIO a -> ErrIO a
callPandoc forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a.
(PandocMonad m, ToSources a) =>
ReaderOptions -> a -> m Pandoc
Pandoc.readMarkdown ReaderOptions
markdownOptions (forall a b. TypedFiles7 a b => b -> a
unwrap7 MarkdownText
text1 :: Text)
markdownOptions :: Pandoc.ReaderOptions
markdownOptions :: ReaderOptions
markdownOptions = forall a. Default a => a
Pandoc.def { readerExtensions :: Extensions
Pandoc.readerExtensions = Extensions
exts }
where
exts :: Extensions
exts = forall a. Monoid a => [a] -> a
mconcat
[ [Extension] -> Extensions
Pandoc.extensionsFromList
[ Extension
Pandoc.Ext_yaml_metadata_block
, Extension
Pandoc.Ext_backtick_code_blocks
, Extension
Pandoc.Ext_fenced_code_attributes
, Extension
Pandoc.Ext_auto_identifiers
, Extension
Pandoc.Ext_raw_tex
, Extension
Pandoc.Ext_shortcut_reference_links
, Extension
Pandoc.Ext_spaced_reference_links
, Extension
Pandoc.Ext_footnotes
, Extension
Pandoc.Ext_inline_notes
, Extension
Pandoc.Ext_citations
, Extension
Pandoc.Ext_implicit_figures
, Extension
Pandoc.Ext_header_attributes
, Extension
Pandoc.Ext_lists_without_preceding_blankline
, Extension
Pandoc.Ext_superscript
, Extension
Pandoc.Ext_subscript
, Extension
Pandoc.Ext_strikeout
]
, Extensions
Pandoc.githubMarkdownExtensions
]