Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

html

Typed HTML5 element data and builder for structured HTML

Features

  • ✅ A complete, typed table of all official HTML5 elements and their attributes, including deprecated and experimental flags.
  • HTMLNode/HTML types for constructing HTML trees in code.
  • ✅ Utilities for rendering, walking, comparing, and inspecting HTML data.
  • ✅ Helpers for querying HTML5 metadata like getElement, isElement, isDeprecated, isAttribute, isExperimental.

Installation

nimble install html

Builder Example

import html
let htmlTree: HTML=@[
HTMLNode(kind: htmlnkElement, tag: "section", attributes: {"id": "main"}.toTable,
children: @[
HTMLNode(kind: htmlnkElement, tag: "h1", children: @[HTMLNode(kind: htmlnkText, text: "Welcome")]),
HTMLNode(kind: htmlnkText, text: "\n"),
HTMLNode(kind: htmlnkElement, tag: "p", children: @[HTMLNode(kind: htmlnkText, text: "This is Nim-generated HTML.")])
])
]
echo$htmlTree # HTML stringechotreeRepr(htmlTree) # Tree representation
<section id="main"><h1>Welcome</h1>
<p>This is Nim-generated HTML.</p></section>
[section]: id="main" [h1]: [Text]: Welcome
[/h1]
[Text]: [p]: [Text]: This is Nim-generated HTML.
[/p]
[/section]

Metadata Example

import html
echoisElement("div") # trueechoisAttribute("a", "href") # trueechoisDeprecated("applet") # trueechoisExperimental("dialog") # falseechoisDeprecated("a", "ping") # falseechogetElement("a").getAttributes() # {"shape": (deprecated: true, experimental: false), "charset": (deprecated: true, experimental: false), "ping": (deprecated: false, experimental: false), "rev": (deprecated: true, experimental: false), "referrerpolicy": (deprecated: false, experimental: false), "attributionsrc": (deprecated: false, experimental: true), "href": (deprecated: false, experimental: false), "name": (deprecated: true, experimental: false), "download": (deprecated: false, experimental: false), "type": (deprecated: false, experimental: false), "target": (deprecated: false, experimental: false), "coords": (deprecated: true, experimental: false), "hreflang": (deprecated: false, experimental: false), "rel": (deprecated: false, experimental: false)}

About

Typed HTML5 element data and builder for structured HTML in Nim.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages