* * * * *

               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] gopher://gopher.conman.org/0Phlog: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 page

Gemini mention, an ongoing discussion
 gemini://gmi.bacardi55.io/gemlog/2023/01/05/gemini-mention-discussion/

My Capsule Plans
 gemini://benjaminja.info/gemlog/2023/02/10-capsule_plans/

Email author at [email protected]