# `HtmlToMarkdown.NodeType`

Node type enumeration covering all HTML element types.

This enum categorizes all HTML elements that the converter recognizes,
providing a coarse-grained classification for visitor dispatch.

# `t`

```elixir
@type t() ::
  :text
  | :element
  | :heading
  | :paragraph
  | :div
  | :blockquote
  | :pre
  | :hr
  | :list
  | :list_item
  | :definition_list
  | :definition_term
  | :definition_description
  | :table
  | :table_row
  | :table_cell
  | :table_header
  | :table_body
  | :table_head
  | :table_foot
  | :link
  | :image
  | :strong
  | :em
  | :code
  | :strikethrough
  | :underline
  | :subscript
  | :superscript
  | :mark
  | :small
  | :br
  | :span
  | :article
  | :section
  | :nav
  | :aside
  | :header
  | :footer
  | :main
  | :figure
  | :figcaption
  | :time
  | :details
  | :summary
  | :form
  | :input
  | :select
  | :option
  | :button
  | :textarea
  | :label
  | :fieldset
  | :legend
  | :audio
  | :video
  | :picture
  | :source
  | :iframe
  | :svg
  | :canvas
  | :ruby
  | :rt
  | :rp
  | :abbr
  | :kbd
  | :samp
  | :var
  | :cite
  | :q
  | :del
  | :ins
  | :data
  | :meter
  | :progress
  | :output
  | :template
  | :slot
  | :html
  | :head
  | :body
  | :title
  | :meta
  | :link_tag
  | :style
  | :script
  | :base
  | :custom
```

Node type enumeration covering all HTML element types.

# `abbr`

```elixir
@spec abbr() :: t()
```

Abbreviation

# `article`

```elixir
@spec article() :: t()
```

Article element

# `aside`

```elixir
@spec aside() :: t()
```

Aside element

# `audio`

```elixir
@spec audio() :: t()
```

Audio element

# `base`

```elixir
@spec base() :: t()
```

Base element

# `blockquote`

```elixir
@spec blockquote() :: t()
```

Blockquote element

# `body`

```elixir
@spec body() :: t()
```

Body element

# `br`

```elixir
@spec br() :: t()
```

Line break (br)

# `button`

```elixir
@spec button() :: t()
```

Button element

# `canvas`

```elixir
@spec canvas() :: t()
```

Canvas element

# `cite`

```elixir
@spec cite() :: t()
```

Citation

# `code`

```elixir
@spec code() :: t()
```

Inline code (code)

# `custom`

```elixir
@spec custom() :: t()
```

Custom element (web components) or unknown tag

# `data`

```elixir
@spec data() :: t()
```

Data element

# `definition_description`

```elixir
@spec definition_description() :: t()
```

Definition description (dd)

# `definition_list`

```elixir
@spec definition_list() :: t()
```

Definition list (dl)

# `definition_term`

```elixir
@spec definition_term() :: t()
```

Definition term (dt)

# `del`

```elixir
@spec del() :: t()
```

Deleted text

# `details`

```elixir
@spec details() :: t()
```

Details element

# `div`

```elixir
@spec div() :: t()
```

Generic div container

# `element`

```elixir
@spec element() :: t()
```

Generic element node

# `em`

```elixir
@spec em() :: t()
```

Emphasis/italic (em, i)

# `fieldset`

```elixir
@spec fieldset() :: t()
```

Fieldset element

# `figcaption`

```elixir
@spec figcaption() :: t()
```

Figure caption

# `figure`

```elixir
@spec figure() :: t()
```

Figure element

# `footer`

```elixir
@spec footer() :: t()
```

Footer element

# `form`

```elixir
@spec form() :: t()
```

Form element

# `head`

```elixir
@spec head() :: t()
```

Head element

# `header`

```elixir
@spec header() :: t()
```

Header element

# `heading`

```elixir
@spec heading() :: t()
```

Heading elements (h1-h6)

# `hr`

```elixir
@spec hr() :: t()
```

Horizontal rule

# `html`

```elixir
@spec html() :: t()
```

HTML root element

# `iframe`

```elixir
@spec iframe() :: t()
```

Iframe element

# `image`

```elixir
@spec image() :: t()
```

Image (img)

# `input`

