Vocês já devem ter percebido que o layout do NeoMatrix Tech (e anteriormente o NeoMatrix Light) mudou na virada para dia 19/09/2013: ficou mais simples, mais rápido para carregar, as cores mudaram, a home não tem tantas “firulas” como a anterior, entre outras coisas.

Nova cara do NeoMatrix Tech

Mas a mudança não foi somente externa. Internamente a mudança foi radical: saiu o WordPress que rodava desde Março/2010 (sendo atualizado em alguns períodos) e agora os meus sites são compostos de páginas HTML puras. Isso mesmo, camarada! A página que você está vendo agora, com todos os widgets na lateral, adsenses, sistema de comentários e de compartilhamento em redes sociais e o escambau é uma “simples” página HTML estática! Nada de banco de dados, de PHP, de ASP.NET. Só HTML + CSS + JavaScript.

As páginas agora são geradas através de um “CMS estático”, que recebe um arquivo de entrada em formato texto preparado especialmente para ele, mescla com um template (um conjunto de páginas HTML com placeholders para receber os itens) previamente definido e gera as estruturas básicas do blog: índices, feed RSS, sitemap e tags. Todo o resto é composto de elementos externos: sistema de comentários Disqus e Facebook Comments, botões para compartilhamento e outros.

O WordPress é um ótimo gerenciador de conteúdo, porém as notícias frequentes de vários sites que o executam sendo invadidos, tudo isso gerando constantes atualizações do mesmo me deixaram com um pé atrás. E uma atualização de WordPress em um site não vem sozinha. Além do core, tem que correr atrás de atualizações de temas e plugins, fora o trabalho que dá para reconfigurar tudo, principalmente se o tema foi customizado.

O que me motivou a construir o meu próprio gerenciador de conteúdo estático foi a mudança dos sites do Augusto Campos (br-linux, br-mac e Efetividade) para um gerenciador construído pelo próprio, o Axe. Após ele anunciar esse plano, me motivei e fiz o meu próprio programa, utilizando a tecnologia que eu domino mais: C#, na plataforma Microsoft .NET.

Ele é composto de uma biblioteca de classes com funções para gerar as estruturas do blog. A esta biblioteca, adicionei interface gráfica e atualmente eu escrevo um post no Windows Live Writer, copio o fonte gerado para um arquivo texto, preencho em alguns campos, indico o caminho na interface gráfica do gerenciador, gero o site e faço upload manual das estruturas necessárias. Exato, por enquanto ele não roda diretamente no servidor Web, porém isto está em planos de ser feito.

A migração dos sites foi um pouco trabalhosa, já que os posts continham itens desde de quando eram hospedados no Blogger, do Google. Primeiro exportei os posts do WordPress no formato RSS, após isso gerei os arquivos TXT preparados para o CMS estático através de uma função que lê o RSS do WordPress.

Após os TXTs ficarem prontos, abri um a um e necessitei de refazer uma parte da formatação HTML, principalmente no que diz respeito aos parágrafos, já que em alguns posts não existia a marcação dos mesmos. Fora isso, fiz download de todas as imagens que estavam referenciadas e coloquei-as dentro do site. Algumas imagens estavam no Picasa, enquanto outras eram hospedadas nos diretórios de mídia do WordPress. Agora todas elas estão em um mesmo local, sem a “zona” feita pelo gerenciador de mídia do WordPress.

No NeoMatrix Tech teve um trabalho a mais: todos os exemplos de códigos que utilizavam um plugin do Windows Live Writer (que gerava um HTML monstro) agora são apresentados usando um plugin JavaScript chamado Syntax Highlighter.

Depois de gerar um build do site, hora de importar os comentários para o Disqus. Gerei um novo arquivo XML no formato do Wordpress, copiando para dentro dele apenas os posts que continham comentários e alterando manualmente o link de referência.

E quem faz uma pesquisa através de um mecanismo, o link antigo está quebrado? Para os links diretos para os posts, cujo permalink é formado pelo título do post o acesso é redirecionado para a página correta através de uma página de erro 404 inteligente. Essa página é a única coisa que roda em ASP.NET: ela intercepta a requisição, captura a parte do permalink que é o título da página e faz uma pesquisa em uma lista de links. Se achou, é gerado um redirecionamento 301 para a página correta. Já para os demais links (de tags, datas, etc.) ele é direcionado para a homepage ou a página de erro 404 é exibida, aí não teve jeito :(.

Teve algumas perdas na migração, claro: widgets laterais de quantidade de comentários e os recentes (dá para fazer utilizando a API do Disqus, mas ainda não testei) e os comentários feitos via Facebook no site anterior, afinal, a URL que contém o post mudou. E claro, o já citado “trampo” que terei de fazer o upload manual de posts enquanto não faço o CMS rodar na Web.

Mas os ganhos, seja em velocidade e segurança, já que não existe mais BD e o backup ficou super simples) são bem maiores do que essas perdas, eu acho.

Enfim, agora que já fiz a migração dos dois sites, pretendo postar mais vezes, já que isso aqui meio que ficou às traças por um bom tempo, né!