Download do CMS Axe - versão 0.93, de junho de 2013

Atenção: esta não é a versão atual. Visite: Axe 0.98a.2 - Download e instruções de uso.

O texto abaixo fica preservado para propósito de histórico.

A versão atual do gerenciador de conteúdo estático Axe é a 0.93, disponibilizada em 16.06.2013. Saiba mais: o que é o Axe.

Atenção: trata-se de versão Alfa, e seu público-alvo são os desenvolvedores interessados em testá-lo. Após um período de testes alfa, previsto para durar 3 semanas, o Axe deve entrar em versão beta, já voltada a testes por usuários, e incluindo o script de importação de blogs baseados no WordPress.

Atualmente a instalação exige algum conhecimento de administração de servidores, e intimidade com o terminal e a shell.

Lendo os artigos "Estrutura de diretórios e arquivos do Axe" e "O arquivo de configuração do Axe" você deverá estar apto a instalar e configurar.

O artigo "Comandos básicos do Axe" explica como operá-lo, o "Como nasce um post no Axe: o arquivo de entrada" explica como é criado um post, e em "As variáveis de exibição para usar no seu tema" você descobre como personalizar seu visual.

A documentação sobre o agendamento e priorização de posts e sobre a interface de plugins, que são recursos já existentes no sistema, deve surgir em conjunto com a versão beta, no início de julho.

Atenção: o Axe vem com 2 arquivos .htaccess que, em servidores web com configurações comuns e suporte ao mod_rewrite, impedirão que sites de busca indexem os arquivos de dados do Axe, sem impedir que eles indexem normalmente o conteúdo que você publicar. Se o seu servidor tiver necessidades especiais, configure-os de acordo.

Recomendação expressa e clara: instale esta versão do Axe em um diretório à parte no seu sistema, e não dependa dela para nada antes de testar se ela faz o que você deseja. O Axe foi criado para meu uso pessoal e será um prazer se você também tiver interesse em usá-lo, mas não ofereço nenhum suporte ou garantia.

Dica extra: a primeira linha do arquivo axe/axe.php é #!/usr/bin/php e aponta para a localização do interpretador do PHP nos servidores mais comuns. Se necessário (por exemplo, se você receber o erro "Bad interpreter"), edite-a para apontar para a localização correta do PHP 5.3 ou superior no seu sistema, que o provedor de hospedagem poderá lhe informar. No caso do Dreamhost, por exemplo, ela deve ficar assim: #!/usr/local/bin/php-5.3

O Axe é software livre e open source, sob a licença Apache 2.0.

Download desta versão alfa do Axe: axe-2013-06-16-2353-269348.tar.gz.

Não há suporte, nem serviços. Para relatar problemas, enviar a solução deles ou buscar recorrer à ajuda dos demais usuários, inscreva-se na lista axe-users.

O que é o Axe

O Axe, que publicou a página que você está lendo, é um sistema gerenciador de conteúdo estático, open source e especializado na geração de blogs.

O Axe dispensa banco de dados e recursos na nuvem e, na hora de exibir uma página ao usuário, não precisa de PHP nem de Javascript, pois as páginas são armazenadas completas, em HTML5 e CSS, prontas para exibição.

As atividades de administração do Axe ocorrem via linha de comando, no Terminal, portanto ele exige que você tenha acesso shell (SSH ou similar) ao seu servidor de hospedagem e saiba usá-lo. Ele também exige que o PHP esteja disponível na linha de comando, embora dispense a ativação do mod_php no servidor web, já que o interpretador PHP é usado apenas em modo shell, no momento da publicação ou gestão do conteúdo.

O que o Axe faz

O Axe está em operação contínua desde 2013, e é responsável por bases de porte considerável – no meu blog BR-Linux, por exemplo, ele gerencia um acervo de 7.191 posts, publicados a partir do momento em que migrei do WordPress, em 2013.

Um CMS com arquivos estáticos, processados apenas no momento da inclusão ou edição, que dispensa bancos de dados.

No momento em que atualizo esta documentação (em 2026), o Axe é um sistema em PHP modo shell que, a partir de arquivos contendo apenas o título e o corpo do post, em formato texto ou HTML (com hooks já prontos mas ainda não documentados para inclusão de filtros adicionais, como MarkDown, textile ou txt2tags, para os interessados), gera toda a estrutura típica de um blog: índices, feed, tags, sitemap, etc.


