Modules: a Lucide icon as a module's logo #874
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#874
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The module issues below give each module a Lucide icon (
mails,git-graph,waypoints,message-square-dot,mail,webhook,pyramid,map). Today that is not possible.What exists today
Manifest.logois a file name inside the plugin's own package (plugins/base.py:186), read withimportlib.resources, rendered as sanitised SVG or re-encoded PNG byPluginLogoView(plugins/logos.py); never a path or a URL. No built-in declares one (logos.py: "a decision rather than an omission"); without one the page draws an initials tile (core/templatetags/postulo.py:305-326).{% icon %}fromstatic/icons/, synced fromassets/icons.txtbynpm run sync:icons. Of the icons asked for, onlymailandsettingsare synced;mails,git-graph,waypoints,message-square-dot,webhook,pyramid,mapare inlucide-staticonly.What would change
Manifest.icon(a Lucide name) for modules, drawn with{% icon %}where the logo goes;logostays for packages, which may ship their own file.assets/icons.txtand synced.Decisions
iconbesidelogo, orlogo="lucide:mails". Recommended: a separate field — a module's icon is Postulo's own vocabulary, a package's logo is its author's file, and the logo pipeline's checks (#777) stay for files.Checked against
mainat8c3d03570. From the maintainer's improvements list of 2026-10-07 (plugins).Fixed in
8fb9459ceon main.