/brigid

A library for writing type-safe and (mostly) spec-compliant HTML in Haskell.

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

brigid

A library for constructing type-safe and (mostly) spec-compliant HTML.

TODO (HTML)

  1. Consider adding safer builder functions for any HTML elements with complex conditions for its permitted content, such as what was done with Brigid.HTML.Elements.Safe.Table. Go through the entire list of elements again to determine what qualifies for this.
  2. For each of global, HTMX, event listeners, arias, and scoped attributes:
    1. Make constructors for Attribute GADT.
    2. Make render functions.
    3. Modify ValidElementsFor.
    4. Modify the attribute selector functions in HTML.Types.QuerySelector to take their appropriate types.
  3. Add support for the SVG tag.
  4. Add support for MathML.
  5. Look into safely constructing Shadow DOM elements.

TODO (XML)

  1. Add support for XML.
  2. Add function to produce an XML WSDL from a provided Brigid XML structure?

TODO (HXML)

  1. Add support for HXML.

Possible optimizations

  1. Change all ToText and ToBytes functions to use builders? Export them for use in render, but not from Brigid.HTML.Types.