作者:dadong
XMD 是一款基于 Electron、Vue 3、TipTap 和 TypeScript 构建的本地 Markdown 编辑器,提供所见即所得与源码两种编辑方式。
- 所见即所得和 Markdown 源码模式,可保留每个标签页的编辑模式
- 多标签文档,新建、批量打开、保存、另存为和标签排序
- 最近打开文件列表:欢迎页和文件菜单可快速回到最近编辑过的文档,失效条目自动清理
- 表格、任务列表、代码高亮、链接、图片、视频与附件
- 独立文件夹工作区、按需展开目录和外部文件变化自动刷新
- 文档大纲、行数/词数/字符数统计、浅色与深色主题
- 磁盘修改冲突检测和原子写入,避免静默覆盖外部修改
- 退出时保存全部、放弃修改或取消退出
- 未保存草稿自动恢复;正常保存或明确放弃后自动清理
- 可配置的自动保存:停止输入一段时间后自动写入磁盘,未命名文档仍需手动保存
- Windows、macOS、Linux 安装包和应用内更新检查
- 文件关联:安装后双击 .md / .markdown / .txt 直接用 XMD 打开;Windows 右键菜单提供「使用 XMD 打开」
项目使用 Bun 1.3.14,版本与 CI 保持一致。
bun install --frozen-lockfile
bun run dev常用检查命令:
# 渲染进程类型检查
bun run typecheck
# Electron 主进程和 preload 类型检查
bunx tsc --noEmit -p tsconfig.node.json
# 只检查,不修改文件
bun run lint
# 自动修复可修复的 lint 问题
bun run lint:fix
# 生产构建
bun run build安装包在官网下载页和 GitHub Releases 发布,按系统和芯片选择对应文件。Windows 下载 exe 后按向导安装即可,下面是 macOS 和 Linux 的安装步骤。
Apple 芯片(M 系列)下载 XMD-<版本>-macOS-arm64.dmg,Intel 芯片下载 XMD-<版本>-macOS-x64.dmg。要求 macOS 12 或更高版本。
-
双击 DMG,把 XMD 图标拖进「应用程序」文件夹。
-
首次启动会被 Gatekeeper 拦截,因为安装包没有代码签名。在「应用程序」中按住 Control 点击 XMD 图标,选择「打开」,再在弹窗里确认一次;没有「打开」菜单时,到「系统设置 → 隐私与安全性」中点击「仍要打开」。
-
提示「XMD 已损坏」说明应用被系统加上了隔离属性,在终端执行下面的命令解除隔离,然后重新打开:
xattr -dr com.apple.quarantine /Applications/XMD.app
x86_64 机器下载 XMD-<版本>-Linux-x86_64.AppImage,arm64 机器下载 XMD-<版本>-Linux-arm64.AppImage。要求主流 64 位 Linux 发行版。
-
打开终端进入 AppImage 所在目录,赋予执行权限并运行:
chmod +x XMD-<版本>-Linux-x86_64.AppImage ./XMD-<版本>-Linux-x86_64.AppImage
-
提示缺少 FUSE 时(Ubuntu 22.04 及更新的系统默认不带 libfuse2),安装依赖,或用免 FUSE 方式启动:
sudo apt install libfuse2 ./XMD-<版本>-Linux-x86_64.AppImage --appimage-extract-and-run
-
需要开始菜单图标和
.md文件关联时,把 AppImage 移到~/.local/bin等固定目录,再用 AppImageLauncher 完成桌面集成。
Ctrl+N:新建文档Ctrl+O:打开一个或多个文档Ctrl+S:保存Ctrl+Shift+S:另存为Ctrl+B:显示或隐藏侧栏Ctrl+,:打开设置
侧栏中的“打开文件夹”用于建立独立工作区。工作区路径会保存在 Electron 用户数据目录,下次启动时自动恢复;工作区内新增、删除或重命名文件后,文件树会自动刷新。
编辑中的未保存内容会写入 Electron 用户数据目录。应用异常退出后,下次启动会恢复这些标签页。正常保存、关闭并放弃或退出并放弃时,对应草稿会被清理。
安装应用后,双击 .md、.markdown 或 .txt 文件即可直接用 XMD 打开;Windows 资源管理器中还可以通过右键菜单选择“使用 XMD 打开”。若应用已在运行,新打开的文件会进入现有窗口的新标签页。
bun run dist:win
bun run dist:mac
bun run dist:linux构建产物写入 release/。Windows 使用 NSIS,macOS 使用 DMG,Linux 使用 AppImage。当前安装包未配置代码签名,操作系统可能显示未知发布者提示。
.github/workflows/build.yml 支持手动构建,也会在推送 v* 标签时构建三个平台并创建 GitHub Release。发布前需保证 package.json 中的版本与标签一致:
git tag v1.0.3
git push github v1.0.3Free code signing is provided by SignPath.io, with a certificate issued by the SignPath Foundation.
- Committer and reviewer: mr-dadong
- Approver: mr-dadong
- 完整政策:CODE_SIGNING_POLICY.md
- 隐私政策:PRIVACY.md
electron/ Electron 主进程、preload、IPC 与路径权限
src/ Vue 界面、编辑器扩展、组合式状态和服务
functions/ Cloudflare Pages Functions
worker/ Cloudflare Worker
site/ 项目发布站点
build/ 安装包资源
changelogs/ 应用更新清单与版本说明