open Tiny_httpd_html
let spf = Printf.sprintf
let list_init n f =
let rec loop i =
if i = n then
[]
else
f i :: loop (i + 1)
in
loop 0
let t1 () =
html []
[
head [] [];
body []
[
ul
[ A.style "list-style: circle" ]
(li [] [ pre [] [ txt "a"; pre [] [ txt "c"; txt "d" ]; txt "b" ] ]
:: list_init 100 (fun i ->
li [ A.id (spf "l%d" i) ] [ txt (spf "item %d" i) ]));
];
]
let t2 () =
html []
[
head [] [];
pre [] [ txt "a"; txt "b" ];
body []
[
ul'
[ A.style "list-style: circle" ]
[
(sub_l @@ list_init 100
@@ fun i ->
li ~if_:(i <> 42) [ A.id (spf "l%d" i) ] [ txt (spf "item %d" i) ]
);
];
];
]
let render t = print_endline @@ to_string_top @@ t
let () =
match Sys.argv.(1) with
| "1" -> render @@ t1 ()
| "2" -> render @@ t2 ()
| _ -> failwith "unknown cmd"