Soporte de tecnologías#
Este sitio está creado con Hugo.
Se utiliza la plantilla Blowfish.
El código de este sitio se almacena en GitHub.
Está desplegado en Cloudflare siguiendo este tutorial.
¿Cómo se gestionan las fuentes de lectura?#
La mayoría de las fuentes consultadas se gestionan mediante RSS con una instancia local de Miniflux.
Los artículos se organizan con Obsidian.
Las páginas se capturan con Obsidian Web Clipper.
Flujo de publicación#
flowchart TD
subgraph ORIGEN["📥 Obtención de artículos"]
A1["📡 Fuentes RSS"] -->|Marcar artículos como Starred| A2["📰 Miniflux
Lector de RSS"]
A2 --> DS1[("⭐ Starred
Dato de los artículos")]
A3["🌐 Navegación por Internet"] -->|Captura de páginas| A4["✂️ Obsidian
Web Clipper"]
A4 --> DS2[("📄 Captura de
datos de páginas")]
end
DS1 --> E5["🐍 Lleva Starred
a Obsidian"]
E5 --> B["💎 Obsidian
aplicación de escritorio y móvil"]
DS2 --> B
B -->|Organizado y formateado
como Markdown| C["Selección de artículos
a publicar"]
subgraph AUTOMATIZACION["🛠️ Aplicaciones y servicios - Proceso automático"]
C --> D["🤖 GitHub Copilot
+ Skills"]
D -->|Llamadas y mejoras
para el procesado| SCRIPTS["💻 Scripts de procesado
Python & PowerShell"]
SCRIPTS --> E1["🐍 Captura
OpenGraph"]
SCRIPTS --> E4["🐍 Ajusta imágenes
por destino"]
SCRIPTS --> E3["🐍 Extrae contenido
para redes"]
SCRIPTS --> E2["🐍 Commits vacíos
diarios"]
SCRIPTS --> MD["Markdown formateado
en carpetas"]
end
E1 --> DS3[("🖼️ Imágenes")]
E4 --> DS4[("🖼️ Imágenes específicas
por destino")]
E3 --> DS5[("📝 Contenido formateado
para redes sociales")]
MD --> REPO[("🗂️ Repositorio
Git local")]
DS3 --> REPO
REPO -->|git push| GH["🐙 Repositorio GitHub
GitOps Hub"]
E2 -.dispara commit vacío.-> GH
GH -->|Webhook Trigger| CF["☁️ Cloudflare Workers
Motor de despliegue"]
CF --> HUGO["⛰️ Hugo
Generador de páginas estáticas"]
HUGO --> THEME["🐡 Tema Blowfish"]
THEME -->|Despliegue en CDN global| SITE(["🌍 Sitio publicado"])
SITE -.Extracción.-> PUB
subgraph REDES["📣 Distribución multi-platforma - hecho con Python"]
DS4 --> PUB["🐍 Publicación automática
Publicación contenido e imágenes extraídas"]
DS5 --> PUB
PUB --> K1(["🔷 LinkedIn"])
PUB --> K2(["⚫ Threads"])
PUB --> K3(["🦋 Bluesky"])
PUB --> K4(["🐘 Mastodon"])
end
subgraph LEYENDA["Leyenda"]
L1(["Acción manual"])
L2["Proceso automático"]
L3["☁️ Servicio web"]
L4[("Almacenamiento")]
L5{{"Plataforma externa"}}
L6["🐍 Aplicación en Python"]
end
click A1 "https://es.wikipedia.org/wiki/RSS" _blank
click A2 "https://miniflux.app/" _blank
click A4 "https://obsidian.md/clipper" _blank
click B "https://obsidian.md/" _blank
click D "https://github.com/features/copilot" _blank
click GH "https://github.com/juanbretti/" _blank
click CF "https://gohugo.io/host-and-deploy/host-on-cloudflare/" _blank
click HUGO "https://gohugo.io/" _blank
click THEME "https://blowfish.page/" _blank
click SITE "https://blog.juanbretti.com" _blank
click K1 "https://linkedin.com/in/juanbretti/" _blank
click K2 "https://www.threads.com/@juanbretti" _blank
click K3 "https://bsky.app/profile/juanbretti.bsky.social" _blank
click K4 "https://mastodon.social/@juanbretti" _blank
classDef pythonApp fill:#639922,color:#EAF3DE,stroke:#3B6D11
class E1,E2,E3,E4,E5,PUB,L6 pythonApp
style ORIGEN fill:#1e3a5f,color:#fff
style AUTOMATIZACION fill:#3a1e5f,color:#fff
style REDES fill:#5f3a1e,color:#fff
style SITE fill:#185fa5,color:#fff
style K1 fill:#185fa5,color:#fff
style K2 fill:#185fa5,color:#fff
style K3 fill:#185fa5,color:#fff
style K4 fill:#185fa5,color:#fff
style LEYENDA fill:#2c2c2c,color:#fff
