Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sitios multi lenguaje con Jekyll

zoek
June 26, 2015

Sitios multi lenguaje con Jekyll

Jekyll es una poderosa herramienta que permite adaptarla fácilmente a nuestras necesidades.

zoek

June 26, 2015
Tweet

More Decks by zoek

Other Decks in Programming

Transcript

  1. Generación Generación 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 ➜
  2. _config.yml _config.yml 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/"
  3. 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
  4. Desarrollo Desarrollo . ├── 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.
  5. 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; }
  6. Text Liquid Liquid 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.
  7. Estos producen texto y pueden ser acompañados por filtros. 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 Mantienen la lógica, siendo esta condicional, de asignación, inclusión o iterativa.
  8. Front Matters Front Matters 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.
  9. Extracción Extracción Vamos a extraer contenido y colocarlo en un

    archivo {nombrearchivo}.yaml en el directorio _data. Solo elementos que permitan crear un esqueleto: Texto Imágenes Enlaces Clases, muy especiales <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/badg index.html _data/es/index.html
  10. Obtener el contenido Obtener el contenido 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.
  11. Nuevos lenguajes Nuevos lenguajes 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.
  12. Fragmentación Fragmentación 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" %}
  13. 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.
  14. Deployment Deployment 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
  15. Recursos Recursos Repositorio de la charla Haml en jekyll Manten

    tus claves a salvo CI para jekyll Livereload con jekyll Genera tus comandos