Criando um script para inicializar minhas postagens no Jekyll
Motivação
Eu acho muito legal a ideia de fazer as postagens do Jekyll usando só o markdown, mas uma coisa que me aborreceu desde o princípio foi o fato de ter que fazer na mão o arquivo com aquela header TODA VEZ.
O lance é que a preguiça é uma bênção para o programador e eu decidi aproveitar que quero me tornar um h4x0r mestre no shell script e fazer algo que montasse um template de postagem e já salvasse o arquivo do jeitinho que o Jekyll gosta.
O script
#!/bin/bash
# script pra criar header dos posts do Jekyll já com a data certa
nome_arquivo=$1
data_arquivo=$(date +"%Y-%m-%d")
arquivo="${data_arquivo}-${nome_arquivo}.md"
echo "Criando arquivo $arquivo"
echo "---" >> $arquivo
echo "title: " >> $arquivo
echo "layout: post" >> $arquivo
echo "date: $(date +"%Y-%m-%d %H:%M")" >> $arquivo
echo "image: " >> $arquivo
echo "headerImage: false" >> $arquivo
echo "tag: " >> $arquivo
echo "category: blog" >> $arquivo
echo "author: giovanamorais" >> $arquivo
echo "description: " >> $arquivo
echo "---" >> $arquivo
vim $arquivo
Como usar
Você pode jogar na pasta _posts/
do seu projeto ou em /usr/local/bin
se desejar que ele possa ser chamado de qualquer pasta. Aí é só dar o comando
./create_post.sh nome-do-arquivo
que ele já vai gerar um arquivo .md
com a data do dia e inserir as informações
básicas (no caso do script ali em cima, as minhas informações). Depois disso,
abre o arquivo no vim
, que é o editor que eu uso.
Próximos passos
O script inicial é a coisa mais simples do mundo e está disponível aqui, junto com outros scripts aleatórios que eventualmente eu acho útil.
Efetivamente falando, os próximos passos seriam:
-
Ajustar o script pra receber uma string digitada normalmente em vez de uma-string-já-formatada.
-
Pensar em uma maneira de fazer um arquivo de configuração pra setar algumas variáveis como editor de texto, autor e etc sem ter que fazer isso hard-coded.
-
Ou mesmo colocar um parâmetro do tipo
--editor vim
ou--editor nano
e deixar isso parametrizável. Seria brabo demais.