Web links: choose the service, with its icon, and check the address against it #305
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#305
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?
From the interface review of 2026-09-29, for Social profiles, and the same for Code repositories and Websites:
What is there today
core/models.py::WebLinksays: "The kind is the sort of thing, never the host … a list of brand names ages every time somebody's Forgejo instance or the next network appears." An address is checked for being a web address and for nothing more.So what is asked for is, in effect, a service. Under Social profiles that means a choice of LinkedIn, Mastodon, Bluesky, X and the others; under Code repositories, GitHub, GitLab, Codeberg, a Forgejo or Gitea instance, and so on. Each comes with its icon, and the check on the address depends on which one was chosen.
Decisions to take
plugins/identifiers), where each scheme says what a value looks like and where it links (#298). The same shape would work here: a service with a name, an icon, the hosts it answers on and a pattern for its addresses. That keeps the list out of the model, and lets an instance add its own services.https://host/@name,https://host/owner), not by its host.Done when
smbreakpoint up, and the order in the DOM is the reading order.Three issues from the maintainer's list of 2026-10-02 build on what this issue landed, so they are recorded here.
The service registry is
core/link_services.py(Serviceat:100,registry()at:245), supplied by plugins of thelink-servicekind (:266) and exposed asLinkServiceonpostulo.plugins.api. #678 (type only the username, with a fixed address prefix) adds a prefix to a service. #654 (brand icons from Simple Icons) lets a service name a mark beside its Lucide icon. #682 (instant-messaging contacts) takes this registry as its model but keeps a registry of its own, since a handle is not a web address.From the list of improvements of 2026-10-02.