Print de janela do editor de texto BBEdit
Tela de editor de texto mostrando o arquivo-fonte correspondente ao post do Axe que você está lendo neste momento.

Acima você vê o arquivo de entrada do Axe correspondente a uma versão anterior do post que você está lendo. Note que ele é composto de um título, uma linha (opcional) definindo tags, e a partir daí vem o conteúdo textual do post, podendo incluir tags HTML à vontade, se desejado (mas não precisa - escrever em TXT com parágrafos separados por linhas em branco também gera posts adequadamente formatados). Alguns campos a mais poderiam estar presentes, cada um em uma linha, incluindo tags de classificação (temas, categorias) e outros, mas o único obrigatório é o título.

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, loops, etc.

Da mesma forma, as definições de tema ou layout, que no caso do Axe são usadas apenas no momento da inclusão (ou alteração) de cada novo artigo, também são declarativas.

Já o fluxo de publicação operado pelos comandos básicos do Axe é o usual, passando pelos estágios de draft ou rascunho, 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 rodando em modo shell (ou seja: completamente independente do seu servidor web), e dispensa bancos de dados: entra texto, sai texto.


O layout/tema incluído como default para os arquivos gerados pelas versões pré-alfa e alfa continua a ter o mesmo visual que tinha em 2013, mas já nasceu responsivo, adaptando-se automatica e transparentemente às larguras de telas de smartphones, tablets e desktops.

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 sucessores modernos para plugins clássicos como o Disqus e IntenseDebate ameniza bastante essa falta, caso você deseje ter comentários associados aos seus posts. 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 possível (de verdade!) 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 o Axe 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 8 disponível na shell do ambiente onde forem realizadas as conversões.

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í (que também tem o valor delas).

O Axe está disponível para download?
R. Sim.

O Axe é open source?
R. Sim, sob a licença Apache 2.0.

O Axe é software livre?
R. Sim, sob a licença Apache 2.0.

Fazer um novo CMS textual 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. Como o Axe é open source, 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.

Por que o Axe?

O Axe nasceu para atender a uma demanda minha, e ter um pouco de aprendizado no processo – eu não imaginava que ele seria a minha opção para uso em produção, mas faz mais de uma década que ele ocupa continuamente essa posição.

A razão de eu ter decidido criá-lo passa por um fenômeno que eu precisei enfrentar 3 vezes: o destino de quase todo gerenciador de conteúdo (CMS) que se populariza inicialmente pela sua simplicidade e leveza é inchar, ao se expandir nas direções desejadas pelo público adicional que ele recebe ao se popularizar.

Tudo começou quando, na virada do século, eu migrei todos os meus blogs, partindo de um sistema de conteúdo estático desenvolvido por mim mesmo e indo para o (na época) 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 repetiu: o WordPress, aquele gerenciador que eu achava leve e flexível inflou seus recursos, passou a ter tem facilidades de inclusão de mídia, edição avançada, criação dos mais variados tipos de conteúdo, algo que agradava e agrada a cada vez mais usuários (com razão!), mas não era mais a pequena plataforma para a qual migrei em meados da década anterior.

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 como eu.

Não havia 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, o que aconteceu ainda no mesmo ano.

Foi assim que surgiu o Axe, que desde 2013 permanece em estágio alfa, mas já implementa 100% dos recursos que mapeei para ele, razão pela qual ficou até 2026 sem nenhuma nova versão (apesar do uso contínuo e estável em sites como o BR-Linux, Efetividade e Trilux) – e em 2026 foi atualizado exclusivamente para garantir a compatibilidade com o PHP 8.

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ê. Faz mais de 12 anos que decidi reinventar a roda com o Axe, e jamais me arrependi.

Estrutura de diretórios e arquivos do Axe

A sua instalação do Axe é composta de uma série de pastas e de arquivos, que devem seguir uma estrutura específica refletida no seu arquivo de configuração geral (axe_config.php).

Vamos imaginar que você descompactou o Axe no seu servidor, no diretório /users/fulano/www/blog. No primeiro nível, logo após a descompactação, você verá os 4 diretórios básicos do Axe:

  • /users/fulano/www/blog/axe
  • /users/fulano/www/blog/axethemes
  • /users/fulano/www/blog/axepreview
  • /users/fulano/www/blog/links

