From a891e46d393927b63f81af8fafe6f357f8f13431 Mon Sep 17 00:00:00 2001 From: Adrian Cochrane Date: Tue, 27 Jun 2023 13:31:18 +1200 Subject: [PATCH] Use newer styling APIs. --- src/Render.hs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/Render.hs b/src/Render.hs index 5d2781b..307d11d 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -52,19 +52,13 @@ import Foreign.C.String import Data.ByteString (useAsCString) renderDoc :: Style.QueryableStyleSheet (Style.VarParser (CSSTxt.TextStyle SpeechStyle)) -> XML.Element -> B.ByteString -renderDoc style html = - renderElLBS $ styleToSSML $ CSSTxt.resolve $ inlinePseudos' $ stylize style $ el2stylist html - -inlinePseudos' :: Style.PropertyParser s => StyleTree [(Text, Style.VarParser s)] -> StyleTree s -inlinePseudos' (StyleTree self childs) = StyleTree { - style = fromMaybe Style.temp $ Style.innerParser <$> lookup "" self, - children = pseudo "before" ++ map inlinePseudos' childs ++ pseudo "after" - } where - pseudo n - | Just style <- Style.innerParser <$> lookup n self, - Just style' <- Style.longhand style style "::" [CSSTok.Ident n] = [StyleTree style' []] - | Just style <- Style.innerParser <$> lookup n self = [StyleTree style []] - | otherwise = [] +renderDoc style html = renderElLBS $ styleToSSML $ CSSTxt.resolve $ + treeMap Style.innerParser $ stylize' style $ el2stylist html + +stylize' style = preorder inner + where + inner parent _ el = Style.cascade style el [] $ + Style.inherit $ fromMaybe Style.temp parent renderElLBS el = XML.renderLBS XML.def $ XML.Document { XML.documentPrologue = XML.Prologue [] Nothing [], -- 2.30.2