-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Pure Haskell commonmark parser.
--   
--   This library provides some useful extensions to core commonmark
--   syntax: smart quotes, definition lists, tables, footnotes, math, and
--   more.
@package commonmark-extensions
@version 0.2.6

module Commonmark.Extensions.Alerts
alertSpec :: forall (m :: Type -> Type) il bl. (Monad m, Typeable m, IsBlock il bl, IsInline il, Typeable il, Typeable bl, HasAlerts il bl) => SyntaxSpec m il bl
alertSvgText :: AlertType -> Text
alertClass :: AlertType -> Text
alertName :: AlertType -> Text
data AlertType
NoteAlert :: AlertType
TipAlert :: AlertType
ImportantAlert :: AlertType
WarningAlert :: AlertType
CautionAlert :: AlertType
class IsBlock il bl => HasAlerts il bl | il -> bl
alert :: HasAlerts il bl => AlertType -> bl -> bl
instance GHC.Classes.Eq Commonmark.Extensions.Alerts.AlertType
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.Alerts.HasAlerts (Commonmark.Html.Html a) (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Alerts.HasAlerts il bl, GHC.Internal.Base.Semigroup bl, GHC.Internal.Base.Semigroup il) => Commonmark.Extensions.Alerts.HasAlerts (Commonmark.SourceMap.WithSourceMap il) (Commonmark.SourceMap.WithSourceMap bl)
instance GHC.Classes.Ord Commonmark.Extensions.Alerts.AlertType
instance GHC.Internal.Show.Show Commonmark.Extensions.Alerts.AlertType

module Commonmark.Extensions.Attributes

-- | Allow attributes on everything.
attributesSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsInline il) => SyntaxSpec m il bl
class HasDiv bl
div_ :: HasDiv bl => bl -> bl
fencedDivSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsInline il, IsBlock il bl, HasDiv bl) => SyntaxSpec m il bl
class IsInline a => HasSpan a
spanWith :: HasSpan a => Attributes -> a -> a
bracketedSpanSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsInline il, HasSpan il) => SyntaxSpec m il bl
rawAttributeSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl) => SyntaxSpec m il bl
pAttributes :: forall u (m :: Type -> Type). Monad m => ParsecT [Tok] u m Attributes
instance Commonmark.Extensions.Attributes.HasDiv (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Attributes.HasDiv bl, GHC.Internal.Base.Semigroup bl) => Commonmark.Extensions.Attributes.HasDiv (Commonmark.SourceMap.WithSourceMap bl)
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.Attributes.HasSpan (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Attributes.HasSpan i, GHC.Internal.Base.Semigroup i, GHC.Internal.Base.Monoid i) => Commonmark.Extensions.Attributes.HasSpan (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.AutoIdentifiers
autoIdentifiersSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, ToPlainText il) => SyntaxSpec m il bl
autoIdentifiersAsciiSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, ToPlainText il) => SyntaxSpec m il bl

module Commonmark.Extensions.Autolink
autolinkSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il) => SyntaxSpec m il bl

module Commonmark.Extensions.DefinitionList
definitionListSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, Typeable il, Typeable bl, HasDefinitionList il bl) => SyntaxSpec m il bl
class IsBlock il bl => HasDefinitionList il bl | il -> bl
definitionList :: HasDefinitionList il bl => ListSpacing -> [(il, [bl])] -> bl
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.DefinitionList.HasDefinitionList (Commonmark.Html.Html a) (Commonmark.Html.Html a)
instance (Commonmark.Extensions.DefinitionList.HasDefinitionList il bl, GHC.Internal.Base.Semigroup bl, GHC.Internal.Base.Semigroup il) => Commonmark.Extensions.DefinitionList.HasDefinitionList (Commonmark.SourceMap.WithSourceMap il) (Commonmark.SourceMap.WithSourceMap bl)

module Commonmark.Extensions.Emoji
class HasEmoji a
emoji :: HasEmoji a => Text -> Text -> a
emojiSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasEmoji il) => SyntaxSpec m il bl
instance Commonmark.Extensions.Emoji.HasEmoji (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Emoji.HasEmoji i, GHC.Internal.Base.Monoid i) => Commonmark.Extensions.Emoji.HasEmoji (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.FancyList
fancyListSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il) => SyntaxSpec m il bl

