MdxMdx is a library to manipulate markdown code blocks.
mdx allows to execute code blocks inside markdown files. The supported code blocks are either cram-like tests, raw OCaml fragments or toplevel phrases.
Cram tests and toplevel phrases are sequences of commands and outputs.
module Output : sig ... endTest outputs.
module Cram : sig ... endCram tests
module Toplevel : sig ... endToplevel phrases.
module Block : sig ... endCode blocks.
module Migrate_ast : sig ... endmodule Compat : sig ... endThe type for the lines of a markdown or cram file.
type t = line listThe type for mdx documents.
pp is the pretty printer for mdx documents. Should be idempotent with of_string.
val to_string : t -> stringto_string t converts the document t to a string.
of_string syntax s is the document t such that to_string ~syntax t = s.
val parse_lexbuf : syntax -> Lexing.lexbuf -> tparse_lexbuf l is of_string of l's contents.
run_to_stdout ?syntax ~f file runs the callback f on the raw and structured content of file, as specified by syntax (defaults to Normal). The returned corrected version is then written to stdout.
Same as run_to_stdout but writes the corrected version to outfile
run_to_file ?syntax ?force_output ~f ~outfile file runs the callback f similarly to run_to_stdout to generate its corrected version. If force_output is true (defaults to false) or if the corrected version differs from the original file content, it writes it to <file>.corrected. Otherwise, if <file>.corrected already exists, it removes it.
val section_of_line : line -> (int * string) optionsection_of_line l is l's section.