Florilegio de la Fe opera un sistema editorial dual que distingue entre artículos y ensayos. Los artículos son piezas breves o de mediana extensión orientadas a la divulgación teológica, histórica o biográfica, ideales para lectores que buscan reflexiones accesibles. Los ensayos, por su parte, son escritos de mayor profundidad académica o meditativa, con secciones bien delimitadas; la plataforma genera automáticamente una tabla de contenidos navegable a partir de los encabezados del contenido HTML. Ambos tipos comparten el mismo ciclo de vida editorial — creación, revisión y publicación — y están organizados por categorías e indexados para búsqueda de texto completo.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/alfonsoolavarria/florilegio/llms.txt
Use this file to discover all available pages before exploring further.
Modelo Article
El modelo Article almacena los artículos del sitio. Todos los campos se encuentran en la tabla main_florife_article.
| Campo | Tipo | Descripción |
|---|---|---|
title | CharField(255) | Título principal del artículo |
slug | SlugField(unique=True) | URL amigable derivada del título |
author | ForeignKey(Author) | Enlace al autor; se pone a NULL si el autor se elimina |
category | ForeignKey(Category) | Categoría a la que pertenece el artículo |
image_url | URLField(500) | URL de la imagen de portada |
content | TextField | Contenido completo en HTML |
tags | JSONField | Lista de etiquetas/temas relacionados |
meta_description | TextField | Descripción para SEO y redes sociales (máx. 160 caracteres) |
is_featured | BooleanField | Si True, el artículo aparece en el carrusel de la portada |
status | CharField | revision (por defecto) o liberado |
created_at | DateTimeField | Fecha de creación (automática) |
updated_at | DateTimeField | Fecha de última modificación (automática) |
Propiedades calculadas
Modelo Essay
El modelo Essay tiene la misma estructura de campos que Article. La diferencia principal está en la vista de detalle: al renderizar un ensayo, se genera automáticamente una tabla de contenidos (TOC) a partir de los encabezados <h2> y <h3> presentes en el HTML.
Generación automática de tabla de contenidos
La vistaessay_detail recorre el contenido con una expresión regular, extrae todos los encabezados h2 y h3, les asigna un número de sección jerárquico y los inyecta con atributos id para los enlaces de anclaje:
toc_items se pasan al template con las claves id, number, text y tag, permitiendo renderizar una barra lateral de navegación anclada.
Flujo de publicación
El autor crea el contenido
Desde el portal de autores (
/autores/articulo/nuevo/), el autor con perfil vinculado redacta el título, selecciona una categoría, añade la URL de la imagen y escribe el contenido. Al guardar, el artículo se crea con status='revision'.El artículo queda en revisión
El contenido no es visible en el sitio público mientras
status sea revision. Solo los administradores pueden verlo en el panel de Django Admin.El administrador revisa y libera
Un administrador del sitio edita el artículo en Django Admin y cambia el campo
status a liberado.URLs disponibles
GET /articulos/ — Lista de artículos
GET /articulos/ — Lista de artículos
Devuelve la lista paginada de artículos con
status='liberado'. Acepta el parámetro ?categoria=<id> para filtrar por categoría. Paginación: 5 artículos por página.GET /articulo/<slug>/ — Detalle de artículo
GET /articulo/<slug>/ — Detalle de artículo
Muestra el artículo con el slug indicado (solo si
status='liberado'). El template recibe además hasta 3 related_articles de la misma categoría.GET /ensayos/ — Lista de ensayos
GET /ensayos/ — Lista de ensayos
Lista paginada de ensayos. Acepta
?categoria=<id> y ?q=<búsqueda>. Paginación: 9 ensayos por página. La búsqueda aplica unaccent__icontains sobre title y content.GET /ensayo/<slug>/ — Detalle de ensayo
GET /ensayo/<slug>/ — Detalle de ensayo
Muestra el ensayo con su tabla de contenidos generada automáticamente. Incluye hasta 3 ensayos relacionados de la misma categoría.
GET /buscar/ — Búsqueda de artículos
GET /buscar/ — Búsqueda de artículos
Búsqueda de texto completo sobre artículos usando
unaccent__icontains en los campos title y content. Resultados paginados a 9 por página.La búsqueda con Sin esta extensión, las búsquedas lanzarán un error
unaccent__icontains requiere tener instalada la extensión unaccent de PostgreSQL en la base de datos. Actívala con:ProgrammingError. Asegúrate de añadir django.contrib.postgres a INSTALLED_APPS y ejecutar la migración correspondiente.Portal de autores
El portal de autores permite a usuarios con un perfilAuthor vinculado a su User crear y editar sus propios artículos. El acceso está restringido por el decorador _author_required, que verifica la existencia de user.author_profile.
Panel del autor
GET /autores/panel/ — Muestra todos los artículos del autor ordenados por fecha de creación, con su estado actual.Crear artículo
GET /autores/articulo/nuevo/ — Formulario de creación. Al guardar, el slug se genera automáticamente desde el título y se asegura su unicidad.Editar artículo
GET/POST /autores/articulo/<id>/editar/ — Muestra el formulario de edición (GET) o actualiza título, contenido, categoría e imagen (POST). Solo el autor propietario puede editar.Modelo Category
Las categorías agrupan tanto artículos como ensayos. Cada categoría tiene un icono CSS que se muestra en la interfaz.
icon: unicon-book, unicon-university, unicon-cross. Las categorías se gestionan exclusivamente desde Django Admin.