blog.bouzuya.net

2018-04-20 purescript-halogen で HTML を String に

fwt (private) 。PureScript で Halogen を使った server-side rendering を雑に実装。……と言っても Halogen の HTML を String にして返しているだけ。 String にする箇所の雰囲気は↓。

bower install -S purescript-halogen purescript-halogen-vdom-string-renderer

import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Data.Unit (Unit)
import Halogen.HTML (HTML(..), PlainHTML)
import Halogen.HTML as HH
import Halogen.VDom.DOM.StringRenderer (render)

renderWidget :: forall w. w -> String
renderWidget _ = ""

render' :: HTML -> String
render' (HTML vdom) = render renderWidget vdom

view :: PlainHTML
view = HH.html [] [ {- ... -} ]

main :: Eff ( console :: CONSOLE | e ) Unit
main = log $ render' view

HTMLComponent にしたら、いろいろ難しそう。とりあえずは深く考えずに書いていく。

あとは Client のビルドもできるようにした。 pulp browserify しているだけ。

明日は Client で navigator.mediaDevices.getUserMedia を使ってごにょごにょしていく。 PureScript の中で JavaScript の Promise を扱うあたりなど FFI まわりが課題になるのかな。