```elixir
@spec input() :: t()
```

Input element

# `ins`

```elixir
@spec ins() :: t()
```

Inserted text

# `kbd`

```elixir
@spec kbd() :: t()
```

Keyboard input

# `label`

```elixir
@spec label() :: t()
```

Label element

# `legend`

```elixir
@spec legend() :: t()
```

Legend element

# `link`

```elixir
@spec link() :: t()
```

Anchor link (a)

# `link_tag`

```elixir
@spec link_tag() :: t()
```

Link element (not anchor)

# `list`

```elixir
@spec list() :: t()
```

Ordered or unordered list (ul, ol)

# `list_item`

```elixir
@spec list_item() :: t()
```

List item (li)

# `main`

```elixir
@spec main() :: t()
```

Main element

# `mark`

```elixir
@spec mark() :: t()
```

Mark/highlight (mark)

# `meta`

```elixir
@spec meta() :: t()
```

Meta element

# `meter`

```elixir
@spec meter() :: t()
```

Meter element

# `nav`

```elixir
@spec nav() :: t()
```

Navigation element

# `option`

```elixir
@spec option() :: t()
```

Option element

# `output`

```elixir
@spec output() :: t()
```

Output element

# `paragraph`

```elixir
@spec paragraph() :: t()
```

Paragraph element

# `picture`

```elixir
@spec picture() :: t()
```

Picture element

# `pre`

```elixir
@spec pre() :: t()
```

Preformatted text block

# `progress`

```elixir
@spec progress() :: t()
```

Progress element

# `q`

```elixir
@spec q() :: t()
```

Quote

# `rp`

```elixir
@spec rp() :: t()
```

Ruby parenthesis

# `rt`

```elixir
@spec rt() :: t()
```

Ruby text

# `ruby`

```elixir
@spec ruby() :: t()
```

Ruby annotation

# `samp`

```elixir
@spec samp() :: t()
```

Sample output

# `script`

```elixir
@spec script() :: t()
```

Script element

# `section`

```elixir
@spec section() :: t()
```

Section element

# `select`

```elixir
@spec select() :: t()
```

Select element

# `slot`

```elixir
@spec slot() :: t()
```

Slot element

# `small`

```elixir
@spec small() :: t()
```

Small text (small)

# `source`

```elixir
@spec source() :: t()
```

Source element

# `span`

```elixir
@spec span() :: t()
```

Span element

# `strikethrough`

```elixir
@spec strikethrough() :: t()
```

Strikethrough (s, del, strike)

# `strong`

```elixir
@spec strong() :: t()
```

Strong/bold (strong, b)

# `style`

```elixir
@spec style() :: t()
```

Style element

# `subscript`

```elixir
@spec subscript() :: t()
```

Subscript (sub)

# `summary`

```elixir
@spec summary() :: t()
```

Summary element

# `superscript`

```elixir
@spec superscript() :: t()
```

Superscript (sup)

# `svg`

```elixir
@spec svg() :: t()
```

SVG element

# `table`

```elixir
@spec table() :: t()
```

Table element

# `table_body`

```elixir
@spec table_body() :: t()
```

Table body (tbody)

# `table_cell`

```elixir
@spec table_cell() :: t()
```

Table cell (td, th)

# `table_foot`

```elixir
@spec table_foot() :: t()
```

Table foot (tfoot)

# `table_head`

```elixir
@spec table_head() :: t()
```

Table head (thead)

# `table_header`

```elixir
@spec table_header() :: t()
```

Table header cell (th)

# `table_row`

```elixir
@spec table_row() :: t()
```

Table row (tr)

# `template`

```elixir
@spec template() :: t()
```

Template element

# `text`

```elixir
@spec text() :: t()
```

Text node (most frequent - 100+ per document)

# `textarea`

```elixir
@spec textarea() :: t()
```

Textarea element

# `time`

```elixir
@spec time() :: t()
```

Time element

# `title`

```elixir
@spec title() :: t()
```

Title element

# `underline`

```elixir
@spec underline() :: t()
```

Underline (u, ins)

# `var`

```elixir
@spec var() :: t()
```

Variable

# `video`

```elixir
@spec video() :: t()
```

Video element

---

*Consult [api-reference.md](api-reference.md) for complete listing*
