package forester
A tool for tending mathematical forests
Install
Dune Dependency
Authors
Maintainers
Sources
5.0.tar.gz
md5=24f4aed96a8b8af33aba13fba66f1b37
sha512=d36b896aca11858bb4a00fc704c16cc27a1f197bdb3e479d6132fd70f70d67d7158096285cb0b6fb00db14417f0f822cc27fe65d82f0971e42378fd8271ce573
doc/src/forester.frontend/Json_manifest_client.ml.html
Source file Json_manifest_client.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
(* * SPDX-FileCopyrightText: 2024 The Forester Project Contributors * * SPDX-License-Identifier: GPL-3.0-or-later *) open Forester_prelude open Forester_compiler open Forester_core open struct module T = Types module PT = Plain_text_client end let render_tree ~dev ~(forest : State.t) (doc : T.content T.article) : Yojson.Safe.t option = let@ uri = Option.bind doc.frontmatter.uri in (* TODO : Check routing *) let route = Legacy_xml_client.route forest uri in let title_string = PT.string_of_content ~forest @@ State.get_expanded_title doc.frontmatter forest in let title = `String title_string in let taxon = match doc.frontmatter.taxon with | None -> `Null | Some content -> `String (PT.string_of_content ~forest content) in let = `List begin let@ tag = List.filter_map @~ doc.frontmatter.tags in let@ content = Option.map @~ State.get_title_or_content_of_vertex tag forest in `String (PT.string_of_content ~forest content) end in let route = `String (URI.to_string route) in let metas = let meta_string meta = String.trim @@ PT.string_of_content ~forest meta in let meta_assoc (s, meta) = (s, `String (meta_string meta)) in `Assoc (List.map meta_assoc doc.frontmatter.metas) in let path = if dev then match doc.frontmatter.source_path with | Some p -> [("sourcePath", `String p)] | None -> [] else [] in (* TODO: filter out anonymous stuff *) Option.some @@ let fm = path @ [ ("title", title); ("uri", `String (URI.display_path_string ~base: forest.config.url uri)); ("taxon", taxon); ("tags", tags); ("route", route); ("metas", metas) ] in `Assoc fm
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>