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:058f46c4a23be631f95892dda1285555d88e130514a84226566de9b275e464cd
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
# Issues & docs: https://github.com/sample_crate-dev/alef
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