moji-docs
Discovered★ 6MojiDocs 是一款跨平台的 Markdown Wiki 桌面应用,基于 Electron + Vue 3 + SQLite 构建。
MojiDocs
Offline-first Markdown Wiki Desktop App
Git tracks files, SQLite indexes them — your data stays yours
Features · Download · Quick Start · Tech Stack · Development · License
Overview
MojiDocs is a cross-platform Markdown Wiki desktop app built with Electron + Vue 3 + SQLite.
Core philosophy: .md files are the single source of truth, tracked and synced via Git. SQLite serves purely as a full-text search index and can be rebuilt from files at any time. Your notes are stored as standard Markdown in the local filesystem, fully compatible with Obsidian, Hugo, Hexo, and more.
Features
Document Management
- Create, edit, delete, move, and pin documents/directories
- Tree-structured browsing (Recent / All / Tree views)
- Drag-and-drop
.mdfile import
Markdown Editor
- Dual-pane live preview / single-pane / preview-only mode
- Toolbar: bold, italic, heading, quote, list, link, image, code block, table
- Paste-to-upload images (screenshot → Ctrl+V → auto-saved to
assets/) - Multiple Markdown rendering themes (GitHub, Juejin, etc.)
Search & Versioning
- SQLite FTS5 full-text search (keyword highlighting + context snippets)
- Git version history (browse, preview, rollback)
Sync & Export
- Scheduled Git sync (pull + push with conflict detection)
- PDF export / print
- Offline-first — all operations complete locally
Customization
- Custom theme colors (color picker + hex input)
- Dashboard (article/directory/version stats)
- Trash (soft delete + cascading restore)
Download
Go to GitHub Releases to download the installer for your platform:
| Platform | Format |
|----------|--------|
| macOS | .dmg |
| Windows | .exe |
| Linux | .AppImage / .deb |
macOS Installation Note
Since the app is not signed with an Apple Developer certificate, macOS may show "damaged file" or "unverified developer" warnings. Fix with either method:
Method 1: Run in Terminal (recommended)
xattr -cr /Applications/MojiDocs.app
Method 2: Right-click the app icon → select "Open" → click "Open" in the dialog
This is a macOS Gatekeeper restriction, not an issue with the app itself. Required once after each install or update.
Quick Start
Prerequisites
- Node.js ≥ 18
- npm ≥ 9
Development
git clone https://github.com/opqnext/moji-docs.git
cd moji-docs
npm install
npm run dev
Build
npm run build # Compile
npm run package # Package as installer (output in release/)
Tech Stack
| Technology | Version | Purpose | |-----------|---------|---------| | Electron | 33 | Cross-platform desktop framework | | Vue 3 | 3.5 | Frontend UI framework | | electron-vite | 2.3 | Build tool | | better-sqlite3 | 11 | SQLite database (index + FTS5 full-text search) | | marked | 17 | Markdown rendering | | highlight.js | 11 | Code syntax highlighting | | simple-git | 3.27 | Git sync | | chokidar | 3.6 | File system watching | | electron-builder | 25 | App packaging |
Project Structure
moji-docs/
├── main/ # Main process (Node.js)
│ ├── index.ts # Entry: window, protocols, IPC
│ ├── database.ts # SQLite initialization
│ ├── indexer.ts # File → index builder
│ ├── git-sync.ts # Git sync scheduler
│ ├── file-watcher.ts # File system watcher
│ └── ipc/ # IPC channels
├── preload/ # Preload scripts
├── renderer/ # Renderer process (Vue 3)
│ └── src/
│ ├── views/ # Page components
│ └── components/ # Shared components
├── assets/ # App icons
├── scripts/ # Utility scripts
└── doc/ # Project documentation
Development Guide
Hot Reload
| Change | Restart Required? |
|--------|-------------------|
| renderer/ Vue/CSS files | No (HMR hot reload) |
| main/ main process code | Yes, re-run npm run dev |
Debugging
- Renderer process: DevTools opens automatically in dev mode, or press
Cmd+Option+I - Main process:
console.log()outputs to terminal, or use--inspect=9229with Chrome DevTools
Releasing
- Update
versioninpackage.json npm run build && npm run package- Create a Release on GitHub Releases (tag:
v1.x.x) - Upload installers
Data Storage
User data is stored in a user-selected local directory:
~/MojiDocs/ # Notes root (= Git repo root)
├── .moji/ # App data (not synced)
│ ├── index.db # SQLite index (rebuildable)
│ └── config.json # Local settings
├── assets/ # Image assets (Git tracked)
├── Getting Started.md # Note files
└── Projects/ # Directories
└── Project A.md
- Uninstalling or reinstalling the app does not affect user data
.moji/is automatically excluded via.gitignoreand won't sync to remote
Star History
License
MIT License © 2018-2025 opqnext
Comments
Loading…
Similar plugins
Ultra-lightweight Moli (Rust headless browser) web-fetch provider for DeepSeek Harness: renders complex SPAs, micro-frontends, and dynamic pages with ~60MB memory.
★ 0
dsh plugin --profile web add dsh-web-fetch-moliby mlosun
DSH WebUI 里的「随身手册」:全局 Markdown 笔记,任何工作区随时可读。
★ 6
MIT
JavaScript
Aug 19, 2026
dsh plugin --profile web add dsh-docs-panelby Dpf555
VS Code-style three-column Explorer + Monaco editor plugin for the DeepSeek Harness web GUI
★ 5
MIT
JavaScript
Aug 15, 2026
dsh plugin --profile web add @dsh-local/dsh-workbenchby jiekesu967
Adds a markitdown tool that converts PDF, Word, Excel, PowerPoint, HTML, CSV, EPUB and URLs to Markdown, using a real Microsoft MarkItDown installation when one is reachable and a bundled dependency-f
★ 0
↓ 283/wk
MIT
TypeScript
Sep 13, 2026
dsh plugin --profile web add dsh-markitdownby omdsh-dev
Create and manage sandboxed JavaScript tools for DeepSeek Harness with a Monaco editor and model-driven tool lifecycle.
★ 23
MIT
TypeScript
Aug 16, 2026
dsh plugin --profile web add dsh-custom-toolby yewenyell-lang
Durable workspace-owned Workloads and Runtime Center for DeepSeek Harness
★ 0
MIT
JavaScript
Aug 21, 2026
dsh plugin --profile web add dsh-workloads-local-ui1