Cómo se genera este sitio: Org mode y Emacs Lisp

Link al script: Script (Licencia en la raíz del repositorio).

En mi computadora (Guix btw) tengo un directorio llamado "website" que contiene todos los archivos de este sitio web. Este tiene la siguiente estructura:

website/
├── emacs
│   ├── index.org
│   ├── links.org
│   └── posts/
├── index.html
├── LICENSE
├── links.html
├── posts/
└── styles/
├── archive.css
├── index.css
├── paleta.css
└── posts.css

emacs/ y styles/ contienen todos los archivos que edito activamente. La estructura de emacs/ es un espejo de website/: contiene index, links y posts/, pero son archivos .org en vez de .html. styles/ simplemente contiene unos archivos .css de los que hablaré más adelante. A través de mi script exporto emacs/index.org → /index.html, emacs/links.org → /links.html, emacs/posts/x.org → /posts/x.html y genero /posts/archive.html, que contiene links a todos los posts. Cada uno de estos HTML usa el CSS con su nombre que está bajo /styles/.

¿Por qué?

Todo esto puede parecer sobrediseño. ¿Por qué no solo escribir HTML?

  1. HTML es como una piedra en el zapato para quien lo escribe. El markup de Org es miles de veces más fácil y cómodo de usar.
  2. Integración con Emacs: tener mis posts como documentos de Org hace más fácil escribirlos desde Emacs, y la capacidad de usar Lisp y no Bash o Python para automatizar el proceso de publicación es un bonus que se aprecia.
  3. Un stack libre: todo el software involucrado está licenciado bajo alguna forma de la GNU GPL o de alguna otra forma libre (incluyendo algún script de JavaScript que pueda agregar), un sitio web que respeta mi libertad y la tuya es algo cada vez más raro y más necesario en el Internet moderno.
  4. Es simplemente divertido. Siempre he escuchado de otra gente lo poderoso que es org-publish y esta era la excusa perfecta para probarlo.