tl;dr

Middleman é muito legal, suporte a vários idiomas, ERB, e vários jeitos de “hackear”. O maior commit dessa migração:

100 changed files with 519 additions and 346 deletions

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 é agora config.rb e algumas vezes data/
  • _posts/ é source/posts/
  • includes (i. e., partials) de _includes/ vai para source/ com o mesmo nome começando por _
  • O seu layout vai de _layouts/default.html para source/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 para source/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.