Note

This program expects that your Gopher server treats empty lines as information lines.

It also expects the server to add the hostname and the port number at the end of links.

Compiling

You need to have Go toolchain installed:

# Debian
sudo apt install golang

# Fedora
sudo dnf install golang

Then, just clone the repo and run go build . to compile an executable.

Usage

gemtext2gophermap input.gmi output_gophermap [max line length (default 70)] [preprocessor insertion map file]

Example

Input Gemtext

input.gmi

Everything until the first <!--break--> in the map file will be put in place of the insert-gopher tag.

```html
<!--insert-gopher-->
```

The following <script> tag will be removed because it is between to web-only tags.

```html
<!--web-only-->
```

```html
<script>
console.log("joj")
</script>
```

```html
<!--web-only-->
```

> Here, the contents after the first break in the map file will be put

```html
<!--insert-gopher-->
```

A map file

map.txt

<?php
echo "i" . date(DATE_RFC2822) . "\t/FAKE\tNULL\t0";
?>
<!--break-->
iIf your Gopher server supports running PHP it should have printed the current date.	/FAKE	NULL	0

Command

gemtext2gophermap input.gmi - 70 map.txt

If - is passed instead of input/output file name stdin/stdout will be used. Reading the map file from stdin is not supported.

Output

iEverything until the first <!--break--> in the map file will be put in /FAKE   NULL    0
iplace of the insert-gopher tag.        /FAKE   NULL    0

<?php
echo "i" . date(DATE_RFC2822) . "\t/FAKE\tNULL\t0";
?>

iThe following <script> tag will be removed because it is between to    /FAKE   NULL    0
iweb-only tags. /FAKE   NULL    0

i> Here, the contents after the first break in the map file will be put /FAKE   NULL    0


iIf your Gopher server supports running PHP it should have printed the current date.    /FAKE   NULL    0
S
Description
A really crappy Go program to convert Gemtext (.gmi) to a Gophermap
Readme 41 KiB
Languages
Go 100%