Si está utilizando Node, siga leyendo.
Instale js-htmlencode paquete:
npm install -S js-htmlencode
Luego ejecute la salida de su base de datos sin procesar a través de htmlDecode
método una vez. Debe hacerlo en su aplicación de servidor antes de pasar los datos a su secuencia de comandos Pug:
Javascript del servidor:
const htmlDecode = require("js-htmlencode").htmlDecode;
app.get("/htmldecode", (req, res) => {
const raw = "<h1>This is <span style='color:red'>RED</span>!!</h1>"
res.render("htmldecode", { raw: raw, decoded: htmlDecode(raw) })
});
htmldecode.pug:
html
head
body
h3 Html Decoding Twice
p Using !: !{raw}
p Using #: #{raw}
p Final: !{decoded}
Salida real:
Cabe señalar que !{raw}
no se convierte en <h1>…
. Se representa literalmente, es decir, a <h1>…
. Es el navegador que muestra <
como <
.
¡Tome nota de todas las precauciones que vienen con el uso del !
operador.