package mdx
Executable code blocks inside markdown files
Install
Dune Dependency
Authors
Maintainers
Sources
mdx-1.11.1.tbz
sha256=603990812efa7184d88a4896d7f9369b43d32e3dbdd26fe9cecb5a5f5f32c1e0
sha512=461bb3f2e25f8a2f869577ec8f95f731e0765a534043088fdc88ee9fabaa52926eb957124529ff889f1d698df594b235219c677521eebe01a5959c7db75131ea
doc/src/mdx/document.ml.html
Source file document.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
(* * Copyright (c) 2018 Thomas Gazagnaire <thomas@gazagnaire.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) type syntax = Syntax.t = Normal | Cram | Mli type line = Section of (int * string) | Text of string | Block of Block.t type t = line list let pp_line ?syntax ppf (l : line) = match l with | Block b -> Fmt.pf ppf "%a\n" (Block.pp ?syntax) b | Section (d, s) -> Fmt.pf ppf "%s %s\n" (String.make d '#') s | Text s -> ( match syntax with | Some Mli -> Fmt.pf ppf "%s" s | _ -> Fmt.pf ppf "%s\n" s) let pp ?syntax ppf t = Fmt.pf ppf "%a\n" Fmt.(list ~sep:(any "\n") (pp_line ?syntax)) t let to_string = Fmt.to_to_string pp let envs t = List.fold_left (fun acc line -> match line with | Block b -> ( match b.value with | OCaml { env; _ } | Toplevel { env; _ } -> Ocaml_env.Set.add env acc | Raw _ | Cram _ | Include _ -> acc) | Section _ | Text _ -> acc) Ocaml_env.Set.empty t
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>