Thoughts on an implementation of Gemini mentions

The other day [1] I didn't have much to say about the Gemini Mentions [2] proposal. Now that I've implemented it for my Gemini site (the code [3] has been upated extensively since the other day), I have more thoughts [4].

First, having the location locked to /.well-known/mention works fine for single-user sites, but it doesn't work that well for sites that host multiple users under a single domain. Alice who has pages under gemini://example.com/alice/ and want to participate with Gemini mentions. So might Dave under gemini://example.com/dave/. Bob, who has pages under gemini://example.com/bob/ doesn't care, nor does Carol, under gemini://example.com/carol/. How to manage gemini://example.com/.well-known/mentions where half the users want it, and the other half don't? Having the ability to specify individual endpoints, say with a CGI (Common Gateway Interface) script, would at least let Alice and Dave participate without having to bug the example.com admin to install a service under a single location.

Second, not every person may want to have every page to receive a mention. I know I don't—I want to restrict mentions to the blog portion of my Gemini site. The proposal only states that “a capsule owner MUST implement a basic endpoint: /.well-known/mention,” but it says nothing about limiting what pages can be the target of a mention. I suppose having a link to /.well-known/mentions on a page could indicate that page can receive mentions, but the implication is that the endpoint link doesn't have to be mentioned at all. For now, I just filter requests to my blog entries and for other pages I return a “bad request.”

Third, I'm still unsure about sending a single URI (Uniform Resource Indicator). My implementation does scan the given URI for links to my blog, and will grab the first link that matches a blog entry from the URI (and ignores other links to my Gemini site—see point above). Sending in two links, as in a webmention [5] provides some form of check on the request.

Fourth, I don't check for the “RE:” in the link text as I don't think it's needed. The specification implies it has to be “RE:” (in all caps), but I can see “Re:” and “re:” being used as well, because humans are going to human and be lazy (or trollish and use “rE:” just to mess with people; or not include it at all).

I also did a second implemenation [6] that addresses all these points (and the code [7] for this version is very similar to the other one). I guess I'll see which one becomes more popular.

[1] /boston/2023/01/02.2

[2] https://codeberg.org/bacardi55/gemini-mentions-rfc

[3] gemini://gemini.conman.org/extensions/GLV-1/handlers/mention.lua

[4] gemini://gmi.bacardi55.io/gemlog/2023/01/03/gemini-mention-coincidence/

[5] https://www.w3.org/TR/webmention/

[6] gemini://gemini.conman.org/extensions/GLV-1/handlers/mention.lua

[7] gemini://gemini.conman.org/extensions/GLV-1/handlers/gemmention.lua

Discussions about this entry

Gemini mention, an ongoing discussion

My Capsule Plans

Gemini Mention this post

Contact the author