package quickterface

  1. Overview
  2. Docs

Source file katex_setup.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
open! Core
open! Js_of_ocaml

type t = {
  link_await : Dom_html.linkElement Utils.Await_load_element.t;
  script_await : Dom_html.scriptElement Utils.Await_load_element.t;
}

let make ~document =
  let link_await =
    Utils.Await_load_element.make ~make_element:(fun () ->
        let link = Dom_html.createLink document in
        link##.rel := Js.string "stylesheet";
        link##.href :=
          Js.string
            "https://cdn.jsdelivr.net/npm/katex@0.16.27/dist/katex.min.css";
        link##setAttribute (Js.string "integrity")
          (Js.string
             "sha384-Pu5+C18nP5dwykLJOhd2U4Xen7rjScHN/qusop27hdd2drI+lL5KvX7YntvT8yew");
        link##setAttribute (Js.string "crossorigin") (Js.string "anonymous");
        link)
  in

  let script_await =
    Utils.Await_load_element.make ~make_element:(fun () ->
        let script = Dom_html.createScript document in
        script##.src :=
          Js.string
            "https://cdn.jsdelivr.net/npm/katex@0.16.27/dist/katex.min.js";
        script##setAttribute (Js.string "integrity")
          (Js.string
             "sha384-2B8pfmZZ6JlVoScJm/5hQfNS2TI/6hPqDZInzzPc8oHpN5SgeNOf4LzREO6p5YtZ");
        script##setAttribute (Js.string "crossorigin") (Js.string "anonymous");
        script)
  in

  { link_await; script_await }

let await_elements { link_await; script_await } =
  [
    (link_await :> Dom_html.element Utils.Await_load_element.t);
    (script_await :> Dom_html.element Utils.Await_load_element.t);
  ]