返回目录
其他 插件

moji-docs

opqnext/moji-docs

MojiDocs 是一款跨平台的 Markdown Wiki 桌面应用,基于 Electron + Vue 3 + SQLite 构建。

Stars
6
Forks
2
Issues
0
更新
15 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:opqnext/moji-docs

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

English | 中文

MojiDocs

MojiDocs

Offline-first Markdown Wiki Desktop App
Git tracks files, SQLite indexes them — your data stays yours

Release Downloads Stars License Platform

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 .md file 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=9229 with Chrome DevTools

Releasing

  1. Update version in package.json
  2. npm run build && npm run package
  3. Create a Release on GitHub Releases (tag: v1.x.x)
  4. 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 .gitignore and won't sync to remote

Star History

Star History Chart

License

MIT License © 2018-2025 opqnext

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。