In [2]:
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE OverloadedStrings #-}

import Lucid qualified as L
import IHaskell.Display qualified as IH
import Data.Text.Lazy qualified as TL

htmlText = L.renderText (L.div_ [L.class_ "container"] (L.p_ "some paragraph"))

IH.display . IH.html . TL.unpack $ htmlText

displayLucid = IH.display . IH.html . TL.unpack . L.renderText

some paragraph

In [3]:
import Graphics.Plotly qualified as PT
import Graphics.Plotly.Lucid qualified as PT
import Control.Lens ((.~),(&))
import Lucid.Base qualified as L

points = zip [1,2,3,4] [9,6,1,7]

trace = PT.line (PT.aes & PT.x .~ fst & PT.y .~ snd) points

plot = PT.plotly "testPlot" [trace]

plotlyDoc p = L.doctypehtml_ $ do
    L.head_ $ do
        L.meta_ [L.charset_ "utf-8"]
        PT.plotlyCDN
    L.body_ $ L.toHtml p

-- displayLucid $
--     L.iframe_ [
--         L.makeAttribute "srcdoc" (TL.toStrict $ L.renderText plotlyDoc),
--         L.style_ "width:100%; height:600px; border:none;"
--     ] mempty

displayPlotly p = displayLucid (
    L.iframe_ [
        L.makeAttribute "srcdoc" (TL.toStrict $ L.renderText $ plotlyDoc p),
        L.style_ "width:100%; height:600px; border:none;"
    ] mempty
 )

displayPlotly plot
In [4]:
import WGL.IHaskell qualified as WGL

WGL.displayPlotly plot
In [ ]: