Para crear etiquetas HTML en un archivo .pug solo se pone el nombre de la etiqueta, es decir, si quieres poner una etiqueta de párrafo solo tendrías que poner la p, o si quieres poner una encabezado solo tendrías que poner h1.
Ejemplo:
archivo.pug
h1 Título del encabezado
p Este es un párrafo
Después de compilar el archivo .pug, el resultado será el siguiente.
<h1>Título del encabezado</h1>
<p>Este es un párrafo</p>
Para anidar etiquetas o poner una o varias etiquetas dentro de otras, solo tenemos que utilizar la identación o las tabulaciones con un salto de línea. Observa el siguiente ejemplo para que quede más claro.
Ejemplo:
archivo.pug
form
div
p Este es un párrafo
small Este es un texto pequeño
b Este es un bold dentro del small
Después de compilar el archivo .pug, el resultado será el siguiente.
<form>
<div>
<p>Este es un párrafo</p>
<small>Este es un texto pequeño<b>Este es un bold dentro del small</b></small>
</div>
</form>
Para añadir los atributos de las etiquetas se debe colocar entre paréntesis los valores que requieras, estos se pueden separar por espacios o por comas, por ejemplo:
etiqueta(atributo="valorDelAtributo")
Ejemplo:
Para crear un link:
archivo.pug
a(href="http://www.google.com" target="_blank") Google
Después de compilar el archivo .pug, el resultado será el siguiente.
<a href="http://www.google.com" target="_blank">Google</a>
Ejemplo 2:
archivo.pug
form(method="POST" action="pagina.php")
input(type="text")
button(type="submit") Aceptar
Después de compilar el archivo .pug, el resultado será el siguiente.
<form method="POST" action="pagina.php">
<input type="text" />
<button type="submit">Aceptar</button>
</form>
Puedes agregar de dos formas las clases y los ids en los archivos .pug:
1. Como si añadieras atributos a la etiqueta
archivo.pug
a(href="http://www.google.com" target="_blank" class="btn btn-primary" id="boton") Google
Después de compilar el archivo .pug, el resultado será el siguiente.
<a href="http://www.google.com" target="_blank" class="btn btn-primary" id="boton">Google</a>
2. Como si fueran estilos CSS.
archivo.pug
a#boton.btn(href="http://www.google.com" target="_blank") Google
Después de compilar el archivo .pug, el resultado será el siguiente.
<a class="btn" id="boton" href="http://www.google.com" target="_blank">Google</a>
Para poder añadir una hoja de JavaScript, puedes hacer el mismo proceso de las etiquetas con su respectivo atributo o si es necesario tener escrito el codigo JavaScript directamente en la página, solo tienes que especificar el nombre de la etiqueta y después colocar un punto y seguir la regla de la identación/tabulación.
archivo.pug
script(src="js/archivo.js", async, defer,)
script.
function saludar(nombre){
alert(`Hola ${nombre}`);
}
Después de compilar el archivo .pug, el resultado será el siguiente.
<script src="js/archivo.js" async defer></script>
<script>
function saludar(nombre) {
alert(`Hola $ {nombre}`);
}
</script>
Al igual que los script:
-
Se puede con el nombre de la etiqueta y sus atributos, esto para agregar una hoja de estilos,
-
Con la etiqueta style seguido de un punto, puedes escribir todo el código CSS que quieras.
-
Dentro de las etiquetas con el atributo style, pero este atributo en lugar de ser solo el texto, es necesario pasar un objeto para que la etiqueta tome el valor deseado.
⚠️ Si tu estilo utiliza propiedades que el nombre tenga una separación con una línea media, por ejemplo font-size, es necesario encerrar entre comillas esa propiedad, ya que, al enviar un objeto en los atributos, JavaScript no lo interpreta así.
archivo.pug
link(rel="stylesheet", href="style.css")
style.
.rojo{
color: red;
}
a(href="#" style={color:"red", "font-size":"2em"}) Link
Después de compilar el archivo .pug, el resultado será el siguiente.
<link rel="stylesheet" href="style.css" />
<style>
.rojo {
color: red;
}
</style>
<a href="#" style="color:red;font-size:2em;">Link</a>
Puedes omitir la etiqueta div si esta tiene un ID o una clase, por ejemplo, div.container por .container, pug identificará que esa clase tendrá una etiqueta div.
archivo.pug
.container
a.link(href="#") Link
#otroDiv
a.link(href="#") Link
Después de compilar el archivo .pug, el resultado será el siguiente.
<div class="container"><a class="link" href="#">Link</a></div>
<div id="otroDiv"><a class="link" href="#">Link</a></div>
Puedes anidar una etiqueta dentro de otra colocando dos puntos ":" después de la etiqueta, esto significa que la etiqueta es hija y con esto puedes ahorrarte un salto de linea.
archivo.pug
div.container: a.link(href="#") Link
Después de compilar el archivo .pug, el resultado será el siguiente.
<div class="container"><a class="link" href="#">Link</a></div>
Suponiendo que quieres hacer un menú.
archivo.pug
ul
li: a.link(href="#") Abrir menú
ul
li Opción 1
li Opción 2
li Opción 3
Después de compilar el archivo .pug, el resultado será el siguiente.
<ul>
<li>
<a class="link" href="#">Abrir menú
<ul>
<li>Opción 1</li>
<li>Opción 2</li>
<li>Opción 3</li>
</ul>
</a>
</li>
</ul>
archivo.pug
ul
li
a.link(href="#") Abrir menú
ul
li Opción 1
li Opción 2
li Opción 3
Después de compilar el archivo .pug, el resultado será el siguiente.
<ul>
<li>
<a class="link" href="#">Abrir menú</a>
<ul>
<li>Opción 1</li>
<li>Opción 2</li>
<li>Opción 3</li>
</ul>
</li>
</ul>
Algunas veces necesitaras agregar un salto de línea cuando este maquetando con pug, para esto se utiliza el pipeline (|)
archivo.pug
p Este es un párrafo largo y quiero
| un link que redirija a
a(href="#") Google
Después de compilar el archivo .pug, el resultado será el siguiente.
<p>Este es un párrafo laro y quiero un link que redirija a <a href="#">Google</a></p>
Así podemos hacer que el código no se vea tan largo y tenga mejor vista.
archivo.pug
p Este es un párrafo laro y quiero
| un link que redirija a
a(href="#") Google
Después de compilar el archivo .pug, el resultado será el siguiente.
<p>Este es un párrafo laro y quiero</p> un link que redirija a <a href="#">Google</a>
Para insertar eiquetas dentro de un texto largo pug facilita el uso de la interpolación con el uso de #[etiqueta contenido]
archivo.pug
p Lorem ipsum dolor sit, amet consectetur adipisicing elit. Adipisci laborum ratione sunt cumque repudiandae. #[span Hola Mundo!!] Ea provident atque quis voluptate in #[a(href="#") fugit] corrupti doloribus, impedit incidunt architecto consequuntur earum quae rem.
Después de compilar el archivo .pug, el resultado será el siguiente.
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Adipisci laborum ratione sunt cumque repudiandae. <span>Hola Mundo!!</span> Ea provident atque quis voluptate in <a href="#">fugit</a> corrupti doloribus, impedit incidunt architecto consequuntur earum quae rem.</p>