Suggested Gopher improvements for Lagrange
I am quite a fan of Lagrange. There is no doubt that @skyjake has done an amazing job. Nonetheless it is clear that Gemini is the first class citizen and Gopher support is a little less refined. Here are a few humble suggestions.
Fix the "Go to Parent" (up) command
If you are reading anything on Gopher and you go up one level, you will always hit a directory listing or gophermap. These are type 1 selectors. Thus (when using the "Go to Parent" command) the URL should change from '*/0*' to '*/1*'. Currently in Lagrange this part of the URL is not changed, meaning this feature is essentially broken for Gopher users, since you will end up viewing the raw gophermap. Put another way, the correct behaviour is 'gopher://example.com/0/dir/file.txt [up] → gopher://example.com/1/dir/', not 'gopher://example.com/0/dir/file.txt [up] → gopher://example.com/0/dir/' as we currently have. Other Gopher clients that support "up" (such as VF-1) handle this correctly.
[✍ 12:23 +0100] This is also a problem for the "Go to Root" command.
Up Buttons for exploring capsules [✍ 11:36 +0100: added link]
Fix the "Copy Page Source" command
Another clue that Lagrange is primarily a Gemini client is what happens when you visit a type 1 document and use "Copy Page Source". Rather than having the gophermap copied to the clipboard, you get the Gemtext equivalent of the gophermap. Clearly, internally Lagrange converts the page to Gemtext to simplify display (which is fine) but when I want 'the source', I want the actual source. Currently the only way to access the source of a gophermap is to hand edit the URL from '/1' to '/0', so that it is forced to display as a text file.
'Linkification' of plain text
Ok, this last one is not a bug at all but rather a feature request. Some Gopher clients (e.g. Geminaut and VF-1) will find links within plain text documents and make these links directly usable. For Lagrange that would mean making them clickable or being able to navigate to them using Alt/Option and a number. Given that many Gopher articles are plain text but contain reference links, this would make navigation far easier.
Linkification in Gopher clients
Linkification in Gopher clients (Part 2)
These are just improvements I would personally love to see. Of course, your time is your own @skyjake and obviously you have your own priorities, so if you do not want to do these now (or ever) for any reason at all, that is of course absolutely fine (you owe me no explanations). Either way I still offer you a massive thanks for everything you have done thus far. Keep being awesome!
[✍ 12:38 +0100: Here are a couple more feature requests, now I think of them! 😉.]
Font options for plain text
While I understand that monospace fonts generally make the most sense for plain text documents (especially if they contain code or ASCII art), non-monospace is often nicer to read.
If I happen to be a user who primarily reads phlogs that do not make use of code or ASCII art, it would be nice if I could tell Lagrange not to use monospace fonts for plain text. If I could flip this with a keyboard shortcut or better yet, if Lagrange supported site specific preferences, so much the better.
Plain text reflow of 'paragraphs'
A command (and/or shortcut) to reflow plain text in paragraphs (up to the next double new line) would also be nice. This should not be enabled by default (obviously) but if the user could trigger it or again set as a site specific preference, that would be amazing. This could be particularly nice on mobile, where the viewport is narrow in the standard orientation and many gopher text documents have a relatively big (hard) line wrap.
[✍ 12:52 +0100] When doing this reflow, avoiding two line 'paragraphs' where the second line starts with characters like '-', '=', '~' would also likely protect most heading types. So long as the user can quickly and easily flip this on and off (keyboard shortcut for desktop and perhaps a button, or swipe action for mobile), I don't think this has to be perfect to have some value. This might also be interesting for Gemini users who encounter plain text files.
2022-01-20 06:30 +0100
These are very good and thoughtful improvement ideas!
* Go to Parent/Root: Yeah, I'll fix these.
* Copy Page Source: I'll address this eventually. It's related to a larger issue: https://github.com/skyjake/lagrange/issues/359
* Links in plain text: More difficult to solve given the current implementation, but maybe there's a way to do something with text selection and URI detection.
* Non-monospace plain text: Not too difficult to do, let's see.
* Text reflow: This is a getting a bit specialized, but I can see why it's needed as Gopher assumes hard-wrapped text. (A few Gemini pages could also use this as some authors inappropriately use hard wraps.)
🔙 Gemlog index
🔝 Capsule index