Skip to main content

Node

Enum Node 

Source
pub enum Node {
Show 17 variants Heading { level: u8, text: String, }, Paragraph { text: String, }, CheckboxItem { checked: bool, text: String, }, ListItem { ordered: bool, number: u64, first_in_list: bool, text: String, level: u8, marker: Option<String>, location: Option<[u16; 4]>, dclx: Option<ListItemDclx>, href: Option<String>, layer: Option<ContentLayer>, }, Code { language: Option<String>, text: String, }, Table(Table), Picture { caption: Option<String>, image: Option<PictureImage>, }, Chart { kind: String, table: Table, }, Group { label: String, children: Vec<Node>, }, FieldRegion { items: Vec<FieldItem>, }, InlineGroup { unwrapped: bool, runs: Vec<InlineRun>, md_text: String, }, Furniture { layer: ContentLayer, inner: Box<Node>, }, Located { location: [u16; 4], inner: Box<Node>, }, PageFurniture { footer: bool, location: [u16; 4], text: String, }, PageBreak, DoclangOnly(Box<Node>), TextDump(String),
}
Expand description

A single piece of document content.

Variants§

§

Heading

A heading. level is 1-6.

Fields

§level: u8
§text: String
§

Paragraph

A run of body text.

Fields

§text: String
§

CheckboxItem

A form checkbox (docling’s checkbox_selected/checkbox_unselected): its clean label text with the checked state. DocLang emits a <checkbox> element head; Markdown/JSON render the task-list form (- [x] /- [ ] ).

Fields

§checked: bool
§text: String
§

ListItem

A single list item at the given nesting level (0 = top). For ordered items, number is the display number (honoring the list’s start); it is unused for unordered items. first_in_list marks the first item of a list so the serializer can blank-line-separate adjacent sibling lists.

marker is the DocLang enumeration marker ("1.", "1.1.", …) when the backend provides one — HTML and DOCX set it for enumerated items, so DocLang emits <ldiv><marker>…</marker></ldiv>; Markdown and the other declarative backends leave it None, giving a bare <ldiv/> (matching docling, whose Markdown backend passes no marker).

Fields

§ordered: bool
§number: u64
§first_in_list: bool
§text: String
§level: u8
§marker: Option<String>
§location: Option<[u16; 4]>

Optional layout provenance (x0,y0,x1,y1, normalized to 0–511): the four DocLang <location> values emitted inside the <list> right after the item’s <ldiv>. Set only by backends with real geometry (e.g. PPTX shapes); None for the declarative backends. Kept on the item itself (rather than a Node::Located wrapper) so consecutive items still group into one <list>.

§dclx: Option<ListItemDclx>

DocLang-only override for items whose DocLang form diverges from their flat Markdown text. Markdown/JSON always render the fields above; the DocLang serializer, when this is Some, takes the list kind, marker, and content from here instead. Used for docx multilevel numbering (Markdown shows - 1.1. x, DocLang an ordered <marker>1.1.</marker> with clean text) and inline equations/formatting in list items.

§href: Option<String>

The item’s hyperlink target, when its content is a link — docling’s HTML backend emits it as an <href uri=…/> in the item head, and the anchor’s Markdown link markup is stripped from the rendered content. None for a plain item; ignored by Markdown/JSON.

§layer: Option<ContentLayer>

Non-body content layer (docling’s HTML site chrome before the first heading → furniture). DocLang emits a <layer value=…/> in the item head; Markdown/JSON drop a non-body item entirely.

§

Code

A fenced code block.

Fields

§language: Option<String>
§text: String
§

Table(Table)

A table. The first row is treated as the header.

§

Picture

A picture/figure, with an optional caption and (when a backend extracts it) the embedded image itself.

Fields

§caption: Option<String>
§

Chart

A chart (docling’s PictureItem classified as a chart, carrying a PictureTabularChartData annotation). Markdown and JSON render it exactly like a Node::Picture placeholder (an <!-- image --> / picture item); the DocLang serializer emits <picture class="chart"> with a <label value="{kind}"/> and the data table as a <tabular>.

Fields

§kind: String

docling’s classification label, e.g. bar_chart, line_chart.

§table: Table

The chart’s data grid (row 0 is the header band).

§

Group

A logical grouping of child nodes (e.g. a list, a section).

Fields

§label: String
§children: Vec<Node>
§

FieldRegion

A form key-value region (docling’s field_region): a set of form fields, each pairing an optional marker, key, and value. Backends detect these from form structure (e.g. HTML’s keyN / keyN_valueM / keyN_marker id-convention); the serializers render each item’s parts as separate labelled texts (marker / field_key / field_value).

Fields

§

InlineGroup

Rich inline content — docling’s InlineGroup: a run of styled text segments that a backend captured with formatting (<bold>, <italic>, <underline>, <strikethrough>, sub/superscript, inline <code>) the flat Markdown text cannot represent. Markdown/JSON render this exactly like Paragraph { text: md_text } (so their output is unchanged); the DocLang serializer uses the structured runs. unwrapped is set when the group’s docling parent is a heading/text (no enclosing <text> wrapper).

Fields

§unwrapped: bool
§md_text: String
§

Furniture

A node in a non-body content layer — furniture (page headers/footers, the HTML <title>, site navigation/chrome) or notes (docx comments). Markdown and JSON omit these layers by default; DocLang renders the wrapped node with a <layer value="{layer}"/> head.

Fields

§inner: Box<Node>
§

Located

A node carrying layout provenance — the four DocLang <location> values (x0,y0,x1,y1, normalized to 0–511) docling attaches to elements from backends with real geometry (e.g. the slide shapes in PPTX). Markdown and JSON render the wrapped node unchanged; DocLang emits the <location> tokens as the element’s first children.

Fields

§location: [u16; 4]
§inner: Box<Node>
§

PageFurniture

A PDF page header or footer (docling’s page_header/page_footer furniture): DocLang emits <page_header>/<page_footer> with a <layer value="furniture"/> head, the four <location> tokens, then the text. Markdown and JSON omit it like other furniture.

Fields

§footer: bool
§location: [u16; 4]
§text: String
§

PageBreak

A page boundary — docling’s implicit page break between pages. The PPTX backend emits one between consecutive slides. DocLang renders it as <page_break/>; Markdown and JSON omit it (matching docling’s default exports, which carry page breaks only in the document model).

§

DoclangOnly(Box<Node>)

A node docling keeps in the document model (and DocLang) but leaves out of the Markdown and JSON exports — e.g. an ODF presentation’s pictures and charts, which appear in the .dclx body but not in its .md/.json. DocLang renders the wrapped node in place; Markdown and JSON skip it.

§

TextDump(String)

A verbatim plain-text dump — docling’s plain-text backend emits the whole file as a single text item (used for legacy USPTO APS .txt grants, which docling routes to plain text rather than its APS parser). The stored string is the file body, one record per line. Markdown/JSON render it as one text block; the DocLang serializer reproduces minidom’s per-line layout, CDATA- escaping only the lines that need it (see emit_text_dump).

Trait Implementations§

Source§

impl Clone for Node

Source§

fn clone(&self) -> Node

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Node

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Node

Source§

fn eq(&self, other: &Node) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Node

Auto Trait Implementations§

§

impl Freeze for Node

§

impl RefUnwindSafe for Node

§

impl Send for Node

§

impl Sync for Node

§

impl Unpin for Node

§

impl UnsafeUnpin for Node

§

impl UnwindSafe for Node

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.