Skip to content

Latest commit

 

History

History
177 lines (119 loc) · 7.51 KB

API.md

File metadata and controls

177 lines (119 loc) · 7.51 KB

Table of contents


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
             applicable

(as-hiccup this)

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.

(as-hickory this)

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.

(extract-doctype s)

(format-doctype dt)

(node-type type)

(parse s)

Parse an entire HTML document into a DOM structure that can be used as input to as-hiccup or as-hickory.

  (-> (parse "<a style=\"visibility:hidden\">foo</a><div style=\"color:green\"><p>Hello</p></div>")
    as-hiccup)
  (-> (parse "<a style=\"visibility:hidden\">foo</a><div style=\"color:green\"><p>Hello</p></div>")
    as-hickory)

(parse-dom-with-domparser s)

(parse-dom-with-write s)

Parse an HTML document (or fragment) as a DOM using document.implementation.createHTMLDocument and document.write.

(parse-fragment s)

Parse an HTML fragment (some group of tags that might be at home somewhere in the tag hierarchy under ) into a list of DOM elements that can each be passed as input to as-hiccup or as-hickory.

(remove-el el)