Files
fil/packages/elixir/lib/kreuzberg/node_content.ex

58 lines
3.0 KiB
Elixir
Raw Normal View History

2026-06-01 23:40:55 +02:00
# 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