commonmark-extensions-0.1.0.0: src/Commonmark/Extensions/Superscript.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module Commonmark.Extensions.Superscript
( HasSuperscript(..)
, superscriptSpec )
where
import Commonmark.Types
import Commonmark.Syntax
import Commonmark.Inlines
import Commonmark.SourceMap
import Commonmark.Html
superscriptSpec :: (Monad m, IsBlock il bl, IsInline il, HasSuperscript il)
=> SyntaxSpec m il bl
superscriptSpec = mempty
{ syntaxFormattingSpecs = [
FormattingSpec '^' True True (Just superscript) Nothing '^'
]
}
class HasSuperscript a where
superscript :: a -> a
instance HasSuperscript (Html a) where
superscript x = htmlInline "sup" (Just x)
instance (HasSuperscript i, Monoid i)
=> HasSuperscript (WithSourceMap i) where
superscript x = (superscript <$> x) <* addName "superscript"