A small package that extracts HTML from plain-JS Riot tags, passes it through the Riot's HTML compiler and returns a new string with the HTML replaced.
This gives two benefits:
- Minifies HTML right inside of plain-JS tags
- Fixes all of the HTML limitations when working with
riot.tag()
, since your HTML starts to act like if it's a.tag
file.
It will also keep the same line and column of the actual JS code (`function (opts) { ... }`) which might be helpful in some scenarios when needed to keep stack traces in sync with the source file.
Transpiles a file like this one
import riot from 'riot'
riot.tag('my-tag', `
<div>HTML ...</div>
`, function(opts) {
// JS ...
})
into
import riot from 'riot'
riot.tag('my-tag', `<div>HTML ...</div>`
, function(opts) {
// JS ...
})
import fs from 'fs'
import minify from 'riot-plain-htmlmin'
const src = fs.readFileSync('my-tag.js', 'utf-8') // the entire file
minify(src, { compact: true }) // <- The result
Accepts 2 parameters:
- src – the source of an entire file
- options – RiotJS options object that passes to the compiler
Under the hood it just uses Riot's compileHTML
function. Basically, it just
replaces the HTML string with the compiled one