package quill

  1. Overview
  2. Docs

Module Quill_markdownSource

Quill document model for representing markdown structures

Sourcetype inline_content =
  1. | Run of string
  2. | Emph of inline
  3. | Strong of inline
  4. | Code_span of string
  5. | Seq of inline list
  6. | Break of [ `Hard | `Soft ]
  7. | Image of {
    1. alt : inline;
    2. src : string;
    }
  8. | Raw_html of string

Inline content types

Sourceand inline = {
  1. id : int;
  2. inline_content : inline_content;
  3. focused : bool;
}
Sourcetype codeblock_content = {
  1. code : string;
  2. output : block option;
  3. info : string option;
}

Codeblock content with optional output

Sourceand block_content =
  1. | Paragraph of inline
  2. | Codeblock of codeblock_content
  3. | Heading of int * inline
  4. | Blank_line of unit
  5. | Block_quote of block list
  6. | Thematic_break
  7. | List of list_type * list_spacing * block list list
  8. | Html_block of string
  9. | Blocks of block list

Block content types

Sourceand list_type =
  1. | Ordered of int * char
  2. | Unordered of char
Sourceand list_spacing =
  1. | Tight
  2. | Loose
Sourceand block = {
  1. id : int;
  2. content : block_content;
  3. focused : bool;
}
Sourcetype document = block list

Document type

Constructors

Sourceval inline : ?focused:bool -> inline_content -> inline

Create inline content

Sourceval run : ?focused:bool -> string -> inline
Sourceval emph : ?focused:bool -> inline -> inline
Sourceval strong : ?focused:bool -> inline -> inline
Sourceval code_span : ?focused:bool -> string -> inline
Sourceval seq : ?focused:bool -> inline list -> inline
Sourceval block : ?focused:bool -> block_content -> block

Create block content

Sourceval paragraph : ?focused:bool -> inline -> block
Sourceval codeblock : ?output:block -> ?info:string -> ?focused:bool -> string -> block
Sourceval heading : ?focused:bool -> int -> inline -> block
Sourceval blank_line : ?focused:bool -> unit -> block
Sourceval blocks : ?focused:bool -> block list -> block
Sourceval block_quote : ?focused:bool -> block list -> block
Sourceval thematic_break : ?focused:bool -> unit -> block
Sourceval list : ?focused:bool -> list_type -> list_spacing -> block list list -> block
Sourceval html_block : ?focused:bool -> string -> block
Sourceval init : document

Empty document

Parsing and Serialization

Sourceval document_of_md : string -> document

Parse markdown to document

Sourceval block_of_md : string -> block

Parse markdown to block

Sourceval block_content_of_md : string -> block_content

Parse markdown to block content

Sourceval inline_of_md : string -> inline

Parse markdown to inline

Sourceval inline_content_of_md : string -> inline_content

Parse markdown to inline content

Sourceval md_of_document : document -> string

Serialize document to markdown

Document Operations

Sourceval find_inline_in_block : block -> int -> inline option

Find inline by ID in a block

Sourceval replace_inline_in_block : block -> int -> inline -> block

Replace inline by ID in a block

Sourceval split_inline : inline -> int -> inline * inline

Split inline at offset

Sourceval set_focused_document_by_id : document -> int -> document

Set focused state by ID

Sourceval clear_focus_block : block -> block

Clear all focus

Sourceval clear_focus_inline : inline -> inline
Sourceval set_codeblock_output_in_block : block -> int -> block -> block

Set codeblock output

Sourceval normalize_blanklines : document -> document

Normalize blank lines

Sourceval inline_to_plain : inline -> string

Convert inline to plain text

Sourceval inline_content_to_plain : inline_content -> string

Internal

Sourceval reset_ids : unit -> unit

Reset ID counters (used for DOM parsing)

OCaml

Innovation. Community. Security.