Development
The HonoWiki Engine
Wikiglide runs on the HonoWiki Engine, a from-scratch wiki engine built
by HonoWiki. This is why CSS class names throughout the app use the hw- prefix —
short for HonoWiki. Technically, the markup documented in
the markup reference is HonoWiki markup (the native
markup of the HonoWiki Engine), but since Wikiglide is the site that uses it, "Wikiglide markup"
and "HonoWiki markup" are used interchangeably.
Stack
The HonoWiki Engine is built with Hono (a lightweight web framework) and PostgreSQL, written entirely in TypeScript. There is no client-side framework — every page is server-rendered HTML.
Architecture
The engine is organized around a few core layers:
- Parser — A custom wikitext parser that transforms markup into HTML in a single pass. Handles headings, links, tables, templates, references, and image embeds. Template expansion is async (templates are regular wiki pages fetched from the database), while the core parse is synchronous.
- Storage — A content-addressable model inspired by MediaWiki's MCR (Multi-Content Revisions). Each edit creates a revision pointing to content blobs identified by SHA-256 hash, so identical content is stored only once.
- Auth — JWT-based with four permission groups: anonymous, user, curator, and sysop. Email verification is required for write operations.
Templates
Templates are ordinary wiki pages — {{Foo}} looks up the page titled "Foo" and expands it.
Parameters use {{{1}}}, {{{name|default}}} syntax. A handful of magic templates
(like {{note}} and {{reflist}}) are intercepted by the engine before database lookup.
User-facing CSS classes
Classes that wiki authors can use in their markup follow the wikitable- naming convention instead
of the internal hw- prefix:
wikitable-stackwikitable-cardwikitable-pinfirst
See the markup reference for details on these classes.