module Text.Show.Text.Text.XHtml (
showbHtml
, showbHtmlList
, showbHtmlAttr
, showbHotLinkPrec
, showbHtmlTable
) where
import Data.Monoid.Compat
import Prelude hiding (Show)
import Text.Show.Text (Show(..), Builder, FromStringShow(..), fromString)
import Text.Show.Text.Data.Char (showbString)
import Text.Show.Text.TH (deriveShow)
import Text.Show.Text.Utils (s)
import Text.XHtml.Frameset (Html, HtmlAttr, HotLink,
htmlAttrPair, renderHtmlFragment)
import Text.XHtml.Table (HtmlTable)
#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 <> s '=' <> showbString val
showbHotLinkPrec :: Int -> HotLink -> Builder
showbHotLinkPrec = showbPrec
showbHtmlTable :: HtmlTable -> Builder
showbHtmlTable = showb . FromStringShow
instance Show Html where
showb = showbHtml
INLINE_INST_FUN(showb)
showbList = showbHtmlList
INLINE_INST_FUN(showbList)
instance Show HtmlAttr where
showb = showbHtmlAttr
INLINE_INST_FUN(showb)
$(deriveShow ''HotLink)
instance Show HtmlTable where
showb = showbHtmlTable
INLINE_INST_FUN(showb)