Eu simplesmente não acredito nisso!

Longos foram os tempos que eu tive este blog, ô nostalgia!

Este blog surgiu na época em que eu ainda não trabalhava, e durou até +/- o meu 2º mês de serviço. Desde então, eu fiz tantas mudanças e tantas reviravoltas que simplesmente eu achava que essa versão do site tinha virado uma história que só estava presente na minha cabeça e na de mais 3 pessoas:

  • Um primo meu
  • Um amigo meu
  • A minha namorada

Mas, essa parte de ter durado até +/- o meu 2º mês de trabalho foi o que salvou esse carinha, porquê o símeo que está escrevendo aqui, achou na época uma ótima ideia de fazer um backup no computador do trabalho ._.

Mentira, não era backup coisa nenhuma, eu provavelmente estava desenvolvendo a versão feita usando Emacs desse site. Pois é, até isso eu usei. Ainda está no ar (por enquanto), o link é esse aqui.

A maior diferença dele

Esse site usa um SSG diferente da versão então mais recente, que usa Jekyll, ele usa o Lume!

O Lume é um SSG feito pelo pessoal do [Deno.land], um runtime Javascript/Typescript, e que em si, é feito usando Typescript. E olha, o bichinho é rápido viu.

Além disso, o Lume usa uma templating engine diferente do Jekyll também, ele usa o Vento.js no lugar do Liquid. As diferenças são mais práticas do que parecem na realidade.

A Liquid é apenas uma templating engine, com parâmetros pré-definidos, enquanto o Vento.js te permite usar JAVASCRIPT para fazer ações customizadas/processar o conteúdo, ou seja, você pode fazer qualquer coisa praticamente.

MUITOS PLUGINS ÚTEIS

A minha configuração atual é a seguinte:

import lume from "lume/mod.ts";
import feed from "lume/plugins/feed.ts";
import lightningCss from "lume/plugins/lightningcss.ts";
import minifyHTML from "lume/plugins/minify_html.ts";
import pagefind from "lume/plugins/pagefind.ts";

const site = lume({
  src: "./src",
  dest: "./out",
  server: {
    open: false,
  }
});


site.ignore("README.md", ".git", ".gitignore");

site.script("update", "git add . && git commit -m 'Update' && git push");

site.copy([".woff2", ".png", ".webp", ".jpg", ".ico", ".gif"]);

site.loadAssets([".js", ".json"])

site.use(pagefind())

site.use(minifyHTML())

site.use(lightningCss({ includes: "assets/css/" }))

site.use(feed({
  output: ["/feed.xml", "/feed.json"],
  query: "type=post",
  info: {
    title: "=site.title",
    description: "=site.description",
  },
  items: {
    title: "=title",
    description: "=excerpt",
  },
}));

export default site;

Os plugins em si são:

  • o creador de feeds rss e json
  • o minificador de HTML
  • o minificador de CSS
  • a search engine do site

Todos eles sendo bem simples de instalar, bastando apenas um import e pronto! Sem a necessidade de usar um arquivo separado para listar os plugins que deseja, configurar esses plugins no arquivo de configuração do site e depois rodar um comando que não é o comando que você usa para GERAR o site... te soa familiar, Jekyll?

Gemfile -> _config.yml -> bundle

LumeCMS

E claro, a cereja no bolo, esse carinha tem um freaking CMS! Que inclusive, é bem simples de se configurar e de utilizar.

Ele basicamente facilita na criação de conteúdo, dando menus, botões e listas que você preenche com as informações da postagem e, claro, escreve o conteúdo em si.

Ele também é configurado da mesma maneira que o site em si, só que em um arquivo diferente, o _cms.js (ou _cms.ts, caso você esteja usando Typescript).

Vou fazer algumas mudanças ainda

O que eu planejo fazer é uma espécie de combinação entre esse site e o anterior, feito com Jekyll.

E uma das coisas que esse carinha precisa, é de um belo carinho do meu CSS atual.

Outra coisa que vou ter que fazer é basicamente re-aprender a usar o Vento.js, e mais importante, vou ter que me lembrar de como navego nessa code-base.

Vou nessa!