module Commonmark.Extensions.Footnote
footnoteSpec :: forall (m :: Type -> Type) il bl. (Monad m, Typeable m, IsBlock il bl, IsInline il, Typeable il, Typeable bl, HasFootnote il bl) => SyntaxSpec m il bl
class IsBlock il bl => HasFootnote il bl | il -> bl
footnote :: HasFootnote il bl => Int -> Text -> bl -> bl
footnoteList :: HasFootnote il bl => [bl] -> bl
footnoteRef :: HasFootnote il bl => Text -> Text -> bl -> il
instance GHC.Classes.Eq (Commonmark.Extensions.Footnote.FootnoteDef bl m)
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.Footnote.HasFootnote (Commonmark.Html.Html a) (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Footnote.HasFootnote il bl, GHC.Internal.Base.Semigroup bl, GHC.Internal.Base.Semigroup il) => Commonmark.Extensions.Footnote.HasFootnote (Commonmark.SourceMap.WithSourceMap il) (Commonmark.SourceMap.WithSourceMap bl)
instance GHC.Classes.Ord (Commonmark.Extensions.Footnote.FootnoteDef bl m)

module Commonmark.Extensions.HardLineBreaks
hardLineBreaksSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il) => SyntaxSpec m il bl

module Commonmark.Extensions.ImplicitHeadingReferences
implicitHeadingReferencesSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il) => SyntaxSpec m il bl

module Commonmark.Extensions.Math
class HasMath a
inlineMath :: HasMath a => Text -> a
displayMath :: HasMath a => Text -> a
mathSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasMath il) => SyntaxSpec m il bl
instance Commonmark.Extensions.Math.HasMath (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Math.HasMath i, GHC.Internal.Base.Monoid i) => Commonmark.Extensions.Math.HasMath (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.PipeTable
class HasPipeTable il bl
pipeTable :: HasPipeTable il bl => [ColAlignment] -> [il] -> [[il]] -> bl
data ColAlignment
LeftAlignedCol :: ColAlignment
CenterAlignedCol :: ColAlignment
RightAlignedCol :: ColAlignment
DefaultAlignedCol :: ColAlignment

-- | Syntax for pipe tables. Note that this should generally be placed
--   AFTER the syntax spec for lists, headings, and other block-level
--   constructs, to avoid bad results when non-table lines contain pipe
--   characters: use defaultSyntaxSpec <> pipeTableSpec
--   rather than pipeTableSpec <> defaultSyntaxSpec.
pipeTableSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasPipeTable il bl) => SyntaxSpec m il bl
instance GHC.Internal.Data.Data.Data Commonmark.Extensions.PipeTable.ColAlignment
instance GHC.Internal.Data.Data.Data Commonmark.Extensions.PipeTable.PipeTableData
instance GHC.Classes.Eq Commonmark.Extensions.PipeTable.ColAlignment
instance GHC.Classes.Eq Commonmark.Extensions.PipeTable.PipeTableData
instance Commonmark.Extensions.PipeTable.HasPipeTable (Commonmark.Html.Html a) (Commonmark.Html.Html a)
instance (Commonmark.Extensions.PipeTable.HasPipeTable i b, GHC.Internal.Base.Monoid b) => Commonmark.Extensions.PipeTable.HasPipeTable (Commonmark.SourceMap.WithSourceMap i) (Commonmark.SourceMap.WithSourceMap b)
instance GHC.Internal.Show.Show Commonmark.Extensions.PipeTable.ColAlignment
instance GHC.Internal.Show.Show Commonmark.Extensions.PipeTable.PipeTableData

module Commonmark.Extensions.RebaseRelativePaths
rebaseRelativePathsSpec :: forall (m :: Type -> Type) bl il. (Monad m, IsInline il, IsBlock il bl) => SyntaxSpec m il bl

