3.0.0 • Published 4 years ago

@hugojosefson/merge-html v3.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

@hugojosefson/merge-html

Build Status npm page License MIT SemVer 2.0.0 JavaScript Style Guide

Introduction

CLI and module for merging two or more .html files together.

Prerequisite

Node.js, v13.7.0 or higher, ideally at least v14.0.0.

Recommended to install latest via nvm:

nvm install stable

Usage

npx --package @hugojosefson/merge-html \
  merge-html input1.html input2.html [...inputN.html] \
  > output.html

Will merge all the input html files, and redirect the output to output.html.

Minification

By default, the output HTML is minified using html-minifier-terser with DEFAULT_MINIFY_OPTIONS.

You may change it by setting the MERGE_HTML_MINIFY environment variable to a boolean, or to a valid JSON object with configuration options. For example:

MERGE_HTML_MINIFY=false \
npx --package @hugojosefson/merge-html \
  merge-html input1.html input2.html > \
  non-minified.html

...or...

MERGE_HTML_MINIFY='{"decodeEntities": true, "keepClosingSlash": true, "maxLineLength": 80}' \
npx --package @hugojosefson/merge-html \
  merge-html input1.html input2.html > \
  special-minified.html

Programmatic access

You can also add the module to your project, import it, and use its default exported function programmatically.

yarn add @hugojosefson/merge-html
import merge from '@hugojosefson/merge-html'

const html1 = `
<html>
  <head>
    <title>Example</title>
    <script src="legacy.js" async nomodule></script>
  </head>
  <body>
    <p>Hello</p>`

const html2 = `
<html>
  <head>
    <title>Example</title>
    <script src="modern.mjs" type=module></script>
  </head>
  <body>
    <p>World</p>`

console.log(merge([html1, html2]))

The above example would output:

<!DOCTYPE html><html><head><title>Example</title><script src="legacy.js" async nomodule=""></script><script src="modern.mjs" type="module"></script></head><body><p>Hello</p><p>World</p></body></html>

... which when pretty-printed is:

<!DOCTYPE html>
<html>
  <head>
    <title>Example</title>
    <script src="legacy.js" async nomodule=""></script>
    <script src="modern.mjs" type="module"></script>
  </head>
  <body>
    <p>Hello</p>
    <p>World</p>
  </body>
</html>

API

merge

src/merge.mjs:15-20

Merges two or more HTML strings together.

Parameters

Returns string The resulting HTML document.

DEFAULT_MINIFY_OPTIONS

src/fn/minify.mjs:17-20

Default minifyOptions for merge().

3.0.0

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago