2017-10-19 22 views
0

J'ai créé un plugin Gulp appelé php-include-html, qui analyse les fichiers php dans Gulp et traite les instructions include et require pour les extraits de code HTML.Codage HTML se passe avec Gulp sur Windows

L'extrait du gulpfile ressemble à ceci ...

var gulp = require("gulp"); 
 
var pump = require("pump"); 
 
var phpinc = require("php-include-html"); 
 

 
gulp.task("php",function(cb) { 
 
    pump([ 
 
    gulp.src("*.php"), 
 
    phpinc({verbose:true}), 
 
    gulp.dest("build") 
 
    ],cb); 
 
});

C'est un extrait du fichier php avant le traitement ...

<!DOCTYPE html> 
 
<html lang="en-gb"> 
 
    <head> 
 
    <title>Emma Malik's Official Website - Legal</title>

Et voici le même extrait après le traitement ...

<!DOCTYPE html> 
 
<html lang="en-gb"> 
 
    <head> 
 
    <title>Emma Malik&amp;s Official Website - Legal</title>

Comme vous pouvez le voir, l'apostrophe a été HTML codé. Cependant, il ne semble pas être tous les esperluettes, seulement certains d'entre eux, et d'autres caractères, tels que> > mais encore une fois, pas tous.

Tout le chemin à travers mon plugin, cela reste une apostrophe, il semble que ce soit le gulp.dest qui réécrit le fichier qui le convertit en quelque sorte.

choses que j'ai essayé ...

  1. Décapage l'UTF-8 BOM à partir du fichier source (bande-bom et bande-bom-BUF)
  2. Ajout de la nomenclature UTF-8 le fichier de destination (gulp-tête)
  3. en utilisant la manipulation de chaînes au lieu de String.replace
  4. Conversion du contenu de destination en UTF-8 (gulp-convert-encodage)
  5. décodage après mon plug-in avant gulp.dest (gulp -h TML-entités)
  6. Utilisation fichier vinyle

Quelqu'un at-il vu quelque chose comme ça avant, ou savoir comment y remédier?

Répondre

0

Fausse alarme, il s'avère que c'est en fait le plugin "gulp-sri-hash", qui court après le mien, ce qui est fait. Je dois enquêter davantage sur ce qui cause exactement cela, mais au moins j'ai compris que ce n'est pas moi!