Respuestas:
En su principal app.js
o lo que está en su lugar:
Express 4.x
if (app.get('env') === 'development') {
app.locals.pretty = true;
}
Express 3.x
app.configure('development', function(){
app.use(express.errorHandler());
app.locals.pretty = true;
});
Express 2.x
app.configure('development', function(){
app.use(express.errorHandler());
app.set('view options', { pretty: true });
});
Puse la impresión bonita development
porque querrás más eficiencia con lo 'feo' production
. Asegúrese de establecer la variable de entorno NODE_ENV=production
cuando realice la implementación en producción. Esto puede hacerse con un sh
script que use en el campo 'script' package.json
y ejecutado para comenzar.
Express 3 cambió esto porque:
La configuración de "ver opciones" ya no es necesaria, app.locals son las variables locales fusionadas con res.render (), por lo que [app.locals.pretty = true es lo mismo que pasar res.render (view, {pretty : cierto }).
promise
, uglify-js
, css
y lexical-scope
antes de que correría de nuevo (que construiría, pero accidente en la primera solicitud). Solo agregué esa línea.
app.locals.pretty = true
Para la salida html de "formato bonito" en Jade / Express:
app.set('view options', { pretty: true });
En express 4.x, agregue esto a su app.js:
if (app.get('env') === 'development') {
app.locals.pretty = true;
}
Hay una opción "bonita" en Jade:
var jade = require("jade");
var jade_string = [
"!!! 5",
"html",
" body",
" #foo I am a foo div!"
].join("\n");
var fn = jade.compile(jade_string, { pretty: true });
console.log( fn() );
... te da esto:
<!DOCTYPE html>
<html>
<body>
<div id="foo">I am a foo div!
</div>
</body>
</html>
No parece ser muy sofisticado, pero para lo que busco, la capacidad de depurar el HTML que producen mis vistas, está bien.
Si está utilizando la consola para compilar, puede usar algo como esto:
$ jade views/ --out html --pretty
¿Realmente necesitas un HTML bien formateado? Incluso si intenta generar algo que se ve bien en un editor, puede verse extraño en otro. De acuerdo, no sé para qué necesita el html, pero trataría de usar las herramientas de desarrollo de Chrome o Firebug para Firefox. Esas herramientas le dan una buena vista del DOM en lugar del html.
Si realmente necesita HTML bien formateado, intente usar EJS en lugar de jade. Sin embargo, eso significaría que tendría que formatear el html.
puedes usar ordenado
tome por ejemplo este archivo jade:
foo.jade
h1 MyTitle
p
a(class='button', href='/users/') show users
table
thead
tr
th Name
th Email
tbody
- var items = [{name:'Foo',email:'foo@bar'}, {name:'Bar',email:'bar@bar'}]
- each item in items
tr
td= item.name
td= item.email
ahora puede procesarlo con el nodo testjade.js foo.jade> output.html :
testjade.js
var jade = require('jade');
var jadeFile = process.argv[2];
jade.renderFile(__dirname + '/' + jadeFile, options, function(err, html){
console.log(html);
});
te dará algo me gusta:
output.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>My Title</title><link rel="stylesheet" href="https://stackoverflow.com/stylesheets/style.css"/><script type="text/javascript" src="../js/jquery-1.4.4.min.js"></script></head><body><div id="main"><div ><h1>MyTitle</h1><p><a href="/users/" class="button">show users</a></p><table><thead><tr><th>Name</th><th>Email</th></tr></thead><tbody><tr><td>Foo</td><td>foo@bar</td></tr><tr><td>Bar</td><td>bar@bar</td></tr></tbody></table></div></div></body></html
luego ejecutarlo en tidy con tidy -m output.html dará como resultado:
output.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org" />
<title>My Title</title>
<link rel="stylesheet" href="/stylesheets/style.css" type=
"text/css" />
<script type="text/javascript" src="../js/jquery-1.4.4.min.js">
</script>
</head>
<body>
<div id="main">
<div>
<h1>MyTitle</h1>
<p><a href="/users/" class="button">show users</a></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>Foo</td>
<td>foo@bar</td>
</tr>
<tr>
<td>Bar</td>
<td>bar@bar</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
Partiendo de la sugerencia de Oliver, aquí hay una manera rápida y sucia de ver html embellecido
1) descargar ordenado
2) agregue esto a su .bashrc
function tidyme() {
curl $1 | tidy -indent -quiet -output tidy.html ; open -a 'google chrome' tidy.html
}
3) correr
$ tidyme localhost:3000/path
El comando abierto solo funciona en Mac. ¡Espero que ayude!
En express 4.x, agregue esto a su app.js:
app.locals.pretty = app.get('env') === 'development';