node-html-light

    2.11.0 • Public • Published

    Node HTML Light

    Build Status Dependency Status DevDependency Status Npm downloads Npm Version Git tag Github issues License

    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 methods

    • html() -> Node
    • head() -> Node
    • body() -> Node
    • toHtml() -> String

    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
    • type
    • parent
    • children
    • root
    • nextSibling
    • previousSibling
    • 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.

    Install

    npm i node-html-light

    DownloadsWeekly Downloads

    5,076

    Version

    2.11.0

    License

    MIT

    Unpacked Size

    25.1 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar