module Text.Sundown.Renderers.Html.Foreign
( HtmlRenderMode (..)
, c_sdhtml_renderer
, c_sdhtml_toc_renderer
, c_sdhtml_smartypants
) where
import Foreign
import Foreign.C.String
import Foreign.C.Types
import Text.Sundown.Buffer.Foreign
import Text.Sundown.Flag
import Text.Sundown.Markdown.Foreign
data HtmlRenderMode = HtmlRenderMode { htmlSkipHtml :: Bool
, htmlSkipStyle :: Bool
, htmlSkipImages :: Bool
, htmlSkipLinks :: Bool
, htmlExpandTabs :: Bool
, htmlSafelink :: Bool
, htmlToc :: Bool
, htmlHardWrap :: Bool
, htmlUseXhtml :: Bool
, htmlEscape :: Bool
}
instance Flag HtmlRenderMode where
flagIndexes mode = [ (1, htmlSkipHtml mode)
, (2, htmlSkipStyle mode)
, (4, htmlSkipImages mode)
, (8, htmlSkipLinks mode)
, (16, htmlExpandTabs mode)
, (32, htmlSafelink mode)
, (64, htmlToc mode)
, (128, htmlHardWrap mode)
, (256, htmlUseXhtml mode)
, (512, htmlEscape mode)
]
data HtmlRenderOptions
instance Storable HtmlRenderOptions where
sizeOf _ = ((16))
alignment _ = alignment (undefined :: Ptr ())
peek _ = error "HtmlRenderopt.peek is not implemented"
poke _ = error "HtmlRenderopt.poke is not implemented"
c_sdhtml_renderer :: Ptr Callbacks -> Ptr HtmlRenderOptions -> HtmlRenderMode -> IO ()
c_sdhtml_renderer rndr options mode = c_sdhtml_renderer' rndr options (toCUInt mode)
foreign import ccall "html.h sdhtml_renderer"
c_sdhtml_renderer' :: Ptr Callbacks -> Ptr HtmlRenderOptions -> CUInt -> IO ()
foreign import ccall "html.h sdhtml_toc_renderer"
c_sdhtml_toc_renderer :: Ptr Callbacks -> Ptr HtmlRenderOptions -> IO ()
foreign import ccall "html.h sdhtml_smartypants"
c_sdhtml_smartypants :: Ptr Buffer -> CString -> CSize -> IO ()