@denis2601

Как в HTML файле найти значение data-* через node.js?

Пишу плагин для 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);
      }

    }
  })
};
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
monochromer
@monochromer
DIVeloper
Если хотите самостоятельно парсить html-файлы, то пожалуйста, а так лучше используйте сheerio
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы