💾 Archived View for rawtext.club › ~sloum › geminilist › 004658.gmi captured on 2021-12-03 at 14:04:38. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

<-- back to the mailing list

[users] Tables in Gemtext

Paper paper at tilde.institute

Sat Jan 2 23:25:29 GMT 2021

- - - - - - - - - - - - - - - - - - - 

On Sat, Jan 02, 2021 at 06:13:45PM +0000, Luke Emmet wrote:

On 02-Jan-2021 03:04, Kiëd Llaentenn wrote:
Just recently I was creating a Gemini mirror of an HTTP site, and came
across several pages that made heavy use of tables. I did what I suspect
most Gemini publishers/content authors do: use ASCII tables, like so:
+--------------------------------+-------+
| Food | Price |
+--------------------------------+-------+
| Eggs | $2 |
| Eggs and spam | $4 |
| Eggs, spam, eggs and spam | $8 |
| Spam spam baked beans and spam | $8 |
| Just spam | $2 |
+--------------------------------+-------+
There are several problems with this approach, though:
1. It requires the client to display the table in a monospaced font,
which many would prefer not to use.
2. Text in table rows won't be wrapped properly on narrow displays.
3. ASCII tables are anything but screenreader friendly, since there's no
semantic information about the table's structure.
4. It mixes information and presentation, which is against the spirit of
Gemini(?)
So, are there any other options for having tables in Gemtext, other than
adding a new syntax to the spec? I'm hard pressed to think of another
solution.
Some other ideas:
If you want to present the information in its original structure, there are
other options
(as well as trying to inline it into gemtext preformatted text already
discussed on this thread):
1. provide link to a CSV

We should try to use what we have before designing a new gemtext feature.

Lagrange provides a way to create scripts which handle MIME types lagrangewhich are not supported by lagrange natively. We can use this to render CSV:

~/.config/lagrange/mimehooks.txt:

CSV tables text/csv /bin/sh;/home/user/bin/csv2txt

~/bin/csv2txt:

#!/bin/sh printf "20 text/plain\r\n" /bin/column -s, -t

Don't forget to make this script executable. Now, test how well it works:

gemini://gempaper.strangled.net/experiments/ubuntu-versions.csv

picture: https://ttm.sh/dvO.png

This is obviously not optimal:

But also has many advantages:

~paper