Emacs

Olha só quem voltou! E mais uma vez com o site completamente mudado!

Pois é, estou de volta, e dessa vez trago comigo algumas novidades em relação ao site e ao meu setup atual (spoiler: tá tudo no Emacs). Emacs, que saudades que estava de você!

A um tempo eu vim tendo essa vontade de voltar a usar o Emacs, mas a preguiça de ter que refazer a minha config do 0 era muito grande, até que bem, vamos dizer que o hiperfoco atacou e eu refiz a minha configuração de qualquer jeito.

A maior diferença é que eu já tenho alguma experiência no assunto, então não tive muita dificuldade em fazer essa nova config. Posso inclusive dizer que esta é, até o momento, a melhor configuração que eu já fiz até agora.

Org-mode, o criador de sites mais prático que conheço

Apesar de ter usado diversos SSG's nos últimos tempos, nenhum deles possui a praticidade de simplesmente gerar uma página HTML a partir de um buffer que esteja aberto no seu editor com a mesma facilidade que o Emacs junto do Org-mode conseguem ter.

Esse site inteiro foi refeito utilizando essa ferramenta de gereção de sites nativa do Emacs.

Zero JavaScript

Mais uma vez, estou com 0 JS presente neste site, o que por si só já é uma conquista e tanto, afinal, quanto menos JS, melhor.

E não é porque eu não tenho JS que eu perco coisas como Table-of-contents ou Syntax-highlighting, nada disso, ambos são coisas nativas do org-mode, feitos para serem utilizados e abusados.

Ele também é o melhor highlighter que eu já usei, porque literalmente qualquer coisa que eu tenha um syntax highlight no Emacs fica com o mesmo syntax-highlight no site gerado.

Quase um SSG… Quase.

Apesar de tudo, o org-mode não vem com um SSG, essa função na realidade é uma ferramenta de publicação de artigos, tanto que o nome do pacote é ox-publish. Ainda assim, com um script simples e um pouco de elisp, você consegue ter um pouco do que um SSG consegue te oferecer.

E quando eu falo um pouco, eu não tô de sacanagem, isso é tudo o que eu preciso para ter meu site na forma em que eu quero:

Configurando o ox-publish e automatizando o processo de criação de HTML.

(require 'ox-publish)
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(package-initialize)
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
(eval-when-compile
  (require 'use-package))
(use-package htmlize
  :ensure t)
(use-package kanagawa-themes
  :ensure t
  :init (load-theme 'kanagawa-wave t))
(require 'htmlize)
(setq org-html-head "<link rel=stylesheet href=\"/assets/css/styles.css\" />"
      org-html-head-include-default-style nil
      org-html-head-include-scripts nil
      org-html-preamble nil
      org-html-postamble nil
      org-html-use-infojs nil)
(setq org-publish-project-alist
      (list
       (list "Tukain's Blog"
             :base-directory "./content"
             :recursive t
             :htmlized-source t
             :publishing-directory "./public"
             :section-numbers nil
             :publishing-function 'org-html-publish-to-html)))
(org-publish-all t)
(message "Site gerado!")

Um script para executar os comandos necessários para gerar o site

#!/bin/sh
mkdir -p public && emacs -x build.el && cp -r assets/ public/

Depois disso, o único trabalho que eu tenho é de fazer um artigo e listá-lo na minha homepage, e pronto!

Outras coisas que estão no meu Emacs

É mais que claro que o Emacs é conhecido por seus usuários que, em boa parte dos casos, transformam o Emacs em um sistema operacional praticamente. E eu não sou muito diferente deles 🤓.

Atualmente eu já configurei o Emacs o suficiente para substituir a minha configuração do Neovim, e também configurei coisas como:

Também estou vendo como configurar um cliente Jabber (XMPP) e vou configurar o Erc (o cliente IRC nativo do Emacs). Há também outras coisas que eu quero fazer, mas não acho que seja necessário falar sobre elas, afinal já estou tagarelando demais.

Aos poucos, estou deixando o meu setup ser apenas um ambiente onde eu possa usar o Emacs

Eu ainda não iniciei o meu arco Uchirra da vida e saí eliminando meus programas, ainda.

Eu já tenho em mente o que eu quero fazer e como eu vou fazer para conseguir transformar o meu setup atual em algo que serve apenas para acomodar o Emacs. Alguns programas que eu posso remover, por exemplo, são o Lazygit (Porque eu já tenho o Magit) e o lf (Porque o Emacs vem com o Dired).

Mas vou deixar para fazer isso outra hora, afinal de contas isso vai tomar um pouco do meu tempo para poder concluir.

Fin

Enfim, acho que já é hora de eu para de ficar tagarelando.

Te vejo no próximo post!