Ignacio Ricci (@ignacioricci)
Gerente de Producto @ Mango
"Mi pequeña aventura aprendiendo a programar en node.js."
Un framework para generar sitios HTML estáticos que soporte multi-idioma.
Mi punto de partida era un pequeño "snippet" de código de hace un año que había armado Dan Zajdband.
Porque se me hizo muy tedioso hacer cambios en el sitio de Mango y poder trabajar con traductores.
http://ignacioricci.github.io/
lightning-dogs/
{
"templates":[
{
"name": "index",
"languages": {
"en": "index",
"es": "index"
}
},
{
"name": "breeds",
"languages": {
"en": "breeds",
"es": "razas"
}
}
],
... ...,
"use_layout": true,
"default_language": "en",
"base_url": "http://localhost:3000/www/",
"output_dir": "www",
"assets_dir": "images",
"css_dir": "styles/css",
"sass_dir": "styles/scss",
"fonts_dir": "fonts",
"javascript_dir": "js",
"pretty": true
}img(src="#{assets_dir}hero.jpg", alt="")
.intro
.grid-container.wrap
.grid-column-4-l
h1= hero.title
h2= hero.subtitle{
"hero": {
"title": "Dogs",
"subtitle": "Man's best friend"
}
}{
"hero": {
"title": "Perros",
"subtitle": "Los mejores amigos
del hombre"
}
}each breed in breeds
li.breed
.breed-image
img(src="#{assets_dir
+ breed.image}")
.breed-info
h2= breed.name
p= breed.description{
"breeds": [
{
"name": "English Bulldog",
"image": "english-bulldog.jpg",
"description": "There is something
about these wrinkly, tubby, squat
puppies that just make humans..."
},
{
"name": "Golden Retriever",
"image": "golden-retriever.jpg",
"description": "There is something
about a Golden puppy that makes
everyone smile. They are..."
}
]
}
if (current_language == 'es') {
// Do something
}
if (current_page == 'about'){
// Do something
}
// Devuelve la URL de la página para el idioma que corresponda
page_link('template_name')
// Compilación manual de única vez
node generator.js
// Compilación automática con detector de cambios (watcher)
node watch.js
/* El compilador no sólo compila templates de Jade,
sino que compila SASS a CSS también :) */Prueba y error
StackOverflow
Dan + Guille
Confirmé la importancia de una buena documentación. Mis mayores trabas ocurrieron al enfrentarme con documentaciones poco claras. Especialmente siendo "newbie" todavía.
Si bien hice algo muy simple, no me resulto tan difícil. Hay que animarse a meter las manos en la masa y probar.
Es gratis, divertido, y realmente no hay nada que perder!