Пишу плагин для gulp, задача стоит такова, в потоке при сборке файлов html найти в этом же файле data-skin="site-red", взять значение data и заменить ссылки на стили в этом же файли.
Было так:
<html lang="en" data-skin="site-red">
<head>
<title>Title</title>
<meta charset="utf-8">
<link id="skins" rel="stylesheet" href="css/assets/style.css">
</head>
...
а должно после сборки стать так:
<html lang="en" data-skin="site-red">
<head>
<title>Title</title>
<meta charset="utf-8">
<link id="skins" rel="stylesheet" href="css/site-red/assets/style.css">
</head>
...
как прочитать файл я разобрался, вот начальный код будущего плагина:
'use strict';
var Transform = require('readable-stream/transform');
module.exports = function repl() {
return new Transform({
objectMode: true,
transform: function replTransform(file, enc, cb) {
if (file.isNull()) {
cb(null, file);
return;
}
if (file.isStream()) {
console.log('Stream');
console.log(file.contents);
return cb(null, file);
}
if (file.isBuffer()) {
const data = file.contents.toString();
console.log('Buffer');
console.log(data);
file.contents = new Buffer(data);
return cb(null, file);
}
}
})
};