58 lines
3.0 KiB
Elixir
Generated
58 lines
3.0 KiB
Elixir
Generated
# This file is auto-generated by alef — DO NOT EDIT.
|
|
# alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
|
|
# To regenerate: alef generate
|
|
# To verify freshness: alef verify --exit-code
|
|
# Issues & docs: https://github.com/kreuzberg-dev/alef
|
|
defmodule Kreuzberg.NodeContent do
|
|
@moduledoc """
|
|
Tagged enum for node content. Each variant carries only type-specific data.
|
|
|
|
Uses `#[serde(tag = "node_type")]` to avoid "type" keyword collision in
|
|
Go/Java/TypeScript bindings.
|
|
"""
|
|
|
|
@typedoc "Tagged enum for node content. Each variant carries only type-specific data."
|
|
@type t :: term()
|
|
|
|
@typedoc "Document title."
|
|
@type title :: %{type: :title, text: String.t()}
|
|
@typedoc "Section heading with level (1-6)."
|
|
@type heading :: %{type: :heading, level: non_neg_integer(), text: String.t()}
|
|
@typedoc "Body text paragraph."
|
|
@type paragraph :: %{type: :paragraph, text: String.t()}
|
|
@typedoc "List container — children are `ListItem` nodes."
|
|
@type list_variant :: %{type: :list, ordered: boolean()}
|
|
@typedoc "Individual list item."
|
|
@type list_item :: %{type: :list_item, text: String.t()}
|
|
@typedoc "Table with structured cell grid."
|
|
@type table :: %{type: :table, grid: Kreuzberg.TableGrid.t()}
|
|
@typedoc "Image reference."
|
|
@type image :: %{type: :image, description: String.t(), image_index: non_neg_integer(), src: String.t()}
|
|
@typedoc "Code block."
|
|
@type code :: %{type: :code, text: String.t(), language: String.t()}
|
|
@typedoc "Block quote — container, children carry the quoted content."
|
|
@type quote :: :quote
|
|
@typedoc "Mathematical formula / equation."
|
|
@type formula :: %{type: :formula, text: String.t()}
|
|
@typedoc "Footnote reference content."
|
|
@type footnote :: %{type: :footnote, text: String.t()}
|
|
@typedoc "Logical grouping container (section, key-value area)."
|
|
@type group :: %{type: :group, label: String.t(), heading_level: non_neg_integer(), heading_text: String.t()}
|
|
@typedoc "Page break marker."
|
|
@type page_break :: :page_break
|
|
@typedoc "Presentation slide container — children are the slide's content nodes."
|
|
@type slide :: %{type: :slide, number: non_neg_integer(), title: String.t()}
|
|
@typedoc "Definition list container — children are `DefinitionItem` nodes."
|
|
@type definition_list :: :definition_list
|
|
@typedoc "Individual definition list entry with term and definition."
|
|
@type definition_item :: %{type: :definition_item, term: String.t(), definition: String.t()}
|
|
@typedoc "Citation or bibliographic reference."
|
|
@type citation :: %{type: :citation, key: String.t(), text: String.t()}
|
|
@typedoc "Admonition / callout container (note, warning, tip, etc.)."
|
|
@type admonition :: %{type: :admonition, kind: String.t(), title: String.t()}
|
|
@typedoc "Raw block preserved verbatim from the source format."
|
|
@type raw_block :: %{type: :raw_block, format: String.t(), content: String.t()}
|
|
@typedoc "Structured metadata block (email headers, YAML frontmatter, etc.)."
|
|
@type metadata_block :: %{type: :metadata_block, entries: [[String.t()]]}
|
|
end
|