pub struct CodeNode {Show 31 fields
pub id: String,
pub name: Option<String>,
pub role: Option<String>,
pub x: Option<PropertyValue>,
pub y: Option<PropertyValue>,
pub w: Option<PropertyValue>,
pub h: Option<PropertyValue>,
pub overflow: Option<String>,
pub language: Option<String>,
pub line_numbers: Option<bool>,
pub tab_width: Option<u32>,
pub style: Option<String>,
pub fill: Option<PropertyValue>,
pub font_family: Option<PropertyValue>,
pub font_size: Option<PropertyValue>,
pub font_weight: Option<PropertyValue>,
pub syntax_theme: Option<SyntaxTheme>,
pub opacity: Option<f64>,
pub visible: Option<bool>,
pub locked: Option<bool>,
pub selectable: Option<bool>,
pub rotate: Option<Dimension>,
pub content: String,
pub anchor: Option<String>,
pub anchor_zone: Option<String>,
pub anchor_sibling: Option<String>,
pub anchor_edge: Option<String>,
pub anchor_gap: Option<Dimension>,
pub anchor_parent: Option<bool>,
pub source_span: Option<Span>,
pub unknown_props: BTreeMap<String, UnknownProperty>,
}Expand description
A code node — a multi-line MONOSPACE text block.
Structurally this mirrors TextNode but carries a single verbatim source
blob instead of styled spans. The blob is stored DECODED (newlines and
tabs are literal characters); the formatter re-encodes it with escapes.
The verbatim source is carried in the KDL as a content child node with one
escaped string argument (NOT a bare r#"..."# raw string): KDL v2 multi-line
string dedent semantics make the raw form lossy, whereas a single-line
escaped string round-trips \n \t \" \\ exactly through the kdl crate.
See transform_code / write_code for the parse/format sides.
Fields§
§id: String§name: Option<String>§role: Option<String>§x: Option<PropertyValue>§y: Option<PropertyValue>§w: Option<PropertyValue>§h: Option<PropertyValue>§overflow: Option<String>“clip” (default) or “visible”; v0 does not word-wrap.
language: Option<String>Open string naming the source language; drives built-in syntax highlighting when the language is supported, otherwise renders as plain text.
line_numbers: Option<bool>Render a line-number gutter (default false).
tab_width: Option<u32>Rendered column width of a tab (default 4).
style: Option<String>§fill: Option<PropertyValue>§font_family: Option<PropertyValue>§font_size: Option<PropertyValue>§font_weight: Option<PropertyValue>Numeric font weight (100–900), usually a fontWeight token ref.
syntax_theme: Option<SyntaxTheme>Optional built-in syntax-highlight color theme; None = use default (Dark).
opacity: Option<f64>§visible: Option<bool>§locked: Option<bool>§selectable: Option<bool>PDF text-extraction toggle (see TextNode::selectable). None/
Some(true) (default) → real selectable/searchable text; Some(false) →
filled glyph outlines (visually identical, not extractable). PDF-only.
rotate: Option<Dimension>§content: StringVerbatim source text (decoded; newlines/tabs are literal characters).
anchor: Option<String>Page-relative placement anchor (one of the nine named positions, e.g.
"bottom-right"). When present and recognized, the compile step derives
the node’s x and/or y from the page and node dimensions. An explicitly-
authored x or y always wins.
anchor_zone: Option<String>Optional safe-zone reference for the anchor. See RectNode::anchor_zone.
anchor_sibling: Option<String>Optional sibling node id for sibling-relative anchor positioning.
See RectNode::anchor_sibling.
anchor_edge: Option<String>Adjacent-placement edge relative to anchor-sibling: above/below/before/after.
See RectNode::anchor_edge.
anchor_gap: Option<Dimension>Gap (px) between this node and its anchor-sibling edge when anchor-edge is set.
See RectNode::anchor_gap.
anchor_parent: Option<bool>Parent-relative anchor toggle. See RectNode::anchor_parent.
source_span: Option<Span>Source declaration span, when available.
unknown_props: BTreeMap<String, UnknownProperty>Unknown properties preserved for forward-compat.