# Libellus
> [!noteinfo]
> Marco Noris · Última actualización: 06.01.2026 · #jekyll #obsidian #file-over-app
La carpeta _Libellus_[^1] en lab.marconoris.com contiene parte de los archivos que componen mi portfolio, [marconoris.com](https://marconoris.com) y que están incluidos en mi bóveda de Obsidian y enlazados en un contexto más amplio: esta web.
Mi portfolio está construido sobre una arquitectura sencilla que prioriza la autonomía y la preservación a largo plazo. En lugar de depender de servicios comerciales como WordPress o Wix, las páginas se generan automáticamente a partir de archivos de texto almacenados en mi propio ordenador y se publican desde un entorno que gestiono directamente. Esto me permite mantener la propiedad y el control de mis contenidos, sin depender de terceros ni de formatos cerrados, y evita tener que empezar de cero cada vez que cambio de herramienta o de plataforma.
Esta elección se alinea con la filosofía _[file over app](https://stephango.com/file-over-app)_: las aplicaciones son efímeras, mientras que los archivos —legibles, portables y bajo tu control— pueden perdurar en el tiempo. Para mí, es una forma de cuidar los materiales —textos, imágenes, notas— y garantizar que sigan siendo accesibles a largo plazo, sin bloqueos ni dependencias impuestas por las plataformas.
Desde el punto de vista técnico, Libellus se genera automáticamente con Jekyll y se despliega en Netlify a partir de un repositorio en GitHub. De forma paralela, se mantiene una copia completa del sitio en mi ordenador, lo que permite trasladar la versión estática a otros servidores si fuera necesario.
La paleta cromática de la web se basa en [Flexoki](https://stephango.com/flexoki), de Steph Ango, y el diseño adopta principios de minimalismo funcional inspirados en su propio trabajo web. Del ecosistema de [Kepano](https://github.com/kepano) se ha integrado la _Image Grid_ desarrollada para Obsidian (como siempre, gracias, Steph). Finalmente, un _plugin_ en Ruby, desarrollado _ex novo_, reescribe los _wikilinks_ y la sintaxis propia de Obsidian para garantizar la compatibilidad semántica y estructural entre Jekyll, la bóveda de Obsidian y la publicación web en [lab.marconoris.com](https://lab.marconoris.com) mediante Obsidian Publish.
> [!Info]
> - **Producción (canónica)**: [https://marconoris.com](https://marconoris.com)
> - **Netlify (deploys)**: [https://marconoris.netlify.app](https://marconoris.netlify.app)
> - **Aliases**:
> - [https://libellus.marconoris.com](https://libellus.marconoris.com)
> - [https://marconoris.art](https://marconoris.art)
## Resumen de la app
Sitio estatico (Jekyll) para `marconoris.com`.
## Que es
Sitio web estatico generado con Jekyll para publicar obras, cuadernos y proyectos de Marco Noris. El repo incluye contenido en Markdown y plugins para compatibilidad con sintaxis de Obsidian durante el build.
## Para quien
Persona editora del sitio (autor: Marco Noris) que escribe en Markdown/Obsidian y publica en la web sin backend.
## Que hace
- Genera un sitio estatico desde colecciones Jekyll y paginas (contenido en carpetas con prefijo `_`).
- Convierte sintaxis Obsidian: `[[wikilinks]]`, `![[transclusiones]]` y callouts `> [!tipo]`.
- Reescribe enlaces relativos `../` hacia `obsidian_publish_baseurl` (Obsidian Publish).
- Incrusta YouTube/Vimeo cuando la URL aparece sola o como imagen Markdown, con allowlist de parametros.
- Auto-genera `slug`/`permalink` latinizado desde `title` (y regla especial para `news`).
- Autolinka URLs sueltas tras render (desactivable con `autolink_urls: false` en front matter).
- Soporta galerias en proyectos (mencionado en la documentacion del repo: PhotoSwipe).
- Soporta `cssClasses` en el front matter.
- Soporta img-grid de Kepano.
## Como funciona
- **Entrada**: Markdown en colecciones y paginas + datos en `_data/` + assets (`assets/`, `images/`).
- **Motor**: Jekyll (Ruby) + Kramdown (GFM) segun `_config.yml` (colecciones, permalinks, defaults).
- **Pipeline (hooks)**:
- `pre_render`: `slug_from_title` - `obsidian_*` - `video_markdown_embed`
- `post_render`: `url_linkify`
- **Transclusiones**: solo incrustan HTML si el origen existe en el filesystem durante el build; si no, caen a enlace.
- **UI**: Liquid (`_layouts/`, `_includes/`) + Sass (`_sass/`).
- **Salida**: `_site/` (HTML estatico).
- **Deploy**: Netlify ejecuta `bundle install && bundle exec jekyll build` y publica `_site/`.
%%- **Backend/DB/API**: Not found in repo.%%
## Como ejecutar
- **Requisitos**: Ruby `3.2.9` + Bundler (version: Not found in repo).
- **Instalar**: `bundle install`
- **Dev**: `bundle exec jekyll serve`
- **Build**: `bundle exec jekyll build` (salida en `_site/`)
---
Evidencia: `Gemfile`, `_config.yml`, `netlify.toml`, `_plugins/`, `OBSIDIAN-PLUGINS.md`.
[^1]: Libellus: del latín, diminutivo de liber (libro), ‘librito’, cuadernillo; pequeño volumen para notas, poemas, epigramas o tratados breves. Hoy, Libellus es un cuaderno vivo: archivo en marcha, notas de camino y piezas que, juntas, componen un cuerpo mayor.