package forester
A tool for tending mathematical forests
Install
dune-project
Dependency
Authors
Maintainers
Sources
5.0.tar.gz
md5=24f4aed96a8b8af33aba13fba66f1b37
sha512=d36b896aca11858bb4a00fc704c16cc27a1f197bdb3e479d6132fd70f70d67d7158096285cb0b6fb00db14417f0f822cc27fe65d82f0971e42378fd8271ce573
doc/src/forester.core/URI_scheme.ml.html
Source file URI_scheme.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
(* * SPDX-FileCopyrightText: 2024 The Forester Project Contributors * * SPDX-License-Identifier: GPL-3.0-or-later *) open Forester_prelude let named_uri ~base name = URI.resolve ~base @@ let path = if Filename.extension name = "" then [name; ""] else [name] in URI.make ~path () let last_segment str = str |> String.split_on_char '/' |> List.rev |> List.hd let name (uri : URI.t) : string = uri |> URI.path_components |> List.filter (fun x -> not (x = "")) |> List.rev |> List.hd let split_addr (uri : URI.t) : (string option * int) option = let name = name uri in (* primitively check for address of form YYYY-MM-DD *) let date_regex = Str.regexp {|^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$|} in if Str.string_match date_regex name 0 then None else match String.rindex_opt name '-' with | Some i -> let prefix = String.sub name 0 i and suffix = String.sub name (i + 1) (String.length name - i - 1) in let@ key = Option.map @~ BaseN.Base36.int_of_string suffix in Some prefix, key | _ -> let@ key = Option.map @~ BaseN.Base36.int_of_string name in None, key let lsp_uri_to_uri ~(base : URI.t) (uri : Lsp.Uri.t) : URI.t = let uri = uri |> Lsp.Uri.to_path |> Filename.chop_extension |> last_segment |> named_uri ~base in uri let path_to_uri ~(base : URI.t) str = str |> last_segment |> Filename.chop_extension |> named_uri ~base
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>