module Text.Sundown.Html.Text
( renderHtml
, smartypants
-- * Markdown extensions
, Extensions (..)
, allExtensions
, noExtensions
-- * Html render modes
, HtmlRenderMode(..)
, noHtmlModes
, allHtmlModes
) where
import Data.Text (Text)
import Data.Text.Encoding
import Text.Sundown.Html.ByteString
(noHtmlModes, allHtmlModes, HtmlRenderMode(..))
import qualified Text.Sundown.Html.ByteString as SundownBS
import Text.Sundown.Foreign
-- | Parses a 'ByteString' containing the markdown, returns the Html code.
renderHtml :: Text
-> Extensions
-> HtmlRenderMode
-> Bool -- ^ If true, smartypant the output
-> Maybe Int
-- ^ The maximum nesting of the HTML. If Nothing, a default value
-- (16) will be used.
-> Text
renderHtml input exts mode sp maxNestingM =
decodeUtf8 $ SundownBS.renderHtml (encodeUtf8 input) exts mode sp
maxNestingM
-- | Converts punctuation in Html entities,
--
smartypants :: Text -> Text
smartypants = decodeUtf8 . SundownBS.smartypants . encodeUtf8