Usually, it's a good idea to link to full URLs like this:

=> gemini://transjovian.org/page/Introduction Introduction

Result:

Introduction

On this wiki, linking to another page can use a relative link. As relative links keep using the same scheme, you can follow relative links using your browser if you're reading this page on the web.

If the page name is a single word, you should be good to go:

=> Introduction

Result:

Introduction

This doesn't work when pages have spaces in their names. In that case, you have to percent encode the space as %20:

=> A%20longer%20introduction A longer introduction

Result:

A longer introduction

The same is true for non-ASCII characters, stricly speaking. You need to percent-encode the UTF-8 bytes. Example:

=> Alex%20Schr%c3%b6der Alex Schröder

Result:

Alex Schröder

Fortunately for English speakers that like short page titles, we'll be fine often enough. And if not, just copy the URLs from your Gemini clients, like you would on the web. 😁

Alternatively, here's a little Perl script that will allow you to do the following:

$ percent-encode Alex Schröder
Alex%20Schr%c3%b6der

I've created a script for myself called "percent-encode" with the following code:

#!/usr/bin/env perl
use v5.10;
die "Encode what?\n" unless @ARGV;
my %safe = map {$_ => 1} ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '-', '_', '.', '!', '~', '*', "'", '(', ')', '#');
$" = '';
my @letters = split //, join ' ', @ARGV;
foreach my $letter (@letters) {
  $letter = sprintf("%%%02x", ord($letter)) unless $safe{$letter};
}
say @letters;