eleventy-plugin-gopher-gemini
2026 ■ Eleventy Plugin
About
An Eleventy plugin that publishes a single site across three protocols at once: the regular web (HTTP), Gopher, and Gemini. Content written in Markdown is converted into Gemtext as well as plain text for Gopher alongside your normal HTML build.
Each page can opt in or out of any protocol via an outputs front-matter field, so a post can be on one, two, or all three protocols. The plugin works from the raw Markdown source rather than compiled HTML, auto-detects Gopher item types from file extensions, rewrites embedded images and media into protocol-appropriate links, and provides shortcodes plus protocol-filtered collections for building indexes and feeds.
Why?
I wanted to publish my blog and maintain a presence on Gopher and Gemini without needing to create three copies of everything. I also wanted to avoid automatically republishing content across all three platforms, as an image heavy post fit for a blog simply doesn't work for Gopher.
Approach
The plugin requires Eleventy 3.0+ to work. It registers conversion filters (Markdown to Gemtext, Markdown to wrapped plain text for Gopher), shortcodes for protocol-specific links, and collections filtered by protocol. Configuration covers line width, host, and port for generating Gophermaps. The repo includes real-world template examples, test coverage, and a GitHub Actions workflow for deploying all three trees via rsync.