module Commonmark.Extensions.Smart
class IsInline il => HasQuoted il
singleQuoted :: HasQuoted il => il -> il
doubleQuoted :: HasQuoted il => il -> il
smartPunctuationSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasQuoted il) => SyntaxSpec m il bl
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.Smart.HasQuoted (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Smart.HasQuoted i, GHC.Internal.Base.Monoid i, GHC.Internal.Base.Semigroup i) => Commonmark.Extensions.Smart.HasQuoted (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.Strikethrough
class HasStrikethrough a
strikethrough :: HasStrikethrough a => a -> a
strikethroughSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasStrikethrough il) => SyntaxSpec m il bl
instance Commonmark.Extensions.Strikethrough.HasStrikethrough (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Strikethrough.HasStrikethrough i, GHC.Internal.Base.Monoid i) => Commonmark.Extensions.Strikethrough.HasStrikethrough (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.Subscript
class HasSubscript a
subscript :: HasSubscript a => a -> a
subscriptSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasSubscript il) => SyntaxSpec m il bl
instance Commonmark.Extensions.Subscript.HasSubscript (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Subscript.HasSubscript i, GHC.Internal.Base.Monoid i) => Commonmark.Extensions.Subscript.HasSubscript (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.Superscript
class HasSuperscript a
superscript :: HasSuperscript a => a -> a
superscriptSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasSuperscript il) => SyntaxSpec m il bl
instance Commonmark.Extensions.Superscript.HasSuperscript (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Superscript.HasSuperscript i, GHC.Internal.Base.Monoid i) => Commonmark.Extensions.Superscript.HasSuperscript (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.TaskList
taskListSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsBlock il bl, IsInline il, HasTaskList il bl) => SyntaxSpec m il bl
class IsBlock il bl => HasTaskList il bl
taskList :: HasTaskList il bl => ListType -> ListSpacing -> [(Bool, bl)] -> bl
instance GHC.Classes.Eq Commonmark.Extensions.TaskList.ListData
instance GHC.Classes.Eq Commonmark.Extensions.TaskList.ListItemData
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.TaskList.HasTaskList (Commonmark.Html.Html a) (Commonmark.Html.Html a)
instance (Commonmark.Extensions.TaskList.HasTaskList il bl, GHC.Internal.Base.Semigroup bl, GHC.Internal.Base.Semigroup il) => Commonmark.Extensions.TaskList.HasTaskList (Commonmark.SourceMap.WithSourceMap il) (Commonmark.SourceMap.WithSourceMap bl)
instance GHC.Internal.Show.Show Commonmark.Extensions.TaskList.ListData
instance GHC.Internal.Show.Show Commonmark.Extensions.TaskList.ListItemData

module Commonmark.Extensions.Wikilinks
wikilinksSpec :: forall (m :: Type -> Type) il bl. (Monad m, IsInline il, HasWikilinks il) => TitlePosition -> SyntaxSpec m il bl

-- | Determines whether [[foo|bar]] is a link to page bar
--   with title (description) foo (TitleBeforePipe), as in
--   GitHub wikis, or a link to page foo with title bar
--   (TitleAfterPipe), as in Obsidian and Foam.
data TitlePosition
TitleBeforePipe :: TitlePosition
TitleAfterPipe :: TitlePosition
class HasWikilinks il
wikilink :: HasWikilinks il => Text -> il -> il
instance GHC.Classes.Eq Commonmark.Extensions.Wikilinks.TitlePosition
instance Commonmark.Types.Rangeable (Commonmark.Html.Html a) => Commonmark.Extensions.Wikilinks.HasWikilinks (Commonmark.Html.Html a)
instance (Commonmark.Extensions.Wikilinks.HasWikilinks il, GHC.Internal.Base.Semigroup il, GHC.Internal.Base.Monoid il) => Commonmark.Extensions.Wikilinks.HasWikilinks (Commonmark.SourceMap.WithSourceMap il)
instance GHC.Internal.Show.Show Commonmark.Extensions.Wikilinks.TitlePosition

-- | Syntax extensions for the commonmark library. Usage example:
--   
--   
--   {-# LANGUAGE ScopedTypeVariables #-}
--   import Commonmark
--   import Commonmark.Extensions
--   import Data.Text.IO as TIO
--   import Data.Text.Lazy.IO as TLIO
--   
--   main :: IO ()
--   main = do
--     let customSyntax =
--            (mathSpec <> smartPunctuationSpec <> defaultSyntaxSpec)
--     inp <- TIO.getContents
--     res <- commonmarkWith customSyntax "stdin" inp
--     case res of
--       Left e                  -> error (show e)
--       Right (html :: Html ()) -> TLIO.putStr $ renderHtml html
--   
module Commonmark.Extensions

-- | Standard extensions for GitHub-flavored Markdown.
gfmExtensions :: forall (m :: Type -> Type) il bl. (Monad m, Typeable m, Typeable il, Typeable bl, IsBlock il bl, IsInline il, HasFootnote il bl, HasEmoji il, HasStrikethrough il, HasPipeTable il bl, HasTaskList il bl, ToPlainText il, HasAlerts il bl) => SyntaxSpec m il bl
