mirror of
https://github.com/c-cube/tiny_httpd.git
synced 2025-12-05 19:00:32 -05:00
52 lines
1 KiB
OCaml
52 lines
1 KiB
OCaml
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"
|