Using Emacs for Gophermaps Why use Emacs when everyone suggests I use vim for creating a gophermap? That's easy. Because I can. Gopher was born around the same time as the World Wide Web. Were it not for a few bad decisions, the net could have been a vastly different place. I'm old enough to remember it, if only vaguely. I'm also old enough to be getting tired of progress and miss things being simple and mostly text based without all the advertisements and trackers. Cookies were snacks next to the computer. I'm not going to pretend I remembered much of anything about it, but lines were of the format. PText[Tab]Fspec[Tab]Host[Tab]Port Where the P field is the Protocol: 0 Text /* Link to a Text File. */ 1 Gophermap /* Link to a Gophermap. */ 9 Binary /* Link to a Download. */ i Informational /* Informational Text. */ h URL /* Link to a URL */ The Text field cannot contain tab characters. The Fspec field is of the format [dir][/][filename] at least one element must be present. The Host field is the canonical name of the host. The Port filed is the TCP port to use. Gopher usually ran on port 70 while http usually ran on port 80. See /etc/services for more information. Informational text and URL types ignore the information in the Host and Port fields. URL should pass the text following "URL:" off to the operating system's protocol handler. hHome[Tab]URL:https://mcsuper5.freeshell.org/[Tab]null[Tab]1 Using Emacs Emacs tends to use the tab key for auto formatting. You can avoid this by quoting it by typing a "C-q" before the tab character. If your gophermaps look weird in your client, try cat with the "-t" flag to see if you have stray tab characters. Because the format is textual, you'll want to limit the length of your lines or refill them using Emacs using "C-x f 62" and "M-q" for each paragraph. Update the line length according to your preference. For your informational text it is useful to use a macro. Go to the top line of your informational text and begin recording. "C-x (" or "[F3]"; "C-a i"; "C-e C-q [tab] / C-q [tab] null C-q [tab] 1"; "C-n" or "[Cursor Down]"; "C-x )" or "[F4]". You can then execute the macro with "C-x e" or "[F4]". Hope that helps. MJC 2024.04.23