-- 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.3.3

module Commonmark.Extensions.Attributes

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

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

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

module Commonmark.Extensions.DefinitionList
definitionListSpec :: (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.Base.Semigroup bl, GHC.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 :: (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.Base.Monoid i) => Commonmark.Extensions.Emoji.HasEmoji (Commonmark.SourceMap.WithSourceMap i)

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

module Commonmark.Extensions.Footnote
footnoteSpec :: (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 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.Base.Semigroup bl, GHC.Base.Semigroup il) => Commonmark.Extensions.Footnote.HasFootnote (Commonmark.SourceMap.WithSourceMap il) (Commonmark.SourceMap.WithSourceMap bl)
instance GHC.Classes.Eq (Commonmark.Extensions.Footnote.FootnoteDef bl m)
instance GHC.Classes.Ord (Commonmark.Extensions.Footnote.FootnoteDef bl m)

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

module Commonmark.Extensions.ImplicitHeadingReferences
implicitHeadingReferencesSpec :: (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 :: (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.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 <tt>defaultSyntaxSpec &lt;&gt; pipeTableSpec</tt>
--   rather than <tt>pipeTableSpec &lt;&gt; defaultSyntaxSpec</tt>.
pipeTableSpec :: (Monad m, IsBlock il bl, IsInline il, HasPipeTable il bl) => SyntaxSpec m il bl
instance Data.Data.Data Commonmark.Extensions.PipeTable.PipeTableData
instance GHC.Classes.Eq Commonmark.Extensions.PipeTable.PipeTableData
instance GHC.Show.Show Commonmark.Extensions.PipeTable.PipeTableData
instance Data.Data.Data Commonmark.Extensions.PipeTable.ColAlignment
instance GHC.Classes.Eq Commonmark.Extensions.PipeTable.ColAlignment
instance GHC.Show.Show Commonmark.Extensions.PipeTable.ColAlignment
instance Commonmark.Extensions.PipeTable.HasPipeTable (Commonmark.Html.Html a) (Commonmark.Html.Html a)
instance (Commonmark.Extensions.PipeTable.HasPipeTable i b, GHC.Base.Monoid b) => Commonmark.Extensions.PipeTable.HasPipeTable (Commonmark.SourceMap.WithSourceMap i) (Commonmark.SourceMap.WithSourceMap b)

module Commonmark.Extensions.RebaseRelativePaths
rebaseRelativePathsSpec :: forall m 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 :: (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.Base.Monoid i, GHC.Base.Semigroup i) => Commonmark.Extensions.Smart.HasQuoted (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.Strikethrough
class HasStrikethrough a
strikethrough :: HasStrikethrough a => a -> a
strikethroughSpec :: (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.Base.Monoid i) => Commonmark.Extensions.Strikethrough.HasStrikethrough (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.Subscript
class HasSubscript a
subscript :: HasSubscript a => a -> a
subscriptSpec :: (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.Base.Monoid i) => Commonmark.Extensions.Subscript.HasSubscript (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.Superscript
class HasSuperscript a
superscript :: HasSuperscript a => a -> a
superscriptSpec :: (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.Base.Monoid i) => Commonmark.Extensions.Superscript.HasSuperscript (Commonmark.SourceMap.WithSourceMap i)

module Commonmark.Extensions.TaskList
taskListSpec :: (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.ListItemData
instance GHC.Show.Show Commonmark.Extensions.TaskList.ListItemData
instance GHC.Classes.Eq Commonmark.Extensions.TaskList.ListData
instance GHC.Show.Show Commonmark.Extensions.TaskList.ListData
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.Base.Semigroup bl, GHC.Base.Semigroup il) => Commonmark.Extensions.TaskList.HasTaskList (Commonmark.SourceMap.WithSourceMap il) (Commonmark.SourceMap.WithSourceMap bl)

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

-- | Determines whether <tt>[[foo|bar]]</tt> is a link to page <tt>bar</tt>
--   with title (description) <tt>foo</tt> (<a>TitleBeforePipe</a>), as in
--   GitHub wikis, or a link to page <tt>foo</tt> with title <tt>bar</tt>
--   (<a>TitleAfterPipe</a>), 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 GHC.Show.Show 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.Base.Semigroup il, GHC.Base.Monoid il) => Commonmark.Extensions.Wikilinks.HasWikilinks (Commonmark.SourceMap.WithSourceMap il)


-- | Syntax extensions for the commonmark library. Usage example:
--   
--   <pre>
--   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 &lt;&gt; smartPunctuationSpec &lt;&gt; defaultSyntaxSpec)
--     inp &lt;- TIO.getContents
--     res &lt;- commonmarkWith customSyntax "stdin" inp
--     case res of
--       Left e                  -&gt; error (show e)
--       Right (html :: Html ()) -&gt; TLIO.putStr $ renderHtml html
--   </pre>
module Commonmark.Extensions

-- | Standard extensions for GitHub-flavored Markdown.
gfmExtensions :: (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) => SyntaxSpec m il bl
