Current section

Files

Jump to
html_to_markdown lib html_to_markdown header_metadata.ex
Raw

lib/html_to_markdown/header_metadata.ex

# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:7471d00a591a836cdb7076cfa76ddf0a8b03850c500d98669bcb0c59b507180a
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
defmodule HtmlToMarkdown.HeaderMetadata do
@moduledoc """
Header element metadata with hierarchy tracking.
Captures heading elements (h1-h6) with their text content, identifiers,
and position in the document structure.
# Examples
```
let header = HeaderMetadata {
level: 1,
text: "Main Title".to_string(),
id: Some("main-title".to_string()),
depth: 0,
html_offset: 145,
};
assert_eq!(header.level, 1);
assert!(header.is_valid());
```
"""
@typedoc "Header element metadata with hierarchy tracking."
@type t :: %__MODULE__{
level: non_neg_integer(),
text: String.t() | nil,
id: String.t() | nil,
depth: non_neg_integer(),
html_offset: non_neg_integer()
}
defstruct level: 0,
text: nil,
id: nil,
depth: 0,
html_offset: 0
@doc "Validate that the header level is within valid range (1-6)."
@spec valid?(t()) :: boolean()
def valid?(%__MODULE__{level: level}) do
level >= 1 and level <= 6
end
end