A posthtml plugin for add nanoid to style & script links and you tags...
npm i -S posthtml posthtml-cache
Note: This project is compatible with node v10+
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);
});
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
Type: Array
Default: ['script', 'link']
Description: You can also expand the list by adding the tags you need...
Type: Array
Default: ['src', 'href']
Description: You can also expand the list by adding the attributes you need...
Type: Array
Default: []
Description: You can also exclude the list by adding the tags you need...
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 //
.