From b86a753d79958964cfb22ae8b84fe061d688fbc5 Mon Sep 17 00:00:00 2001 From: Juan Ignacio Rodriguez de Leon Date: Sun, 7 May 2023 18:24:06 +0100 Subject: [PATCH 1/2] Noticias leidas desde ficheros markdown en la carpeta noticias --- config/web.py | 15 ++------- noticias.py | 39 ++++++++++++++++++++++ noticias/entradas-2023-05-05.md | 7 ++++ noticias/web-2023-04-12.md | 9 +++++ theme/pycones23/static/assets/css/main.css | 5 +++ theme/pycones23/templates/index.html | 5 ++- 6 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 noticias.py create mode 100644 noticias/entradas-2023-05-05.md create mode 100644 noticias/web-2023-04-12.md diff --git a/config/web.py b/config/web.py index b324d6f..8869029 100644 --- a/config/web.py +++ b/config/web.py @@ -1,5 +1,7 @@ import random +import noticias + AUTHOR = 'Python España' SITENAME = 'PyConES23' @@ -306,18 +308,7 @@ # NOTICIAS -NOTICIAS = [ - { - "titulo": "¡Ya puedes comprar tus entradas!", - "fecha": "5/5/2023", - "contenido": "¡Por fin ha llegado el día! Ya están aquí las entradas del evento más esperado del año de la comunidad Python en España", - }, - { - "titulo": "¡Lanzamiento del sitio web!", - "fecha": "4/12/2023", - "contenido": "Os damos la bienvenida a la PyConES, la conferencia de Python más importante de España. Un evento que reunirá a cientos de entusiastas del lenguaje de programación Python, con una agenda increíble en la mejor localización posible. Si quieres formar parte de nuestros patrocinadores para hacer esta conferencia aún mas impresionante puedes disponer de espacio propio dentro del evento.", - }, -] +NOTICIAS = noticias.ultimas_noticias() ORG = [ { diff --git a/noticias.py b/noticias.py new file mode 100644 index 0000000..6c9cffc --- /dev/null +++ b/noticias.py @@ -0,0 +1,39 @@ +import glob +from datetime import date as Date +from dataclasses import dataclass + +import markdown + + +@dataclass +class Noticia: + titulo: str + fecha: Date + contenido: str + + +def _iter_noticias(): + news_parser = markdown.Markdown(extensions=['extra', 'meta']) + for filename in glob.glob('noticias/*.md'): + news_parser.reset() + with open(filename, 'r', encoding='utf-8') as f: + contenido = news_parser.convert(f.read()) + yield Noticia( + titulo=news_parser.Meta['titulo'][0], + fecha=Date.fromisoformat(news_parser.Meta['fecha'][0]), + contenido=contenido, + ) + + +def ultimas_noticias(max_noticias=5): + news = sorted(_iter_noticias(), reverse=True, key=lambda d: d.fecha) + return news[0:max_noticias] + + +def main(): + for noticia in ultimas_noticias(): + print(noticia.fecha, noticia.titulo) + + +if __name__ == "__main__": + main() diff --git a/noticias/entradas-2023-05-05.md b/noticias/entradas-2023-05-05.md new file mode 100644 index 0000000..d9ab733 --- /dev/null +++ b/noticias/entradas-2023-05-05.md @@ -0,0 +1,7 @@ +--- +titulo: ¡Ya puedes comprar tus entradas! +fecha: 2023-05-05 +--- + +**¡Por fin ha llegado el día!** Ya están aquí las entradas del evento más +esperado del año de la comunidad Python en España. diff --git a/noticias/web-2023-04-12.md b/noticias/web-2023-04-12.md new file mode 100644 index 0000000..8048eec --- /dev/null +++ b/noticias/web-2023-04-12.md @@ -0,0 +1,9 @@ +--- +titulo: ¡Lanzamiento del sitio web! +fecha: 2023-04-12 +--- +Os damos la bienvenida a la PyConES, la conferencia de Python más importante de +España. Un evento que reunirá a cientos de entusiastas del lenguaje de +programación Python, con una agenda increíble en la mejor localización posible. +Si quieres formar parte de nuestros patrocinadores para hacer esta conferencia +aún mas impresionante puedes disponer de espacio propio dentro del evento. diff --git a/theme/pycones23/static/assets/css/main.css b/theme/pycones23/static/assets/css/main.css index a628b32..9f6fae6 100644 --- a/theme/pycones23/static/assets/css/main.css +++ b/theme/pycones23/static/assets/css/main.css @@ -894,3 +894,8 @@ a.boton-reserva { margin-top: 1rem; margin-bottom: 1rem; } + +.fecha { + font-size: 90%; + color: #edd3c5; +} diff --git a/theme/pycones23/templates/index.html b/theme/pycones23/templates/index.html index 37d2cd6..628000c 100644 --- a/theme/pycones23/templates/index.html +++ b/theme/pycones23/templates/index.html @@ -22,7 +22,10 @@

Noticias

{% for noticia in NOTICIAS %}
-
{{ noticia.titulo }} {{ noticia.fecha }}
+
{{ noticia.titulo }} +
+ {{ noticia.fecha.strftime('%d/%b/%Y') }} +
{{ noticia.contenido }}
From 45ea49eb9b7d43eb67f7383e47c06cb979292a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Ignacio=20Rodr=C3=ADguez=20de=20Le=C3=B3n?= Date: Sun, 7 May 2023 18:34:14 +0100 Subject: [PATCH 2/2] Update web-2023-04-12.md --- noticias/web-2023-04-12.md | 1 + 1 file changed, 1 insertion(+) diff --git a/noticias/web-2023-04-12.md b/noticias/web-2023-04-12.md index 8048eec..ef2d25a 100644 --- a/noticias/web-2023-04-12.md +++ b/noticias/web-2023-04-12.md @@ -2,6 +2,7 @@ titulo: ¡Lanzamiento del sitio web! fecha: 2023-04-12 --- + Os damos la bienvenida a la PyConES, la conferencia de Python más importante de España. Un evento que reunirá a cientos de entusiastas del lenguaje de programación Python, con una agenda increíble en la mejor localización posible.