MojiDocs 开源笔记软件

0 阅读3分钟

MojiDocs

离线优先的 Markdown Wiki 桌面应用
Git 管文件,SQLite 管索引,数据完全属于你

功能特性 · 下载安装 · 快速开始 · 技术栈 · 开发指南 · 开源协议


简介

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

核心理念:.md 文件是唯一数据源,通过 Git 跟踪和同步;SQLite 仅作为全文搜索索引,可随时从文件重建。你的笔记以标准 Markdown 格式存储在本地文件系统中,完全兼容 Obsidian、Hugo、Hexo 等工具。

功能特性

文档管理

  • 文档/目录创建、编辑、删除、移动、置顶
  • 树形结构浏览(最近 / 全部 / 树形三种视图)
  • 拖拽导入 .md 文件

Markdown 编辑器

  • 双栏实时预览 / 单栏 / 纯预览模式切换
  • 工具栏:加粗、斜体、标题、引用、列表、链接、图片、代码块、表格
  • 图片粘贴上传(截图 → Ctrl+V → 自动保存到 assets/
  • 14 种 Markdown 渲染主题(GitHub、掘金、VuePress 等)

搜索与版本

  • SQLite FTS5 全文搜索(关键字高亮 + 上下文片段)
  • Git 版本历史(浏览、预览、回滚)

同步与导出

  • Git 定时同步(pull + push,支持冲突检测)
  • PDF 导出 / 打印
  • 离线优先,所有操作本地立即完成

个性化

  • 主题颜色自定义(色谱 + 十六进制输入)
  • 数据大盘(文章/目录/版本统计)
  • 回收站(软删除 + 级联恢复)

下载安装

前往 GitHub Releases 下载对应平台的安装包:

平台格式
macOS.dmg
Windows.exe
Linux.AppImage / .deb

macOS 安装说明

由于应用未使用 Apple 开发者证书签名,从 GitHub 下载安装后 macOS 可能提示「文件已损坏」或「无法验证开发者」。请使用以下任一方法解决:

方法一:终端执行(推荐)

xattr -cr /Applications/MojiDocs.app

方法二:右键点击应用图标 → 选择「打开」→ 在弹窗中点击「打开」

这是 macOS Gatekeeper 安全机制的限制,与应用本身无关。每次安装或更新新版本后需重新执行一次。

快速开始

环境要求

  • Node.js ≥ 18
  • npm ≥ 9

开发运行

git clone https://github.com/opqnext/moji-docs.git
cd moji-docs
npm install
npm run dev

构建打包

npm run build      # 编译
npm run package    # 打包为安装包(产物在 release/ 目录)

软件截图

详情页

image.png

设置页

image.png

编辑页

image.png

技术栈

技术版本用途
Electron33跨平台桌面框架
Vue 33.5前端 UI 框架
electron-vite2.3构建工具
better-sqlite311SQLite 数据库(索引 + FTS5 全文搜索)
marked17Markdown 渲染
highlight.js11代码语法高亮
simple-git3.27Git 同步
chokidar3.6文件系统监听
electron-builder25应用打包

项目结构

moji-docs/
├── main/                  # 主进程(Node.js)
│   ├── index.ts           #   入口:窗口、协议、IPC
│   ├── database.ts        #   SQLite 初始化
│   ├── indexer.ts          #   文件 → 索引构建
│   ├── git-sync.ts        #   Git 同步调度
│   ├── file-watcher.ts    #   文件系统监听
│   └── ipc/               #   IPC 通道
├── preload/               # 预加载脚本
├── renderer/              # 渲染进程(Vue 3)
│   └── src/
│       ├── views/         #   页面组件
│       └── components/    #   通用组件
├── assets/                # 应用图标
├── scripts/               # 工具脚本
└── doc/                   # 项目文档

开发指南

热更新

修改内容是否需要重启
renderer/ 下的 Vue/CSS 文件不需要(HMR 热更新)
main/ 下的主进程代码需要重新运行 npm run dev

调试

  • 渲染进程:开发模式自动打开 DevTools,或按 Cmd+Option+I
  • 主进程console.log() 输出到终端,或使用 --inspect=9229 连接 Chrome DevTools

版本发布

  1. 更新 package.json 中的 version
  2. npm run build && npm run package
  3. GitHub Releases 创建 Release(tag: v1.x.x
  4. 上传安装包

数据存储

用户数据存储在自选的本地目录中,结构如下:

~/MojiDocs/                    # 笔记根目录(= Git 仓库根)
├── .moji/                     # 应用数据(不同步)
│   ├── index.db               #   SQLite 索引(可重建)
│   └── config.json            #   本地设置
├── assets/                    # 图片资源(Git 跟踪)
├── Getting Started.md         # 笔记文件
└── Projects/                  # 目录
    └── Project A.md
  • 卸载或重装应用不会影响用户数据
  • .moji/ 目录自动被 .gitignore 排除,不会同步到远程

Star History

Star History Chart

开源协议

MIT License © 2018-2025 opqnext