Miguel Angel Gordián
@ilcapitanozoek
Sitios multilenguaje
Esta no es una guía desde cero!
Desarrollo
Extraer información
Fragmentar
Deployment
Crear un directorio con la estructura mínima.
    
    jekyll new --blank jekyll_multilenguaje
 New jekyll site installed in ~/poblano_rails/jekyll_multilenguaje. 
.
├── _drafts
├── index.html
├── _layouts
└── _posts
➜
Archivo donde se sobrescriben las variables por defecto o se agregan nuevas variables globales.
# Site settings
title: Laboratorio de Emprendimiento y Transformación
description: > #
  Una comunidad activa enfocada en idear, construir e implementar
  nuevas soluciones que transformen la vida de las personas a través de
  innovación social y emprendimiento público en sectores clave.
url: "http://let-emprendimientopublico.mx/"La varibles definidas en este archivo son accedidas a través de site.
Podemos dar variables por defecto a colecciones de archivos.
defaults:
  -
    scope:
      path: "" # an empty string here means all files in the project
    values:
      layout: "default"
      lang: es
  -
    scope:
      path: "it"
    values:
      layout: "default"
      lang: it.
├── css
   └── poblano_rails.scss
├── _drafts
├── img
       └── poblano_rails.png
├── index.html
├── js
   └── poblano_rails.js
├── _layouts
└── _posts
Darle estructura, estilos y la interacción al sitio.
Nativos
Manual
Puedes agregar la siguiente opción para activar la compresión del css.
sass: style: :compressedSi utilizas @includes coloca estos archivos en el directorio _sass
Liquid procesa todos los filtros y tags que coloques en los assets.
---
---
header {
  margin: 0px;
  background-image: url("{{ t.data.index.img }}");
  padding: 80px;
}Text
Liquid es un motor de templates que fue creado con requerimientos bien específicos
Debe ser no-ejecutable y seguro.
Debe de tener un markup simple y con resultados hermosos.
Debe ser stateless.
Debe ser posible darle estilo tanto a Emails como a HTML.
Estos producen texto y pueden ser acompañados por filtros.
Mantienen la lógica, siendo esta condicional, de asignación, inclusión o iterativa.
Hello {{name}}          
Hello {{user.name}}
Hello {{ 'tobi' | size }}
{% if user.name == 'tobi' %}
  Hola tobi
{% elsif user.name == 'bob' %}
  Hola bob
{% endif %}
Tags logicos
Tags de texto
Debe ser el primer elemento en el archivo y tiene la estructura de yaml.
---
layout: post
title: Blogging Like a Hacker
---Todo archivo que lo contenga debera ser procesado por jekyll como una archivo especial.
Vamos a extraer contenido y colocarlo en un archivo {nombrearchivo}.yaml en el directorio _data.
Solo elementos que permitan crear un esqueleto:
<header class="teal lighten-2">
  <div clas="container">
    <div class="row">
      <div class="center-align"><br>
        <img src="{{ t.header.img.src }}" 
             alt="{{ t.header.img.alt }}"/>
        <p class="white-text">
          {{ t.header.text }}</p>
        <a class="white-text btn-large">
          {{ t.header.button }}</a>
      </div>
    </div>
  </div>
</header>header:
  frase:  >
    Poblano Rails es una comunidad formada 
    por desarrolladores y emprendedores<br>
    fascinados con "Ruby" y con "Ruby on 
    Rails".
  button: Conoce más
  img:
    src: "https://achievement-images.teamtreehouse.com/badges_SimpleFacebook_Stage1.png"
    index.html
_data/es/index.html
Usamos assign, la cual es una etiqueta lógica que viene con liquid.
Todos los archivos que se encuentren en _data son accedidos mediante site.data
{% assign t = site.data[page.lang].index %}Podemos obtener el valor de otra varible usando corchetes.
Agrega una carpeta por cada lenguaje, nombralas con sus iniciales y copia el archivo dentro de ésta.
Agrega el lenguaje como una variable en las configuraciones del archivo.
---
title: Poblano rails
lang: it
---Has lo mismo dentro de _data y traduce su contenido.
Mueve el contenido de index a _layout/index.html
Separa cada sección del layout y colocalas en _includes.
Agrega las secciones con etiquetas includes en el orden que desees o el que diseñaste.
{% include footer.html logo="img/rails.png" %}Añade documentación acerca de los parámetros y la estructura para cada include.
Esta estructura nos permite reutilización y uniformidad en el sitio.
Puedes acompañar jekyll con gollum para generar la documentación.
Solo sube a github tu contenido a la rama gh-pages o directamente a master si el nombre del repositorio es de la siguiente forma:
{usuario}.github.io
git push origin master:gh-pages