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: :compressed
Si 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