gulp-inline-css
gulp-inline-css copied to clipboard
codeBlocks has no effect
trafficstars
I'm having troubles parsing templates which have expressions like this {% if balance < 5 %}.
And the parsing is failing pointing to <.
I've tried to change the config to this
function inliner(css) {
var css = fs.readFileSync(css).toString();
var mqCss = siphon(css);
var pipe = lazypipe()
.pipe($.inlineCss, {
applyStyleTags: false,
removeStyleTags: true,
preserveMediaQueries: true,
removeLinkTags: false,
codeBlocks: {
HBS: { start: '{{', end: '}}' },
volt: { start: '{%', end: '%}' },
mustache: { start: '${{', end: '}}$' }
}
})
.pipe($.replace, '<!-- <style> -->', `<style>${mqCss}</style>`)
.pipe(
$.replace,
'<link rel="stylesheet" type="text/css" href="css/app.css">',
''
)
.pipe($.htmlmin, {
collapseWhitespace: true,
minifyCSS: true
});
return pipe();
}
But this doesn't seem to help.
The point is here
const re = new RegExp(`${blocks[key].start}([\\S\\s]*?)${blocks[key].end}`, 'g');
You should escape spec. chars, one slash coz regex and one as it interpolated strings
volt: { start: '{\\%', end: '\\%}' },