Do Jekyll para Middleman
tl;dr
Middleman é muito legal, suporte a vários idiomas, ERB, e vários jeitos de “hackear”. O maior commit dessa migração:
Incluindo a mudança no diretório posts
.
Mas eu tive que fazer mais 3: corrigir o /atom.xml
, adicionar suporte para o Disqus, e um último para remover os arquivos criados pelo Jekyll.
Eu encontrei o Middleman através do Insiter's project, este é um site de evento e como você sabe um site de eventos não precisa de muita programação.
Minha primeira recomendação ainda seria o Jekyll, mas para blogar, não para evento.
Eu só tinha olhado a documentação e sabia que eu queria usar essa app.
Migrando
Vai ser difícil…
Antes de começar eu recomendo que pense duas vezes, eu somente migrei pois o suporte a multi idiomas no Middleman é melhor.
Pros
Como disse, o suporte a multi idiomas é muito melhor. Eu não preciso criar duas páginas para o mesmo conteúdo (por exemplo: /about
e /sobre
), eu posso apenas usar I18n e deixar ambas com o mesmo format.
Por que eu me importo com locale? Para evitar repetir a mesma mensagem, usando I18n a mensagem está num único lugar.
Além disso, eu diria que usar ERB para template é melhor que o liquid. Não sei pq o template padrão é o liquid no Jekyll, mas para mim ERB é melhor para programar.
Você pode ter um “banco de dados” no seu site usando Data Files. Isso é realmente muito útil :)
Crons
Substituir liquid por ERB não é difícil. É possível usar um sed
para substituir {{
por <%=
fácil, mas você vai ter algum trabalho com algo.
Middleman não tem suporte para blog built-in, você vai ter que adicionar uma gem e configurar. Não é difícil de fazer, mas você tem que fazer.
Milti idioma é built-in, mas você tem que ativar.
Hands-on!
Leia a documentação oficial primeiro, vai ser de ajuda!
Crie um novo projeto. O jeito que você escolher para migrar depende somente de você.
Se você usar o mesmo diretório/repo, certifique-se de que tudo está comitado.
Idependente do jeito que escolher, você vai ter que rodar um middleman init
. No meu caso eu não sabia como usar eu tive que rodar o comando duas vezes. Primeira vez:
$ middleman init .
Mais informações em Middleman: Starting a New Site.
Depois de eu ler a documentação eu rodei esse:
$ middleman init . --template=blog
Mais informação em Middleman: Blogging.
Note que tem um .
para usar o diretório atual.
ATENÇÃO: Se você tiver que migrar um blog use esse segundo comando.
Todo o resto é sobre editar os arquivos…
Estrutura de arquivos
Tenho que dizer que eu não gostava do _
no começo de arquivo com o Jekyll.
_config
é agoraconfig.rb
e algumas vezesdata/
_posts/
ésource/posts/
- includes (i. e., partials) de
_includes/
vai parasource/
com o mesmo nome começando por_
- O seu layout vai de
_layouts/default.html
parasource/layouts/layout.erb
- Se você ativar
directory_indexes
(Mais em Middleman: Pretty URLs (Directory Indexes) você vai ter que renomear arquivos de, por exemplo,about/index.html
parasource/about.html.erb
Para migrar do liquid para ERB, eu não recomendo renomear e ver se está tudo ok.
Ao invês disso começe com a home page, e então vá para os posts e depois com as outras partes, como sobre, contatos e feed.
Depois que tudo estiver migrado, você pode fazer algo com os data file: Por exemplo, antes os links para rede social era hardcoded na página, agora eu criei um arquivo data/networks.yml
com todas as minhas redes social e usei um loop para exibir todas.
No meu caso, eu também criei uma seção em cada post chamada Mais nessa série (ou Leia também) e Referências, antes com o Jekyll eu tinha que escrever no próprio post como texto do post, mas agora é tudo gerado baseado nos metadata do post.