Mercurial > meta
view html.urs @ 29:7530b2b54353
Update for Ur/Web's new type class handling
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sun, 29 Jul 2012 12:27:36 -0400 |
parents | 8eaaca74a64c |
children |
line wrap: on
line source
(** Safe HTML parsing *) con attribute = fn t => {Nam : string, Parse : string -> option t} con tag = fn ts => {Nam : string, Attributes : $(map attribute ts), Folder : folder ts, Construct : ctx ::: {Unit} -> [[Body] ~ ctx] => $ts -> xml ([Body] ++ ctx) [] [] -> xml ([Body] ++ ctx) [] []} val tag : use ::: {Type} -> ignore ::: {Type} -> [use ~ ignore] => folder use -> string -> $(map attribute use) -> (ctx ::: {Unit} -> [[Body] ~ ctx] => Basis.tag (use ++ ignore) ([Body] ++ ctx) ([Body] ++ ctx) [] []) -> tag use val simpleTag : ignore ::: {Type} -> string -> bodyTag ignore -> tag [] val simpleTag' : use ::: {Type} -> ignore ::: {Type} -> [use ~ ignore] => folder use -> string -> bodyTag (use ++ ignore) -> $(map attribute use) -> tag use val url : string -> attribute url val format : tags ::: {{Type}} -> folder tags -> $(map tag tags) -> ctx ::: {Unit} -> [[Body] ~ ctx] => string -> Parse.parse (xml ([Body] ++ ctx) [] []) val b : tag [] val i : tag [] val a : tag [Href = url]