Skip to content

posthtml/posthtml-cache

Folders and files

NameName
Last commit message
Last commit date
Apr 7, 2020
Apr 7, 2020
Mar 30, 2020
Mar 13, 2019
Dec 11, 2017
Mar 30, 2020
Apr 8, 2020
Dec 13, 2017
Jan 23, 2022
Jun 8, 2021
Apr 7, 2020

Repository files navigation

posthtml-cache

A posthtml plugin for add nanoid to style & script links and you tags...

Travis Build Statusnodenpm versionDependency StatusXO code styleCoveralls status

Why?

Install

npm i -S posthtml posthtml-cache

Note: This project is compatible with node v10+

Usage

import {readFileSync, writeFileSync} from 'fs';
import posthtml from 'posthtml';
import posthtmlCache from 'posthtml-cache';

const html = readFileSync('input.html', 'utf8');

posthtml()
  .use(posthtmlCache(/* options */))
  .process(html)
  .then(result => {
    writeFileSync('output.html', result.html);
  });

Example

input.html

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <img data-src="logo.svg" alt="">
    <script src="script.js"></script>
  </body>
<html>

output.html

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css?v=4f90d13a42">
  </head>
  <body>
    <img data-src="logo.svg?v=VlLqCweTvn_E1g3XXGMtM" alt="">
    <script src="script.js?v=93ce_Ltuub"></script>
  </body>
<html>

will be added nanoid to all the file link

Options

tags

Type: Array Default: ['script', 'link'] Description: You can also expand the list by adding the tags you need...

attributes

Type: Array Default: ['src', 'href'] Description: You can also expand the list by adding the attributes you need...

exclude

Type: Array Default: [] Description: You can also exclude the list by adding the tags you need...

onlyInternal

Type: Array Default: [] Description: If you have external URL-s, some won't work if you add nanoid to them. If this list is empty, all external links are modified. Otherwise, only the URL-s starting with items in the array (case insensitive) will be modified. E.g. ['https://github.com/'] will add nanoid to all local links and only to https://github.com/*. It won't add nanoid to e.g. http://github.com or https://fonts.google.com. For simplicity, a link is considered external if it starts with a protocol (see is-absolute-url) or with double slash //.