Axe - meu novo gerenciador de conteúdo estático

This is my rifle. There are many like it, but this one is mine.
(Verso inicial do Rifleman’s Creed)

Reinventar a roda pode não ser uma solução eficiente (às vezes nem eficaz), mas é divertido, estimula o aprendizado e, afinal de contas, você pode terminar o processo com uma roda exatamente do jeito que desejava, feita por você.

O Axe, que publicou a página que você está lendo, é a minha mais recente reinvenção de roda, porque é um sistema de gerenciador de conteúdo de blogs baseado em arquivos estáticos e sem precisar de bancos de dados. Sim, ele é como já existem muitos por aí. O que ele faz de bom? Veja abaixo.

Por que o Axe?

O Axe nasceu para atender a uma demanda minha, e ter um pouco de aprendizado no processo.

O destino de quase todo gerenciador de conteúdo (CMS) que se populariza inicialmente pela sua simplicidade e leveza é se expandir nas direções desejadas pelo público adicional que recebe depois disso, e com isso chegar a um inchaço que pode acabar desagradando a quem aderiu pelos motivos iniciais.


Há 11 anos eu migrei todos os meus blogs, partindo de um sistema de conteúdo estático desenvolvido por mim mesmo e indo para o então cada vez mais popular MovableType. Dois anos depois, devido a mudanças geradas pela popularidade do MT que me desagradaram, migrei dele para o Drupal. Durei 4 anos com ele, até que sua complexidade crescente e upgrades (na época) complicados me levaram ao WordPress.

Em 2013 a história se repete: o WordPress, aquele gerenciador leve e flexível inflou seus recursos, agora tem facilidades de inclusão de mídia, edição avançada, criação dos mais variados tipos de conteúdo, e agrada a cada vez mais usuários (com razão!), mas não é mais a pequena plataforma para a qual migrei em meados da década passada: com o crescimento em recursos, vêm os updates de segurança frequente, a manutenção mais complexa e a redução da eficácia de personalizações sem recorrer a plugins e outros arquivos externos adicionais, que também precisam ser mantidos e atualizados. Que valem muito a pena para quem precisa e gosta do resultado, é claro – e eles são bem mais numerosos do que os insatisfeitos.

Não há falta de outros gerenciadores de conteúdo estático no mercado, e vários potencialmente me atenderiam, mas optei por criar o meu, Do Meu Jeito(tm). Reinventando a roda, aprendi e exercitei vários conceitos e técnicas, e aos poucos o sistema agregou características suficientes para permitir pensar em migrar um blog "a sério" para ele.

Foi assim que surgiu o Axe, que no momento está em estágio pré-alfa e testes internos. Quando ele chegar ao nível de qualidade beta, adequado para testes por outros usuários, penso em disponibilizá-lo sob uma licença open source, mas não posso predizer quando isso acontecerá.

O que o Axe faz

No momento o Axe é um sistema em PHP que, a partir de arquivos contendo apenas o título e o corpo do post, em formato texto ou HTML (com hooks já prontos para inclusão de filtros adicionais, como MarkDown, textile ou txt2tags), gera toda a estrutura típica de um blog: índices, feed, tags, etc.


Acima você vê um arquivo de entrada do Axe. Note que ele é composto de um título, uma URL que será o ícone do post, e a partir daí vem o conteúdo textual do post, podendo incluir tags HTML à vontade, se desejado (mas não precisa), bem como outros formatos ativados no sistema (MarkDown, txt2tags, Textile, etc.). Alguns campos a mais poderiam estar presentes, cada um em uma linha, incluindo tags de classificação (temas, categorias) e outros, mas os obrigatórios são os do exemplo.

Tanto o arquivo de entrada quanto o arquivo gerado pelo Axe e que será exibido ao leitor do blog são puramente declarativos, e aqui temos a diferença essencial em relação a gerenciadores dinâmicos (como o Drupal ou o WordPress), que permitem que a página processada no momento de exibir ao leitor seja imperativa, e assim contenha condições, repetições, etc.

As definições de layout, que no caso do Axe são usadas apenas no momento da inclusão (ou alteração) de cada novo artigo, podem ser declarativas ou imperativas, à escolha do criador de cada tema.

Já o fluxo de publicação é o usual, passando pelos estágios de draft, preview e post (e eventualmente update). Os posts gerados pelo sistema são em puro HTML5, sem nada de PHP. O sistema gerador é em PHP, e dispensa bancos de dados: entra texto, sai texto.


O layout/tema usado como default para os arquivos gerados pelas versões pré-alfa e alfa ainda está sendo refinado, mas já nasceu responsivo, adaptando-se automatica e transparentemente às larguras de telas de smartphones, tablets e desktops. Ele é baseado no layout desenvolvido originalmente pelo Brett Terpstra, sem o qual eu não teria saído do zero no que diz respeito ao atual tema default.

O funcionamento baseado em arquivos estáticos impede a inclusão no Axe de um sistema de comentários interno, mas a existência de plugins como o Disqus, IntenseDebate e Facebook Comments ameniza bastante essa falta. Não planejo oferecer outra solução para esta situação.

O mais interessante: retirando a documentação, o arquivo de configuração do Axe (acima) tem apenas 33 linhas (onde são definidos os diretórios do blog, o nome do autor, a URL, o fuso horário, quantos posts devem sair na capa e no feed, etc.), e nas minhas instalações de teste foi mesmo possível instalar e migrar entre máquinas editando apenas este arquivo (exceto quando o interpretador PHP não estava onde o script esperava encontrá-lo...)

Basicamente ele exige um editor de texto, proficiência no Terminal (não sei se algum dia vou desenvolver uma interface web para operá-lo) e que haja o PHP 5 no ambiente onde forem realizadas as conversões.

Em algum momento futuro ele estará disponível para download e testes. No momento atual, você pode ver o meu teste prático dele em trilux.org/temp, em que há uma cópia (já desatualizada) do BR-Mac,org, migrada (automaticamente) do WordPress para o Axe.

Mas cuidado, eu estou frequentemente operando por lá, e você pode chegar bem em um momento em que um teste está em andamento ou deu errado ツ

FAQ

Por que esse nome estranho?
R. Axe significa machado, que me parece uma metáfora interessante para a abordagem do Axe, comparado à bancada de múltiplas serras circulares, fita e tico-tico de outras ferramentas por aí.

O Axe está disponível para download?
R. Não.

O Axe estará disponível para download?
R. Sim, sob uma licença livre.

Quando o Axe estará disponível para download?
R. Não sei, mas quando ele passar do estágio alpha, documentarei, empacotarei e disponibilizarei. E avisarei.

Isso não é reinventar a roda?
R. Sim

Você chegou a testar a ferramenta Tal?
R. Provavelmente não, o que não quer dizer que ela não me atenderia, ou não lhe atenderia.

Por que ele não tem o recurso Tal?
R. Provavelmente eu não preciso dele, ou ele ainda consta na minha lista de pendências. Depois que eu disponibilizar para download, os interessados poderão inclui-lo, se existirem e desejarem.

Por que eu deveria usar o Axe, e não outra ferramenta?
R. Provavelmente você deveria usar a ferramenta de sua preferência.

Essas perguntas não parecem o FAQ do Marco Arment?
R. Sim, boa parte delas vieram de lá, mas as respostas nem sempre coincidem.

Comentar

Comentários arquivados

Mais acessados:

Artigos recentes: