makeshift-wiki
v0.1.0
Published
Local-first collaborative Markdown wiki with WYSIWYG editing
Downloads
15
Readme
makeshift-wiki
Local-first collaborative Markdown wiki with WYSIWYG editing.
Features
- WYSIWYG Editing — Milkdown/ProseMirror-based rich text editor
- Real-time Collaboration — Y.js CRDT for multi-user editing
- Markdown on Disk — Files stored as plain Markdown
- Slash Commands —
/to insert headings, blockquotes, code blocks, tables, images - Image Upload — Drag & drop or slash command to upload images
- Dark Theme — Material-inspired dark UI
- Zero Config — Just point it at a directory
Install
npm install -g makeshift-wikiUsage
makeshift-wiki uses a YAML config file to declare one or more spaces:
makeshift-wiki -c wiki.yaml
makeshift-wiki -c wiki.yaml --port 3000 --title "My Wiki"Config file (wiki.yaml)
spaces:
main: # ID = URL path → /main/
name: Main Wiki # display name (sidebar / index)
type: local-file # mount a local directory as an editable wiki
dir: ./docs # path (relative to this YAML, or absolute)
external:
name: External Wiki
type: link # sidebar item → 302 redirect to URL
url: https://example.com/wiki- The root
/renders an index page listing all spaces. - Each
local-filespace is served at/<key>/. - Each
linkspace appears in the space switcher / index and redirects to itsurl.
Options
| Option | Default | Description |
|--------|---------|-------------|
| -c, --config <file> | (required) | YAML config file |
| -p, --port | 8100 | Port number |
| -H, --host | 127.0.0.1 | Bind address |
| -t, --title | Wiki | Site title |
| -h, --help | | Show help |
| -v, --version | | Show version |
Quick Start
cat > wiki.yaml <<'EOF'
spaces:
my:
name: My Wiki
type: local-file
dir: ./my-wiki
EOF
npx makeshift-wiki -c wiki.yamlWiki Directory Structure
my-wiki/
index.md # Home page
getting-started.md
concept/
.pages # Section config (title + order)
overview.md
architecture.md
assets/ # Uploaded imagesLicense
MIT
