Current section

Files

Jump to
html_to_markdown lib html_to_markdown text_annotation.ex
Raw

lib/html_to_markdown/text_annotation.ex

# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:430ef19cdc26a55b0159e1184f51c34147623cbcbb638e254629267528dd6c7f
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
defmodule HtmlToMarkdown.TextAnnotation do
@moduledoc """
A styling or semantic annotation that applies to a byte range within a node's text.
Unlike [`DocumentNode`], which captures block-level structure (headings, paragraphs, etc.),
a `TextAnnotation` describes inline-level markup — bold, italic, links, code spans, and
similar — that spans a contiguous run of bytes inside `DocumentNode::content`'s text field.
Byte offsets (`start`..`end`) are into the UTF-8 encoded text of the parent node. The range
is half-open: `start` is inclusive and `end` is exclusive.
Multiple annotations on the same node can overlap (e.g. bold-italic text), and they are
stored in the order they are encountered during DOM traversal.
See [`AnnotationKind`] for the full list of supported annotation types.
"""
@typedoc "A styling or semantic annotation that applies to a byte range within a node's text."
@type t :: %__MODULE__{
start: non_neg_integer(),
end: non_neg_integer(),
kind: String.t() | nil
}
defstruct start: 0,
end: 0,
kind: :bold
end