Olá mundo!

  • Org-mode
  • Emacs

Este blog é uma forma de compartilhar um pouco da minha pesquisa (através das anotações que venho escrevendo ao longo do tempo e digitando vagarosamente) e integrar o fluxo de trabalho que tenho utilizado desde 2013. Este post é basicamente uma breve descrição das ferramentas que eu uso no desenvolvimento do conteúdo, a geração da página e o seu armazenamento.

Desenvolvimento do conteúdo

Boa parte do conteúdo é escrito usando o org mode, uma ferramenta fantástica que me fez trocar o Vim (e quase qualquer outra ferramenta de edição de textos) pelo Emacs.

Explicar o que é o org é um pouco complicado, porque ele faz uma porção de coisas! Porém, para os meus propósitos ele é basicamente um estilo de formatação de documentos que é ao mesmo tempo legível, estruturado e formatado (uma espécie de poor man's Word). Algumas características do org são:

Veja abaixo um exemplo de documento do org, para ter uma ideia de como funciona a sua estrutura:

* Estrutura do org-mode
O texto no org é estruturado por cabeçalhos, que são indicado por
linhas que iniciam com um ou mais asteriscos (*). Dessa forma, estamos 
agora em uma seção do documento.

** Uma subseção
Começa com um asterisco a mais, e por aí vai para subsubseções e etc.

** Listas
- Listas podem ser criadas começando uma linha com um ou mais espaços
  e um hífen -
- Podemos também aninhar listas
  - como esta,
  - e mais outro subitem.

*** Listas numeradas
1) Também é possível criar listas numeradas
2) como esta

** Equações
O texto no org pode conter equações formatadas em LaTeX. Por exemplo:
\begin{equation}
x = \sqrt{b},
\end{equation}
ou também podemos escrever equações em linha como \(a = 1\).

Este documento, quando convertido para pdf pelo Emacs, resulta em:

Org Document

Figura 1: pdf gerado pelo documento org.

Essas são apenas algumas das vantagens. Eu comecei a usar o org para editar minhas anotações pessoais devido à integração com o LaTeX, que é de grande importância para redação de textos que contém equações matemáticas.

Nem todas as anotações são feitas no org mode. Escrevo parte do conteúdo também na forma manuscrita, usando o xournal para anotações rápidas, e também na forma de notebooks do Jupyter através o software matemático SageMath. Documentos do Jupyter, assim como os documentos do org, podem conter tanto texto como código computacional, e são bem convenientes para análise de dados ou experimentação. (Update: um exemplo disso é uma análise dos dados das observações recentes de ondas gravitacionais).

Hospedagem da página

O Git tem sido a minha ferramenta de controle de versão por alguns anos. Até algum tempo atrás boa parte do meu tempo com o git era passado no GitHub. Porém, como eu gosto que algumas das anotações/projetos permaneçam privadas até que alcancem um certo estado de maturidade, mudei para o serviço do GitLab. Algumas vantagens dele em relação ao GitHub são:

  • Número ilimitado de repositórios privados;
  • É software livre, podendo ser instalado em um servidor local, por exemplo;
  • Ferramentas para migração de projetos do GitHub ou Bitbucket;
  • GitLab pages.

O GitLab pages permite a utilização de qualquer gerador estático de sites, como o Jekyll, Hugo e Octopress, através de sua infraestrutura baseada no Docker. O GitLab pages é de fácil utilização; o próprio GitLab fornece uma série de repositórios com exemplos para vários geradores de sites.

Conclusão

Tem sido relativamente simples manter e compartilhar as anotações usando este fluxo de trabalho. O org funciona muito bem como linguagem de marcação para a maioria dos meus textos. Para entender melhor como funciona o esquema de publicação do org, você pode olhar aqui.