WikiWikiWiki
A flat-file PHP wiki engine. No database, no complex setup, just write.
Install / Use
/learn @minguhong/WikiWikiWikiREADME
WikiWikiWiki
“Good things are worth repeating. At least three times.”
WikiWikiWiki is a flat-file PHP wiki engine. No database, no complex setup, just write.
Features
- Easy setup
- Markdown support
- Wiki links (
[[Document title]]), transclusion (![[Document title]]), hashtags (#tag), redirects - Discover and search
- Edit history
- Edit conflict protection
- Document and history export
- RSS, Atom, JSON Feed, sitemap, llms.txt, llms-full.txt, read-only API
- User management
- Edit permission (private / public / fully public)
- Custom themes
- Multilingual (English, Japanese, Korean)
- Dark mode
- ...
Requirements
- PHP
8.2+ - Required extensions:
json,mbstring,session,hash,pcre - Recommended extensions:
zip(export),intl(string normalization),gd(og-image rendering)
Installation
Local (from the project root)
git clone https://github.com/minguhong/WikiWikiWiki
cd WikiWikiWiki
php -S localhost:3333
- Open
http://localhost:3333 - Select a language
- Enter basic info, choose an edit permission, and create an admin account
Web Server (Apache)
Requires: mod_rewrite (required), mod_headers (optional), mod_expires (optional)
- Download the latest release
- Upload to your server (includes
.htaccess) - Select a language
- Enter basic info, choose an edit permission, and create an admin account
For Nginx, see nginx.example.conf
Update
- Download the latest release
- Replace all files and folders except user data (
config/,content/,history/,users/,themes/), including.htaccess
Usage
Wiki syntax
| Syntax | Description |
|---|---|
| [[Page title]] | Link to another page (autocomplete on desktop input environments) |
| [[Page title\|Display text]] | Link with alias |
| [[Parent/Child]] | Use / to separate page hierarchy |
| ![[Page title]] | Embed another page's content inline (Transclusion) |
| #tag | Add a tag |
| (redirect: Page title) | Redirect to another page (first line of document) |
Embeds
| Syntax | Description | Options | Example |
|---|---|---|---|
| (image: URL) | Image | width, height, caption | (image: URL width: 300px caption: Beach) |
| (video: URL) | Video (YouTube, Vimeo, etc.) | width, height | (video: URL width: 80%) |
| (iframe: URL) | iframe (https:// URL only) | width, height | (iframe: URL height: 400px) |
| (map: Address) | Google Maps | width, height | (map: Central Park, New York) |
| (codepen: URL) | CodePen | width, height | (codepen: URL) |
| (arena: URL) | Are.na channel | width, height | (arena: username/channel-name) |
| (wikipedia: Search term) | Wikipedia link (default: wiki language) | lang | (wikipedia: Markdown lang: ja) |
| (toc) | Table of contents from document headings | | (toc) |
| (recent: N) | List of recently edited pages | | (recent: 5) |
| (wanted: N) | List of wanted pages | | (wanted: 10) |
| (random: N) | List of random pages | | (random: 10) |
Values accept px, %, rem, em, etc.
Feeds and API
| Path | Description |
|---|---|
| /rss.xml | RSS feed |
| /atom.xml | Atom feed |
| /feed.json | JSON feed |
| /sitemap.xml | Sitemap |
| /llms.txt | LLM document index summary |
| /llms-full.txt | LLM full document content |
| /api/all | Full page list JSON; page item: title, modified_at, url, redirect_target |
| /api/wiki/{title} | GET: document content JSON (title, content, modified_at, url, redirect_target) |
Keyboard shortcuts
| Shortcut | Description |
|---|---|
| / | Search |
| e | Edit (on document view) |
| n | New page |
| Cmd/Ctrl + I | Italic (new page / edit) |
| Cmd/Ctrl + B | Bold (new page / edit) |
| Cmd/Ctrl + K | Wiki link (new page / edit) |
| Tab | Indent (new page / edit) |
| Shift + Tab | Outdent (new page / edit) |
| Cmd/Ctrl + S or Cmd/Ctrl + Enter | Save (new page / edit) |
Theme
See the Theme Guide.
