package forester
Source file Render_util.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20open Core module E = Render_effect.Perform let rec expand_title_with_parents ?(ancestors = []) (fm : Sem.frontmatter) title = match fm.designated_parent with | Some parent_addr when not @@ List.mem parent_addr ancestors -> begin match E.get_doc parent_addr with | None -> title | Some parent -> let chevron = [Range.locate_opt None @@ Sem.Text " › "] in let parent_title = parent.fm.title |> Option.map @@ expand_title_with_parents parent.fm in let parent_link = [Range.locate_opt None @@ Sem.Link {dest = parent_addr; modifier = Some `Sentence_case; title = parent_title}] in parent_link @ chevron @ title end | _ -> title