El primer post en mi nuevo blog!
Si, si, ya sé que estás pensando: ¿Que leches es esta web y cómo he llegado aquí? Espera, por favor, dame la oportunidad de explicarme. Me llamo Asur y este es mi nuevo proyecto…
Tabla de contenidos:
Pues menuda mierda de nuevo proyecto! 🤣
Vale, estamos de acuerdo, pero escucha, la idea es que llegue a ser más que eso y alcance la categoría de pasable, déjame que te cuente cómo.
El por qué 🤔
Para empezar, una pequeña presentación para quitarlo de delante, me llamo Asur, no espero que me conozcas pero considero importante que sepas que me encanta programar, en concreto me apasiona todo lo que tenga que ver con internet y este blog es uno de mis periódicos cacharreos tecnológicos.
Hace ya tiempo que esta idea me ha estado rondando la cabeza, crear un blog personal el cual documente su propio proceso de desarrollo y mejora! Mi objetivo es ir desarrollando y plasmar esas mejoras en forma de posts, registrar cada paso en la Wayback Machine de archive.org para que cada entrada se pueda visitar en su estado original y poder ver la evolución pieza a pieza.
Así pues, la idea es introducir este proyecto al mundo e invitarte a un viaje en el que hablaremos mucho de programación y otros familiares, así que si te gusta el desarrollo web, el SEO, la gestión de sistemas y demás te recomiendo que te mantengas al tanto.
El cómo 💡
Para llevar a cabo este proyecto he elegido GoHugo, un generador de sites estáticos, al estilo de Jekyll, pero desarrollado en Go. También he creado un tema llamado amperage, que será donde iremos haciendo las mejoras y añadiendo funcionalidades.
El proyecto es 100% código abierto, así que si lo que ves te gusta, que de momento lo dudo, descárgatelo, pruébalo y si estás espléndid@ las aportaciones son siempre bienvenidas.
Todo está hosteado en Github Pages, porque es gratis, es fácil, es rápido y… ah si, es GRATIS.
He estado trabajando en el workflow de desarrollo y seguramente sea mejorable, pero estoy bastante contento con el estado actual, así que voy a entrar un poco más en detalle de como está montado todo este tinglado.
El hosting
Este site al ser estático no necesita de mucho en cuanto a infraestructura, lo único que hace es escupir ficheros a tu navegador, lo que lo hace super rápido y sencillo de gestionar, pero como todo, el haber elegido este estilo de web implica ciertas limitaciones, no tener un backend significa que probablemente voy a tener que depender de servicios de terceros para posibles funcionalidades futuras, como comentarios en los posts o una newsletter.
Github pages me parece una opción ideal ya que lo iba a utilizar de todas formas para alojar los repositorios, así que mato dos pájaros de un tiro. Para poner un frontal con CDN, políticas personalizadas, así como mi propio dominio utilizo Cloudflare, que de nuevo es gratis (vais captando el patrón aquí?).
La verdad es que lo único que me ha costado averiguar de esta parte es la convención que tiene Github para alojar tu site. Para que la web esté accesible en la url {user}.github.io
tienes que crear un repositorio que se llame igual y esa es tu única opción, si no te gusta, pues bailas.
La estructura de repositorios
Este proyecto va a estar organizado en tres repositorios:
- Blog: Todo el contenido del blog, con sus posts escritos en markdown y sus metadatos.
- Tema: El tema que he llamado amperage, donde estarán los estilos y la estructura básica de la web. Aquí es donde se va a llevar a cabo la mayor parte del desarrollo.
- Build: El contenido una vez ha sido compilado en HTML estático, esta es la parte que se hostea y estás leyendo ahora mismo.
A la hora de trabajar solo usaré un directorio, el repositorio de blog, pero los otros dos estarán configurados como submódulos de git, de esta manera la estructura de trabajo quedaría algo así:
blog
├── archetypes
├── config.toml
├── content
│ └── posts
├── data
├── deploy.sh
├── layouts
├── public // Submódulo de build
├── README.md
├── resources
├── static
└── themes
└── amperage // Submódulo de tema
Todas las actualizaciones se subirán independientemente y a la hora de empezar a trabajar en un entorno nuevo solo necesitaré clonar el repositorio y descargar sus submódulos, lo que considero bastante cómodo, algo así:
git clone git@github.com:asurbernardo/blog.git && git submodule update --recursive --remote
Por supuesto esto también aplica para alguién que quiera aportar su granito de arena al proyecto.
El despliegue
Para desplegar la web de manera rápida y sencilla he creado un script siguiendo la documentación oficial de Hugo:
|
|
Una vez configurado todo en tu cuenta de Github solo tenemos que compilar el blog con hugo -t amperage
y pusheamos los cambios en el submódulo de /public
con un mensaje autogenerado a partir de la fecha.
Siguientes pasos 👣
De momento eso es todo, espero traer más novedades pronto, y también espero que estén relacionadas con algún estilo básico, porque creeme que el estado actual de la web me duele más a mí que a ti…
Lo dudo mucho! 😒
Bueno, pues eso, que hasta la próxima!
Wayback Machine ⏰
Ver la versión original de este post.
Ver la versión original de la homepage.