Brennan's Gemini Blog

Home
About
Guide
smol.pub

---

I created a .md to .gmi converter for anyone to use.

Hi there, I made a client-side web application that converts Markdown files to Gemtext format, built with vanilla HTML, CSS, and JavaScript. Supports drag-and-drop upload, live preview, batch processing, and download.

Live demo: https://gemtext.brennan.day

https://gemtext.brennan.day

External Dependencies

This project uses minimal external resources for functionality:

Overview

Gemtext is the native text format for the Gemini protocol, a simpler alternative to the web. This converter transforms standard Markdown into clean Gemtext while preserving essential structure and links.

Features

Usage

https://gemtext.brennan.day

Conversion Rules

Settings

Development

Local Development

# Serve the project locally
python3 -m http.server 8765
# or
npx serve .

Then visit http://localhost:8765

http://localhost:8765

Project Structure

markdown2gemtext/
├── index.html              # Main SPA
├── css/
│   ├── main.css            # Core styles and dark theme
│   ├── preview.css           # Gemtext preview styling
│   └── responsive.css      # Mobile layout
├── js/
│   ├── converter.js        # Markdown → Gemtext conversion
│   ├── fileHandler.js      # File loading and downloads
│   ├── preview.js          # Preview rendering
│   └── app.js              # Main application orchestration
├── test/                   # Test cases and expected outputs
└── docs/
    └── SPEC.md             # Technical specification

Testing

The test/ directory contains edge-case Markdown files and their expected Gemtext outputs. Use these to verify conversion correctness:

# Compare actual vs expected outputs
diff test/expected/*.gmi test/actual/*.gmi

Deployment

The app is designed for static hosting. Netlify configuration is included:

Privacy and Security

Browser Support

About

A 🍓 Berry House project by Brennan Kenneth Brown.

Berry House
Brennan Kenneth Brown

License

AGPL 3.0

---

Main Site
Gemini capsule
Contact

© 2026 Brennan - Content available under CC BY-SA