Gulp cheerio 正在部分转义 html 元素

Gulp cheerio is partially escaping html elements

创建了一个单独的最小示例存储库来说明此处发生的事情(有关如何 运行 的说明,请参阅 README.md):

https://github.com/oleersoy/nunjucks-cheerio/

正在渲染的文件是src/test.html。它包含:

{% for item in ['100', '300'] %}
  <div class="u-color-background-gray-{{item}}>
    <code>u-color-background-gray-{{item}}</code>
  </div>
{% endfor %}

渲染时某些内容被转义,即使 gulp-cheerio 操作应该是空操作,因为它应该作用的内容不存在:

  <div class="u-color-background-gray-100&gt;
    &lt;code&gt;u-color-background-gray-100&lt;/code&gt;
  &lt;/div&gt;

  &lt;div class=" u-color-background-gray-300="">
    <code>u-color-background-gray-300</code>
  </div>

gulpfile.js 看起来像这样:

    gulp.task('test', function() {
      return gulp
        .src("src/**")
        .pipe(nunjucksRender({
          path: ["src"]
        }))
        .pipe(cheerio(function($, file) {
          $('.Test-markup > code').each(function() {
            var markup = $(this).html();
            //Insert the Test-render block after the Test-then block
            //Append the markup block to the Test-render block
            $($(this).parent().next()).after(renderTestBlock).next().append(markup);
          });
        }))
        .pipe(gulp.dest("dist"));
    });

有人知道可能导致内容逃逸的原因吗?

作为参考,我还向 cheerio and gulp-cheerio

提交了问题

在模板字符串 class="u-color-background-gray-{{item}}>

中缺少 "