module Text.Show.Text.Text.XHtml (
showbHtml
, showbHtmlList
, showbHtmlAttr
, showbHotLinkPrec
, showbHtmlTable
) where
#if !(MIN_VERSION_base(4,8,0))
import Data.Monoid (mconcat)
#endif
import Prelude hiding (Show)
import Text.Show.Text (Show(..), Builder, FromStringShow(..), fromString)
import Text.Show.Text.Data.Char (showbString)
import Text.Show.Text.TH (deriveShowPragmas, defaultInlineShowbPrec)
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)
$(deriveShowPragmas defaultInlineShowbPrec ''HotLink)
instance Show HtmlTable where
showb = showbHtmlTable
INLINE_INST_FUN(showb)