Frama_c_kernel.Markdown
Structured representation of Markdown content.
type href =
Local refs and URLs
type inline =
| Plain of string | (* Printed as it is *) |
| Emph of string | (* Printed as |
| Bold of string | (* Printed as |
| Inline_code of string | (* Printed as |
| Link of text * href | (* Hyperlink with text and URL *) |
| Image of string * string | (*
|
and text = inline list
Inline elements separated by spaces
and block = block_element list
and element =
| Comment of string | (* markdown comment, printed <!-- like this --> *) |
| Block of block | |
| Table of table | |
| Raw of string list | (* Each element of the list is printed as-is on its own line. A blank line separates the |
| H1 of text * string option | |
| H2 of text * string option | |
| H3 of text * string option | |
| H4 of text * string option | |
| H5 of text * string option | |
| H6 of text * string option |
and elements = element list
Remark: text
values are list of inline
values, hence you may combined with the (@)
operator or with the glue ?sep
utility function (see below).
val plain : string -> text
Plain markdown
val emph : string -> text
Emph text
val bold : string -> text
Bold text
val code : string -> text
Inline code
val image : alt:string -> file:string -> text
Image
val format : ( 'a, Stdlib.Format.formatter, unit, text ) Stdlib.format4 -> 'a
Plain markdown content of the formatted string
Remark: block
values are list of block_element
values, hence you may combined with the (@)
operator or with the glue ?sep
utility function (see below).
val codeblock :
?lang:string ->
( 'a, Stdlib.Format.formatter, unit, block ) Stdlib.format4 ->
'a
codeblock lang "...."
returns a Code_block
for code
, written in lang
with the given formatted content. The code block content placed inside an englobing hv-box, trimed and finally splitted into lines.
Remark: elements
values are list of element
values, hence you may combined with the (@)
operator or with the glue ?sep
utility function (see below).
val rawfile : string -> elements
Get the content of a file as raw markdown.
val pandoc :
?title:text ->
?authors:text list ->
?date:text ->
elements ->
pandoc_markdown
Creates a document from a list of elements and optional metadatas. Defaults are:
Adds a H1
header with the given title
on top of the given elements. If name is not explicitly provided, the header will have as associated anchor id title
subsections header body
returns a list of element
s where the body
's headers have been increased by one (i.e. H1
becomes H2
). H5
stays at H5
, though.
Glue fragments, typically used for combining text
, block
and elements
. Default separator is empty. The function is tail-recursive.
Transforms a string into an anchor name, roughly following pandoc's conventions. This function is automatically used by pretty-printers and smart constructors to normalize section names and local links.
val pp_inline : ?page:string -> Stdlib.Format.formatter -> inline -> unit
val pp_text : ?page:string -> Stdlib.Format.formatter -> text -> unit
val pp_block_element :
?page:string ->
Stdlib.Format.formatter ->
block_element ->
unit
val pp_block : ?page:string -> Stdlib.Format.formatter -> block -> unit
val pp_element : ?page:string -> Stdlib.Format.formatter -> element -> unit
val pp_elements : ?page:string -> Stdlib.Format.formatter -> elements -> unit
val pp_pandoc :
?page:string ->
Stdlib.Format.formatter ->
pandoc_markdown ->
unit