1.1.1 • Published 6 years ago

html-segment v1.1.1

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

(html-)segment

Wrap headings and their contents in semantic section containers.

Usage

Segment can either be used in the browser (segment.browser.js), as a module or preprocessing tool (segment.module.js).

Browser

Simply add segment.browser.js as a script in the page you want to segment.

<body>
    ...page contents...
    <script src="segment.browser.js" type="text/javascript"></script>
</body>

The browser version attaches the segment class to the window object as htmlSegment, allowing you to initialize it with new htmlSegment(document[, config]). Pass it the document object and an optional configuration object.

// e.g. main.js
let segment = new htmlSegment(document)

By default, this will automatically wrap all headings and their contents in <section> containers.

Module

Install with yarn or npm.

$ yarn add html-segment --dev

Include it in your module:

// ES6
import segment from 'html-segment'

// ES5
var segment = require('html-segment')

This will import the dist/segment.module.js version.

Options

Preprocessing

Segment can also be used to alter static documents in a backend environment like node.js. Initialization works differently in this scenario since there isn't a window or document object to use.

jsdom Example

This example creates a document object using jsdom, processes it with html-segment, and then saves the result as a new html file.

// ES6 & Node.js
import fs from 'fs'
import path from 'path'
import jsdom from 'jsdom'

// equivalent to `const htmlSegment = require('html-segment')`
import htmlSegment from 'html-segment'

const dirs = {
    input: './documents/input',
    output: './documents/output'
}

const filename = 'myFile.html'

// read the file
fs.readFile(path.join(dirs.input, filename), 'utf8', (err, data) => {

    // pass to jsdom
    jsdom.env(data, (jsdomErr, window) => {
        if (jsdomErr) throw jsdomErr

        // run segment
        let segment = new htmlSegment(window.document)

        // an example of something you can do with the segment object
        // this will output all of the section ids that segment creates
        segment.sections.map((section) => console.log(section.getAttribute('id')))

        // write the result to a new output file
        fs.writeFile(path.join(dirs.output, filename), window.document.documentElement.outerHTML, (writeErr) => {
            if (writeErr) throw writeErr
        })
    })
})
2.0.1

6 years ago

2.0.0

8 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago