module TextShow.Text.XHtml (
showbHtml
, showbHtmlList
, showbHtmlAttr
, showbHotLinkPrec
, showbHtmlTable
) where
import Data.Monoid.Compat
import Text.XHtml.Frameset (Html, HtmlAttr, HotLink,
htmlAttrPair, renderHtmlFragment)
import Text.XHtml.Table (HtmlTable)
import TextShow (TextShow(..), Builder, FromStringShow(..), fromString, singleton)
import TextShow.Data.Char (showbString)
import TextShow.TH (deriveTextShow)
#include "inline.h"
showbHtml :: Html -> Builder
showbHtml = fromString . renderHtmlFragment
showbHtmlList :: [Html] -> Builder
showbHtmlList = mconcat . map showb
showbHtmlAttr :: HtmlAttr -> Builder
showbHtmlAttr ha = case htmlAttrPair ha of
(str, val) -> fromString str <> singleton '=' <> showbString val
showbHotLinkPrec :: Int -> HotLink -> Builder
showbHotLinkPrec = showbPrec
showbHtmlTable :: HtmlTable -> Builder
showbHtmlTable = showb . FromStringShow
instance TextShow Html where
showb = showbHtml
INLINE_INST_FUN(showb)
showbList = showbHtmlList
INLINE_INST_FUN(showbList)
instance TextShow HtmlAttr where
showb = showbHtmlAttr
INLINE_INST_FUN(showb)
$(deriveTextShow ''HotLink)
instance TextShow HtmlTable where
showb = showbHtmlTable
INLINE_INST_FUN(showb)