this repo has no description
1open Odoc_utils
2
3let toc_to_json
4 ({ url; valid_link; content = inline; _ } : Odoc_document.Sidebar.entry) :
5 Json.json =
6 let config =
7 Config.v ~semantic_uris:true ~indent:true ~flat:false ~open_details:false
8 ~as_json:true ~remap:[] ()
9 in
10 let url, kind =
11 match valid_link with
12 | false -> (`Null, `Null)
13 | true ->
14 let href = Link.href ~config ~resolve:(Link.Base "") url in
15 let kind =
16 Format.asprintf "%a" Odoc_document.Url.Anchor.pp_kind url.kind
17 in
18
19 (`String href, `String kind)
20 in
21 let inline =
22 let inline = Generator.inline ~config ~xref_base_uri:"" inline in
23 let inline =
24 String.concat ~sep:""
25 @@ List.map (Format.asprintf "%a" (Tyxml.Html.pp_elt ())) inline
26 in
27 `String inline
28 in
29 `Object [ ("url", url); ("kind", kind); ("content", inline) ]
30
31let to_json (sidebar : Odoc_document.Sidebar.t) =
32 `Array (List.map (Tree.to_json toc_to_json) sidebar)