module Data.Text.ParagraphLayout.Rich.ParagraphData (nestedBoxesParagraph) where import Data.Text (pack) import Data.Text.Glyphize (Font) import Data.Text.ParagraphLayout.Internal.BoxOptions import Data.Text.ParagraphLayout.Internal.ParagraphOptions import Data.Text.ParagraphLayout.Internal.Rich.Paragraph import Data.Text.ParagraphLayout.Internal.TextOptions import Data.Text.ParagraphLayout.Internal.TreeOfTexts t_ :: TextOptions t_ = defaultTextOptions b_ :: BoxOptions b_ = defaultBoxOptions rootBox :: TextOptions -> [InnerNode d] -> RootNode d rootBox opts nodes = RootBox (Box nodes opts) box :: d -> BoxOptions -> TextOptions -> [InnerNode d] -> InnerNode d box label boxOpts textOpts nodes = InlineBox label (Box nodes textOpts) boxOpts text :: d -> String -> InnerNode d text label contents = TextSequence label (pack contents) nestedBoxesParagraph :: Font -> ParagraphOptions -> Paragraph String nestedBoxesParagraph font = constructParagraph (pack "prefix") (rootBox t [ text "text1" "this paragraph has " , box "box2" b_ t [ box "box3" b_ t [ text "text2" "nested " ] , text "text3" "boxes" ] ] ) (pack "suffix") where t = t_ { textFont = font, textLanguage = "en" }