-- Leo's gemini proxy

-- Connecting to gemi.dev:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Gemipedia: a Gemini interface to Wikipedia

2022-05-10 | #gemipedia #wikipedia #cgi | @Acidus


Today I'm releasing Gemipedia, a Gemini interface to Wikipedia focused on an awesome reading experience.


Gemipedia


Features:

Supports fuzzy matching for finding articles

Groups all the links to additional articles by section, and separate "References" pages for each section

Gallery View, which pulls all media like images and video out into a separate view

Supports tables, including cells that span multiple rows or columns, by converting them to ASCII art tables inside of preformatted sections

Supports math formulas, by fetches the original SVG images and converting them on the fly to PNG

Always up-to-date, by using a live interface to Wikipedia API's, with a caching layer to improve speed and reduce load on Wikipedia

PDF export for offline reading


Gemipedia is open source


Why?


2 reasons:

1: I love reading content on Wikipedia

2: The only functioning Wikipedia interface in Gemini is primitive, both for reading (content is missing or rendered poorly), and navigating (no links on articles, no way to click through a redirect page). I found it unusable.



If I wanted to read Wikipedia content on Gemini, I would need build my own interface.


Distraction-free Encyclopedias


Months ago I read a great piece by Marginalia, "Thoughts on the linkpocalypse" where they compare Encarta' Microsoft's CDROM-based encyclopedia from the mid-1990's with Wikipedia. Specifically about their hyperlinks-to-content ratios, and the resulting effect on focus.


Thoughts on the linkpocalypse


So Marginalia built "Highly Readable Encyclopedia":


> This is an encyclopedia based on Wikipedia's database, that strips away most links and almost all visual clutter to provide a more book-like reading experience with fewer distractions.


High Readability Encyclopedia


Building an interface to Wikipedia is easy. Building an interface to Wikipedia that is usable, let alone enjoyable to read, is hard. That's because of how complex Wikipedia content can be. You can't just use a generic HTML -> Gemtext library on top of Wikipedia and call it "done." Marginalia's article got me thinking about how to streamline the text to provide a great reading experience. Highly Readable encyclopedia is a good starting point. However it discards some valuable information (like images, and infoboxes), and it's also HTML, so it can supports rendering that a Gemini-first interface never could.


Instead I spent the last month diving into Wikipedia content, how it is structured, and figuring out how to restructure that.


For example, many Wikipedia articles achieve multi-column content by using a <TABLE> with a single row, and a few columns to hold the text. Crazy, but Wikipedia is nearly 20 years old, and lots of content is built this way. Blindly converting <TABLE> tags to ASCII art tables would be a terrible reading experience for that kind of content. So instead, I wrote code to detect that, and restructure it into normal text content.


Feedback wanted


Gemipedia has come a long way:

Changelog


There is certainly more work to be done.

TODOs.txt


A big one is to support other languages. Right now, Gemipedia is English only, because I am skipping certain sections that don't make sense (e.g. References, External Links, Bibliography) by looking at the content of a section's heading. That's language specific. Luckily, I found a more modern API that includes section metadata, allowing me to skip those.


Here is my ask of the community:


Please give Gemipedia a try and let me know what you think. Wikipedia's content is diverse I find the majority of bugs by just reading lots of articles and noting where the rendering looks incorrect.

If you want to link Wikipedia content, consider linking to Gemipedia instead of out to Wikipedia over HTTPS. This keeps readers in their Gemini client and makes for a less disruptive reading experience.


You can send feedback to me here:

📬 Contact me

-- Response ended

-- Page fetched on Tue May 21 22:01:06 2024