Jekyll é um gerador de sites estáticos focado em blogs escrito em Ruby que alimenta o GitHub Pages.
Estrutura de Diretórios
├── _config.yml # Configuração global do site
├── _drafts/ # Rascunhos não publicados
├── _includes/ # Fragmentos de template reutilizáveis
├── _layouts/ # Layouts de páginas e postagens
├── _posts/ # Postagens publicadas (YYYY-MM-DD-title.md)
├── _data/ # Arquivos estruturados JSON/YAML
├── _site/ # Saída HTML estática compilada
└── index.md # Arquivo inicial da homepage
YAML Front Matter
---
layout: post
title: "Announcing Version 2.0"
date: 2026-11-08 10:00:00 +0800
categories: news tech
tags: [release, ruby]
published: true
---
Sintaxe de Template Liquid
Saída e Variáveis
{{ site.title }}
{{ page.title }}
{{ content }}
{{ post.date | date: "%B %d, %Y" }}
Fluxo de Controle e Iteração
{% if page.comments %}
{% include comments.html %}
{% endif %}
{% for post in site.posts limit:5 %}
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.excerpt }}</p>
{% endfor %}
Filtros Comuns
| Filtro | Descrição | Exemplo |
|---|---|---|
date: "%Y-%m-%d" |
Formatar carimbo de data/hora | {{ page.date | date: "%Y" }} |
truncate: 100 |
Truncar string com reticências | {{ post.content | truncate: 100 }} |
strip_html |
Remover todas as tags HTML | {{ post.content | strip_html }} |
jsonify |
Serializar dados para JSON | {{ site.data.authors | jsonify }} |
markdownify |
Converter Markdown em HTML | {{ text | markdownify }} |
Referência de Variáveis Globais
site.posts: Lista cronológica inversa de todas as postagens.site.pages: Lista de todas as páginas estáticas.site.html_pages: Subconjunto desite.pagesque gera HTML.site.data: Dados brutos carregados dos arquivos_data/*.yml.site.time: Timestamp atual da geração do build.