package forester
A tool for tending mathematical forests
Install
Dune Dependency
Authors
Maintainers
Sources
4.0.1.tar.gz
md5=1781b3d67f7ff4edaeb5cfdedba46b9e
sha512=879a583fd3ddf1cf44039fbe9a1d7280e9cc9cc0340506561dc8c6bb6b792db7c512a682d4d09d6c6b0b3b14940665573c9d94580c9ce0a87ee05822fbe4c229
doc/src/forester.render/Render_effect.ml.html
Source file Render_effect.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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
open Core module type Handler = sig val route : addr -> string val is_root : addr -> bool val backlinks : addr -> Sem.tree list val bibliography : addr -> Sem.tree list val parents : addr -> Sem.tree list val children : addr -> Sem.tree list val contributors : addr -> string list val contributions : addr -> Sem.tree list val enqueue_latex : name:string -> preamble:string -> source:string -> unit val get_doc : addr -> Sem.tree option val run_query : Sem.t Query.t -> Sem.tree list val last_changed : addr -> Prelude.Date.t option end type _ Effect.t += | Route : addr -> string Effect.t | Is_root : addr -> bool Effect.t | Backlinks : addr -> Sem.tree list Effect.t | Related : addr -> Sem.tree list Effect.t | Bibliography : addr -> Sem.tree list Effect.t | Parents : addr -> Sem.tree list Effect.t | Children : addr -> Sem.tree list Effect.t | Contributions : addr -> Sem.tree list Effect.t | Contributors : addr -> string list Effect.t | Enqueue_latex : {name : string; preamble : string; source : string} -> unit Effect.t | Get_doc : addr -> Sem.tree option Effect.t | Run_query : Sem.t Query.t -> Sem.tree list Effect.t | Last_changed : addr -> Prelude.Date.t option Effect.t module Perform : Handler = struct let route addr = Effect.perform @@ Route addr let is_root addr = Effect.perform @@ Is_root addr let backlinks addr = Effect.perform @@ Backlinks addr let addr = Effect.perform @@ Related addr let bibliography addr = Effect.perform @@ Bibliography addr let contributions addr = Effect.perform @@ Contributions addr let parents addr = Effect.perform @@ Parents addr let children addr = Effect.perform @@ Children addr let contributors addr = Effect.perform @@ Contributors addr let enqueue_latex ~name ~preamble ~source = Effect.perform @@ Enqueue_latex {name; preamble; source} let get_doc addr = Effect.perform @@ Get_doc addr let run_query query = Effect.perform @@ Run_query query let last_changed addr = Effect.perform @@ Last_changed addr end module Run (H : Handler) = struct let run f = Effect.Deep.try_with f () @@ {effc = fun (type a) (eff : a Effect.t) -> let resume x = Option.some @@ fun (k : (a, _) Effect.Deep.continuation) -> Algaeff.Fun.Deep.finally k @@ fun () -> x () in match eff with | Route addr -> resume @@ fun () -> H.route addr | Is_root addr -> resume @@ fun () -> H.is_root addr | Backlinks addr -> resume @@ fun () -> H.backlinks addr | Related addr -> resume @@ fun () -> H.related addr | Bibliography addr -> resume @@ fun () -> H.bibliography addr | Parents addr -> resume @@ fun () -> H.parents addr | Children addr -> resume @@ fun () -> H.children addr | Contributors addr -> resume @@ fun () -> H.contributors addr | Contributions addr -> resume @@ fun () -> H.contributions addr | Enqueue_latex {name; preamble; source} -> resume @@ fun () -> H.enqueue_latex ~name ~preamble ~source | Get_doc addr -> resume @@ fun () -> H.get_doc addr | Run_query query -> resume @@ fun () -> H.run_query query | Last_changed addr -> resume @@ fun () -> H.last_changed addr | _ -> None} end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>