# Creando mi propio Static Site Generator - 03
## Que vamos a hacer
Ya tenemos el HTML de nuestros post ahora le tenemos que dar vida con un poco de CSS y un template para que todos tengan la misma estructura.
## Desarrollo
Para utilizar los templates vamos a instalar Handlebars.js que es un template engine mínimo en nuestro proyecto de Deno corriendo el siguiente comando.
deno install npm:handlebars
Y luego lo importamos en nuestro main.ts.
import Handlebars from "handlebars";
Creamos una carpeta donde vamos a guardar los templates dentro de nuestro proyecto de Deno y creamos un template simple.
<html lang="es-AR">
  <head>
    <!--Meta data de render-->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!--Título de la página-->
    <title>Mi blog</title>
    <!--SEO-->
    <meta name="description" content="Este es mi blog">
    <meta name="keywords" content="HTML, CSS, JavaScript, TypeScript, tutorial">
    <meta name="author" content="Mi nimbre">
    <meta name="robots" content="index, follow">
    <!--Favicon-->
    <link rel="icon" type="image/png" href="favicon.png">
    <!--Tarjetas para redes sociales-->
    <meta property="og:title" content="Título para compartir en redes">
    <meta property="og:description" content="Descripción en redes">
    <meta property="og:image" content="https://ejemplo.com/imagen.jpg">
    <meta property="og:url" content="https://ejemplo.com">
    <meta name="twitter:card" content="summary_large_image">
    <!--Estilos-->
    <link rel="stylesheet" href="styles.css">
    <!--Fuentes-->
    <link
      href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"
      rel="stylesheet"
    >
    <!--Scrips-->
    <script src="script.js" defer></script>
  </head>
  <body>
    {{{content}}}
  </body>
</html>
[!NOTE] Los headers de ese template son ejemplos y vas a tener que codificarlos según corresponda
Ahora al comienzo de nuestro programa cargamos el template.
const template = Handlebars.compile(
  Deno.readTextFileSync("./template/base.html"),
);
Y volvemos a modificar la función que crea los archivos, para que ejecute el template y con el resultado cree el archivo.
function createTreeOnFileSystem(tree: Tree, path: string) {
  if (tree.childrens) {
    Deno.mkdirSync(`${path}/${tree.name}`);
    for (const c of tree.childrens) {
      createTreeOnFileSystem(c, `${path}/${tree.name}`);
    }
    return;
  }
  const name = tree.name.split(".");
  if (name[name.length - 1] !== "md") {
    Deno.copyFileSync(tree.path, `${path}/${tree.name}`);
  } else {
    const mdFile = Deno.readTextFileSync(tree.path);
    const content = converter.makeHtml(mdFile);
    Deno.writeTextFileSync(
      `${path}/${tree.name.replace(".md", ".html")}`,
      template({ content }),
    );
  }
}
Con estos cambios ya completamos el MVP de nuestro blog, ahora solo queda escribir posts y publicar.