Objects that can be represented as Hiccup nodes implement this protocol in
order to make the conversion.
Objects that can be represented as HTML DOM node maps, similar to
clojure.xml, implement this protocol to make the conversion.
Each DOM node will be a map or string (for Text/CDATASections). Nodes that
are maps have the appropriate subset of the keys
:type - [:comment, :document, :document-type, :element]
:tag - node's tag, check :type to see if applicable
:attrs - node's attributes as a map, check :type to see if applicable
:content - node's child nodes, in a vector, check :type to see if
Converts the node given into a hiccup-format data structure. The
node must have an implementation of the HiccupRepresentable
protocol; nodes created by parse or parse-fragment already do.
Converts the node given into a hickory-format data structure. The
node must have an implementation of the HickoryRepresentable protocol;
nodes created by parse or parse-fragment already do.
Parse an entire HTML document into a DOM structure that can be
used as input to as-hiccup or as-hickory.
Parse an HTML fragment (some group of tags that might be at home somewhere
in the tag hierarchy under <body>) into a list of DOM elements that can
each be passed as input to as-hiccup or as-hickory.