import streamlit as st import re from pathlib import Path import importlib def render_preview(imagen, titulo, descripcion): with st.container(): image_col, text_col = st.columns((1,2)) with image_col: st.image(imagen) with text_col: st.subheader(titulo) st.write(descripcion) clicked = st.button("Lee más dando click aquí...", key=titulo) return clicked def render_page(post_path: Path): mod = importlib.import_module(str(post_path)) mod.run_article() def get_page_data(post_path: Path): mod = importlib.import_module(str(post_path)) return { "titulo": mod.titulo, "descripcion": mod.descripcion, "fecha": mod.fecha, "thumbnail": mod.thumbnail, } def main(): st.set_page_config(layout="wide") posts = [ 'posts.2_private_models', 'posts.1_blog_in_spaces' ] page_to_show = posts[0] with st.sidebar: st.markdown('''

El blog de Platzi

La comunidad de Platzi en Hugging Face comparte conocimiento 🤗. Disclaimer: este es solo un ejemplo diseñado para el curso de demos en Platzi. Está basado completamente en el Tips and Tricks creado por Omar Sanseviero (https://huggingface.co/spaces/osanseviero/tips-and-tricks).

''', unsafe_allow_html=True) st.markdown('---') for post in posts: data = get_page_data(Path(post)) clicked = render_preview(data.get("thumbnail"), data.get("titulo"), data.get("descripcion")) if clicked: page_to_show = post if page_to_show: render_page(Path(page_to_show)) main()