Cleansing Jekyll YAML Front Matter Dates

Ao atualizar um dos meus sites estáticos para a pilha Heroku Cedar , aproveitei a oportunidade para atualizar o Jekyll para a versão mais recente, atualmente 1.3.4.

Após a atualização, regenerei meu site do zero para ter certeza de que tudo estava funcionando. Infelizmente, parece que houve algumas mudanças que quebraram a geração de postagens por causa de uma estranheza de análise de data YAML . Isso faz com que suas postagens recebam a data errada: +11 horas para mim, já que meu fuso horário local é GMT + 11 (Sydney, Austrália), portanto, em alguns casos, minhas postagens parecem ter sido escritas um dia depois da realidade.

Enquanto os mantenedores do Jekyll debatem como corrigir o problema, decidi resolver o problema e apenas citar todas as datas na matéria inicial do YAML do meu site.

Para conseguir esse feito, escrevi um script bash rápido para modificar todos os posts no local:

#!/bin/bash

all_markdown_posts
() {
find _posts
/ -iname '*.md'
}

fix_date_yaml
() {
sed
-i '' -e "s/^date: (.*)$/date: '1'/" $1
}

main
() {
for md_file in $(all_markdown_posts); do
fix_date_yaml $md_file

done
}

main

Execute-o de dentro do diretório raiz do seu site estático (ou modifique a all_markdown_posts()função para retornar uma lista dos arquivos markdown que você deseja alterar).

Seus arquivos ficarão assim:

...
date
: '2013-02-01 16:54:17'
...

E o Jekyll irá gerar suas postagens com a data correta.