Node HTML Light
HTML Parser for NodeJS providing a lightweight object oriented interface
How can I install it?
npm i node-html-light --save
Who is using it?
blauspecht.io uses node-html-light
to render their whole page server-side. blauspecht.io enables you to provide rich content to your followers, schedule tweets and threads and will add AI-powered features soon.
How can I use it?
Document
Class methods
Instance properties
- name
- parent
- attributes
Instance methods
Node
Class methods
- static fromPath(path) -> Node | Array<Node>
- static fromString(string) -> Node | Array<Node>
- static of(object | name, attrs) -> Node | Array<Node>
Instance properties
- name
- parent
- attributes
Instance methods
- appendChild(newChild) -> void
- appendChildBefore(newChild, oldChild) -> void
- appendChildAfter(newChild, oldChild) -> void
- find(element, attrs, limit) -> Array<Node>
- filter(callback, limit) -> Array<Node>
- removeChild(child) -> void
- replaceChild(newChild, oldChild) -> void
- toHtml() -> String
Attributes
Class methods
- static of(object) -> Array
Text
Class methods
- static of(string) -> Text
Examples
Create a document using a file
const Document = require('node-html-light').Document
const resolve = require('path').resolve
Document.fromPath(resolve('./index.html')).then((document) => {
// head is an instance of Node
const head = document.head()
// body is an instance of Node
const body = document.body()
// find child elements
// append child elements
// remove child elements
// replace child elements
return document.toHtml()
}).then((html) => {
// ..
})
Create a Node using a File
const Node = require('node-html-light').Node
const resolve = require('path').resolve
Node.fromPath(resolve('partial.html')).then((node) => {})
Create a Node using a String
const Node = require('node-html-light').Node
const node = Node.fromString('<div></div>')
Create a Node with raw data
const Node = require('node-html-light').Node
const Attributes = require('node-html-light').Attributes
const node = Node.of('meta', Attributes.of({
'name': 'viewport',
'theme-color': '#795548'
})
)
Find a child Node of an existing Element
const Node = require('node-html-light').Node
const Attributes = require('node-html-light').Attributes
const resolve = require('path').resolve
Node.fromPath(resolve('partial.html')).then((node) => {
const content = node.find('div', Attributes.of({
'name': 'viewport',
'theme-color': '#795548'
}))
})
License
This project is distributed under the MIT license.