Odoc plugins for jon.recoil.org
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'cmstatefield'

+41 -2
+41 -2
src/odoc_jons_plugins.ml
··· 49 49 let page_creator ~config ~url ~uses_katex ~resources ~sidebar_data:_ ~header 50 50 ~preamble content = 51 51 let support_uri = Odoc_html.Config.support_uri config in 52 + let search_uris = Odoc_html.Config.search_uris config in 52 53 let file_uri = file_uri ~config ~url in 53 54 let shell_css_uri = file_uri support_uri "extensions/jon-shell.css" in 54 55 let shell_js_uri = file_uri support_uri "extensions/jon-shell.js" in ··· 163 164 ] 164 165 @ xocaml_meta_tags config 165 166 @ katex_elements @ extension_head_elements 167 + @ (match search_uris with 168 + | [] -> [] 169 + | _ -> 170 + let resolve_uri uri = 171 + match uri with 172 + | Odoc_html.Types.Absolute u -> u 173 + | Relative u -> 174 + Odoc_html.Link.href ~config ~resolve:(Current url) 175 + (Url.from_path u) 176 + in 177 + let search_urls = 178 + List.map (fun uri -> 179 + Printf.sprintf "'%s'" (resolve_uri uri)) 180 + search_uris 181 + in 182 + let odoc_search_uri = file_uri support_uri "odoc_search.js" in 183 + [ 184 + Html.script 185 + (Html.Unsafe.data 186 + (Printf.sprintf "var defined_base_url = %S;\nvar search_urls = [%s];" 187 + base_url 188 + (Stdlib.String.concat "," search_urls))); 189 + Html.script ~a:[ Html.a_src odoc_search_uri; Html.a_defer () ] (Html.txt ""); 190 + ]) 166 191 in 167 192 Html.head (Html.title (Html.txt title_string)) meta_elements 168 193 in ··· 183 208 else [] 184 209 in 185 210 211 + let search_elements = 212 + if search_uris <> [] then 213 + [ Html.div ~a:[ Html.a_class [ "search-bar-container" ] ] 214 + [ Html.input ~a:[ 215 + Html.a_input_type `Search; 216 + Html.a_class [ "search-bar" ]; 217 + Html.a_placeholder "\xf0\x9f\x94\x8e Search ('/' to focus)"; 218 + ] (); 219 + Html.div ~a:[ Html.a_class [ "search-snake" ] ] []; 220 + Html.div ~a:[ Html.a_class [ "search-result" ] ] []; 221 + ] ] 222 + else [] 223 + in 224 + 186 225 let body = 187 226 [ 188 227 Html.header 189 228 ~a:[ Html.a_class [ "jon-shell-header" ] ] 190 - [ 229 + ([ 191 230 Html.button 192 231 ~a: 193 232 [ ··· 203 242 Html.a ~a:[ Html.a_href "/projects/" ] [ Html.txt "projects" ]; 204 243 Html.a ~a:[ Html.a_href "/reference/" ] [ Html.txt "reference" ]; 205 244 ]; 206 - ]; 245 + ] @ search_elements); 207 246 Html.main 208 247 ~a:[ Html.a_class [ "jon-shell-main" ] ] 209 248 (sidebar_nav