The Perl Advent Calendar needs more articles for 2022. Submit your idea today!

Phoebe Wiki

Phoebe does two and a half things:

It's a program that you run on a computer and other people connect to it using their Gemini client in order to read the pages on it.

It's a wiki, which means that people can edit the pages without needing an account. All they need is a client that speaks both Gemini and Titan, and the password. The default password is "hello". 😃

Optionally, people can also access it using a regular web browser.

Gemini itself is very simple network protocol, like Gopher or Finger, but with TLS. Gemtext is a very simple markup language, a bit like Markdown, but line oriented. See "GEMTEXT".

To take a look for yourself, check out the test wiki via the web or via the web.

Reading the wiki

This repository comes with a Perl script called gemini to download Gemini URLs.

Other clients can be found here:

See App::Phoebe::Web to enable reading via the web.

Gemtext

Pages are written in gemtext, a lightweight hypertext format. You can use your favourite text editor to write them.

A text line is a paragraph of text.

This is a paragraph.
This is another paragraph.

A link line starts with "=>", a space, a URL, optionally followed by whitespace and some text; the URL can be absolute or relative.

=> http://transjovian.org/ The Transjovian Council on the web
=> Welcome                 Welcome to The Transjovian Council

A line starting with "```" toggles preformatting on and off.

Here is an example:
```
The tapping calms me:
Constant mindless murmuring
Rain drops against glass
```

A line starting with "#", "##", or "###", followed by a space and some text is a heading.

## License
The GNU Affero General Public License.

A line starting with "*", followed by a space and some text is a list item.

* one item
* another item

A line starting with ">", followed by a space and some text is a quote.

The monologue at the end is fantastic, with the city lights and the rain.
> I have seen things you people would not believe.

Editing the wiki

How do you edit a Phoebe wiki? You need to use a Titan-enabled client.

Titan is a companion protocol to Gemini: it allows clients to upload files to Gemini sites, if servers allow this. On Phoebe, you can edit "raw" pages. That is, at the bottom of a page you'll see a link to the "raw" page. If you follow it, you'll see the page content as plain text. You can submit a changed version of this text to the same URL using Titan.

Known clients:

This repository comes with a Perl script called titan to upload files.

Gemini Write is an extension for the Emacs Gopher and Gemini client Elpher.

Gemini & Titan for Bash are two shell functions that allow you to download and upload files.

Lagrange is a GUI client that is Titan enabled.

See App::Phoebe::WebEdit to enable editing via the web.

Installation

Using cpan:

cpan App::Phoebe

Manual install:

perl Makefile.PL
make
make install

Dependencies

If you are not using cpan or cpanm to install Phoebe, you'll need to install the following dependencies:

I'm going to be using curl and openssl in the Quickstart section of phoebe, so you'll need those tools as well. And finally, when people download their data, the code calls tar (available from packages with the same name on Debian derived systems).

Installing Perl

If you are on GNU/Linx or macOS, I recommend installing from Perlbrew. Each Perl installation comes with its own library directories, so if you switch Perl version, you need to reinstall Phoebe for that Perl version.

See also