open Data open Xhtml let nav_descr = [| "Home", "h", "Home"; "My research activity", "r", "Research"; "Software I wrote", "s", "Software"; "Various photographs I took", "p", "Photography"; "More about this site and its author","a", "About"; "Contact me", "c", "Contact" |] let nav_descr_links = Array.map (fun (label, access, name) -> loc_of_name (String.uncapitalize name), label, access, name) nav_descr let navlink (url, title, accesskey, vtext) active = let a = a ~href:url ~title:title ~accesskey:accesskey and text = [text vtext] in if active then a ~nclass:"active" text else a text let navlinks = Array.map (fun nav -> let navaux = navlink nav in [navaux true], [navaux false]) nav_descr_links let navlinks' = Array.mapi (fun i (active, _) -> let inactive = Array.map snd navlinks in inactive.(i) <- active; let elems = Array.to_list inactive in ul ~id:"nav" elems) navlinks (* AD HOC *) let navcat = [| navlinks'.(1) ; navlinks'.(2) ; navlinks'.(3) |] let navhome = navlinks'.(0) let navabout = navlinks'.(4) let navcontact = navlinks'.(5)