OCaml HTML5 parser/serialiser based on Python's JustHTML
1(** Registry for HTML5 conformance checkers. *) 2 3type t = (string, Checker.t) Hashtbl.t 4 5let create () = Hashtbl.create 16 6 7let default () = 8 let reg = create () in 9 Hashtbl.replace reg "nesting" Nesting_checker.checker; 10 Hashtbl.replace reg "obsolete" Obsolete_checker.checker; 11 Hashtbl.replace reg "id" Id_checker.checker; 12 Hashtbl.replace reg "required-attrs" Required_attr_checker.checker; 13 Hashtbl.replace reg "form" Form_checker.checker; 14 Hashtbl.replace reg "aria" Aria_checker.checker; 15 Hashtbl.replace reg "url" Url_checker.checker; 16 Hashtbl.replace reg "picture" Picture_checker.checker; 17 Hashtbl.replace reg "dl" Dl_checker.checker; 18 Hashtbl.replace reg "attr-restrictions" Attr_restrictions_checker.checker; 19 Hashtbl.replace reg "base" Base_checker.checker; 20 Hashtbl.replace reg "datetime" Datetime_checker.checker; 21 Hashtbl.replace reg "title" Title_checker.checker; 22 Hashtbl.replace reg "source" Source_checker.checker; 23 Hashtbl.replace reg "label" Label_checker.checker; 24 Hashtbl.replace reg "ruby" Ruby_checker.checker; 25 Hashtbl.replace reg "h1" H1_checker.checker; 26 Hashtbl.replace reg "srcset-sizes" Srcset_sizes_checker.checker; 27 Hashtbl.replace reg "autofocus" Autofocus_checker.checker; 28 Hashtbl.replace reg "option" Option_checker.checker; 29 Hashtbl.replace reg "language" Language_checker.checker; 30 Hashtbl.replace reg "microdata" Microdata_checker.checker; 31 Hashtbl.replace reg "importmap" Importmap_checker.checker; 32 Hashtbl.replace reg "table" Table_checker.checker; 33 Hashtbl.replace reg "mime-type" Mime_type_checker.checker; 34 Hashtbl.replace reg "normalization" Normalization_checker.checker; 35 Hashtbl.replace reg "svg" Svg_checker.checker; 36 Hashtbl.replace reg "xhtml-content" Xhtml_content_checker.checker; 37 Hashtbl.replace reg "lang-detecting" Lang_detecting_checker.checker; 38 Hashtbl.replace reg "unknown-element" Unknown_element_checker.checker; 39 reg 40 41let register registry name checker = Hashtbl.replace registry name checker 42 43let unregister registry name = Hashtbl.remove registry name 44 45let get registry name = Hashtbl.find_opt registry name 46 47let list_names registry = 48 Hashtbl.to_seq_keys registry |> List.of_seq 49 50let all registry = 51 Hashtbl.to_seq_values registry |> List.of_seq