Djot.Profiletype t = private Kernel.Profile.optionsThe syntax a parse accepts. Start from a named profile and switch constructs on or off. The kernel record is readable, for the checks in Kernel.ProfileChecks.
val of_kernel : Kernel.Profile.options -> t optionThe profile of a kernel record, such as one of Kernel.Spec.all. None if its delimiter table is not one the parser accepts.
val djot : tdjot as specified. The extensions are off.
val markdown_like : tdjot with Markdown spellings added: strong as **, dollar math, setext headings, sublists without a blank line, one-line ATX headings. Not CommonMark.
All on in djot.
A heading's text continues onto the following lines; off in markdown_like.
All off in djot.
[[target|alias]] and ![[target]] (Inline.t.Ext_wikilink).
$x$, $$x$$ and $`x`$, read as Inline.t.Math; on in markdown_like. Independent of with_math.
label: content (Block.t.Ext_keyed).
Callouts with a header on the first line of a block quote. Off by default.
Custom tag names: ::: name names a Block.t.Div and :name[...] a Inline.t.Span. Both spellings move together.
Holes: %`e`, a code span with a % before it, reads as Inline.t.Hole, an expression for the consumer to evaluate. A raw block in format hole stays a raw block; a consumer may treat it as a block hole. See Mapper.holes_as_raw.
A setext heading: a paragraph underlined with = (level 1) or two or more - (level 2). On in markdown_like.
A bullet, or an ordered marker numbered 1, starts a list on the line after paragraph text, with no blank line between. On in markdown_like.
module Switch : sig ... endOne of the switches above, as a value.
val switches : Switch.t listEvery switch, djot constructs first.
module Delimiter : sig ... endAn inline delimiter whose spelling a profile chooses.
val emph : Delimiter.tval strong : Delimiter.tval superscript : Delimiter.tval subscript : Delimiter.tval highlight : Delimiter.tval insert : Delimiter.tval delete : Delimiter.tval delimiters : Delimiter.t listThe seven above.
val with_delimiter :
Delimiter.t ->
char ->
width:int ->
Delimiter.syntax ->
t ->
(t, string) Stdlib.resultwith_delimiter d c ~width syntax p respells d as width copies of c. The error says why a spelling is refused: the character is not ASCII punctuation, is taken by other syntax, or is another delimiter's.
Whether two profiles have every switch and every delimiter spelling the same.
val pp_delimiters : Stdlib.Format.formatter -> t -> unitOne name: value line per inline delimiter, giving its characters and how it is written, e.g. strong: ** bare or highlight: = braced.
val pp : Stdlib.Format.formatter -> t -> unitThe lines of pp_delimiters, then one name: value line per switch above, named as the switch without with_.