Para maior clareza, a partir de agora vamos nos referir a eles apenas pelos nomes (ou seja: axe, axethemes, axepreview e links).

Além dos 4 diretórios acima, a operação do Axe criará junto a eles mais arquivos e diretórios: o feed, o index, as tags e, em um diretório criado para cada ano, os posts em HTML.

Os 4 diretórios básicos do Axe

Os 4 diretórios básicos são criados no momento da descompactação do Axe na pasta em que você vai criar seu blog. Eis as suas funções:

  • axe: armazena o Axe em si (executáveis, bibliotecas e configuração), bem como os arquivos de dados que geram o conjunto de posts, tags, indexes, feed e sitemap a cada rebuild.
  • axethemes: abriga um ou mais temas, que são diretórios contendo o formato do index, dos posts e dos feeds, bem como complementos na forma de estilos CSS, imagens e mais.
  • axepreview: diretório onde são gravadas as versões preliminares de posts para visualização pelo autor, sem publicação.
  • links: diretório para compatibilidade com URLs numéricas (estilo "? p=999") de blogs importados do WordPress.

Estrutura do diretório axe

O diretório axe é o mais importante para o ciclo de vida do seu blog, e no conteúdo dele se destacam:

  • axe.php - é o executável pelo qual você passará, através dos parâmetros do axe.php, todos os seus comandos de publicação e administração do blog.
  • axe_config_exemplo.php - é o exemplo de arquivo de configuração do Axe, que você deve copiar para axe_config.php, no mesmo diretório, e editar de acordo com os dados do seu blog e servidor.
  • staging - é onde você deve gravar seus arquivos-texto de entrada, que serão pré-publicados pelo comando axe.php -d
  • drafts - é onde o Axe armazena os posts pré-publicados pelo comando axe.php -d, prontos para serem pré-visualizados, publicados ou atualizados usando os parâmetros -v, -P e -U do Axe.
  • descriptors - é onde os arquivos de dados correspondentes aos posts e tags são armazenados e catalogados internamente pelo Axe. Os arquivos HTML publicados não residem aqui, e sim no diretório principal do seu blog (no nosso exemplo, /users/fulano/www/blog)
  • plugins - é onde são armazenados os plugins (ainda não documentados).
  • authors - é onde você pode armazenar arquivos descritivos dos autores do seu blog. Por exemplo, se um post tiver como autor "Augusto César Campos", e neste diretório constar um arquivo augusto-cesar-campos.html, o conteúdo dele ficará disponível para exibição junto ao texto, caso o seu tema faça uso da variável de exibição %%POSTBIO%%.

Estrutura do diretório axethemes

Dentro do seu diretório axethemes vem pré-instalado o tema Panzer, criado especificamente para o Axe, com recursos simples de tipografia, uma coluna lateral direita, um cabeçalho e um rodapé.

Ele foi construído para adaptar-se automaticamente a larguras comuns de desktops, smart TVs, tablets e smartphones, e está à sua disposição para edição.

Comece pelo arquivo panzer/footer.php, que é onde estão definidas tanto a barra lateral quanto o rodapé. Não há problema em remover as menções ao Axe que vêm pré-instaladas, a licença open source do Axe permite ツ

As definições de estilo estão todas no arquivo panzer/css/style.css, e as referências ao conteúdo dos seus posts e aos parâmetros do seu blog são feitas por meio das variáveis de exibição, sempre apresentadas entre 2 pares de sinais de percentual. Exemplo: %%POSTAUTHOR%%

Você pode criar outros temas, armazenando-os em diretórios vizinhos ao panzer, dentro do axethemes. Não esqueça de editar o arquivo axe/axe_config.php para ativá-los.

Recomenda-se não editar o tema panzer mantendo-o no mesmo diretório original, pois um upgrade ou reinstalação do Axe irá sobrepor as suas alterações. Mude o seu nome, ou copie-o.

Se os seus temas ficarem legais e você desejar disponibilizá-los sob uma licença open source, entre em contato informando a URL onde os interessados podem encontrá-lo, juntamente com uma screenshot correspondente!