{-# LANGUAGE CPP #-}
{- |
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
( module Commonmark.Extensions.Smart
, module Commonmark.Extensions.HardLineBreaks
, module Commonmark.Extensions.Strikethrough
, module Commonmark.Extensions.Superscript
, module Commonmark.Extensions.Subscript
, module Commonmark.Extensions.PipeTable
, module Commonmark.Extensions.Math
, module Commonmark.Extensions.Emoji
, module Commonmark.Extensions.Autolink
, module Commonmark.Extensions.Footnote
, module Commonmark.Extensions.DefinitionList
, module Commonmark.Extensions.Attributes
, module Commonmark.Extensions.AutoIdentifiers
, module Commonmark.Extensions.FancyList
, module Commonmark.Extensions.TaskList
, module Commonmark.Extensions.ImplicitHeadingReferences
, module Commonmark.Extensions.Wikilinks
, module Commonmark.Extensions.RebaseRelativePaths
, gfmExtensions
) where
import Commonmark.Extensions.Smart
import Commonmark.Extensions.HardLineBreaks
import Commonmark.Extensions.Strikethrough
import Commonmark.Extensions.Superscript
import Commonmark.Extensions.Subscript
import Commonmark.Extensions.PipeTable
import Commonmark.Extensions.Math
import Commonmark.Extensions.Emoji
import Commonmark.Extensions.Autolink
import Commonmark.Extensions.Footnote
import Commonmark.Extensions.DefinitionList
import Commonmark.Extensions.Attributes
import Commonmark.Extensions.AutoIdentifiers
import Commonmark.Extensions.FancyList
import Commonmark.Extensions.TaskList
import Commonmark.Extensions.ImplicitHeadingReferences
import Commonmark.Extensions.Wikilinks
import Commonmark.Extensions.RebaseRelativePaths
import Commonmark
import Data.Typeable
#if !MIN_VERSION_base(4,11,0)
import Data.Monoid ((<>))
#endif
-- | 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
gfmExtensions =
emojiSpec <> strikethroughSpec <> pipeTableSpec <> autolinkSpec <>
autoIdentifiersSpec <> taskListSpec <> footnoteSpec