Skip to content

Repository files navigation

HorseMD

CI Release License: MIT

GitHub: BND-1/horseMD · Gitee(国内镜像): yty11167/horse-md · 官网: horsemd.yangsir.net

English · 简体中文

一款温暖、现代的 Markdown 编辑器 —— 一个更顺手的 Typora 替代品,核心理念是 Typora 做反了的那件事:每个文件都作为标签页在同一个窗口里打开,而不是新开一个 程序。左侧文件树浏览整个文件夹,标签页之间随手切换,在干净的所见即所得编辑器里 书写。

HorseMD —— 文件夹工作区、标签页与所见即所得实时渲染

为什么是 HorseMD

大多数 Markdown 编辑器逼你二选一:要么漂亮的所见即所得,要么真正的多文件工作流。 HorseMD 两个都给你:一个单窗口装下整个文件夹的文件树、每个打开的文档都是一个 标签页,编辑器基于 Milkdown(ProseMirror)原地实时 预览。一套代码同时跑在 Windows、macOS 和 Linux 上,整个界面中英文实时可切。

功能

当前发布版本与安装包请以 GitHub Releases 为准;仓库中的开发测试版本可能高于最新正式 Release。

编辑 —— Typora 有的都有

  • 流畅的所见即所得实时预览 —— 输入 Markdown,原地渲染
  • 行首 / 斜杠菜单插入块;智能列表、选中工具条、链接悬浮提示;工具条可在设置中关闭,右键以紧凑子菜单保留格式、审阅和转换操作
  • 表格(单元格内可换行单击单元格直接编辑、按内容自适应列宽、超宽时按需横向滚动、按住列边界可实时调宽)、带语法高亮的代码块(含行号,导出 PDF 也带行号)LaTeX 数学公式Mermaid 图表、图片、任务列表、引用块
  • 可配置图床 —— 粘贴 / 拖入 / 上传图片走你的上传命令(类 Typora),自动插入返回链接;支持 PicGo 客户端(填 picgo 即走其本地服务,和 Typora 一样)
  • 源码模式切换(Ctrl/Cmd+/)查看原始 Markdown —— 阅读时保留视口,编辑时保留可见光标;普通单换行可按原位置显示,表格、列表、代码块和大文档均有回归保护
  • 原文保真保存 —— 富文本只写回实际修改的位置,不会擅自替换列表符号、增加空行、改写 CRLF/BOM 或规范化未触碰的 Markdown
  • 文档位置记忆 —— 重开文档恢复到上次的光标与滚动位置,长文档不用重新滑回写作处(文件被外部修改时自动从头打开,不套用旧位置)
  • 纯文本文件(.txt)用快速纯文本编辑器打开 —— 不走 Markdown 重排,大文件秒开
  • 富文本复制(带内联样式)—— 粘到公众号 / 邮件 / Notion 也能保留格式
  • 浏览器式 PDF 导出中心Ctrl/Cmd+Shift+E)—— 真实分页预览,可配置纸张、横纵向、边距、正文字号、整体缩放、目录页、书签、页眉页脚、页码和范围;公式、Mermaid、表格与图片按打印版排版,不带编辑器控件
  • HTML 导出中心 —— 四种阅读主题、四档内容宽度、字号、行高、文档标题和可点击目录均可实时预览,保存为安全的独立 HTML 文件
  • Pandoc 文档转换 —— 自动检测或手动选择本机 Pandoc,按需导出 Word、EPUB、LaTeX、OpenDocument、RTF 和纯文本,不在安装包中强制捆绑第三方工具
  • 相对路径图片按文件所在目录解析(仅显示用,不改动你的文件内容)
  • 双击图片放大查看(灯箱预览,点背景 / Esc 关闭;单击仍可选中图片、加说明)
  • 原生 HTML 表格(文档里直接写的 <table>…</table>)渲染成真正的表格,和 Typora 一样 —— 仅显示,源码原样保留
  • 审阅标记(CriticMarkup)—— 支持新增、删除、替换和评论标记,可逐项或一键接受/拒绝,源码始终可读

超出 Typora

  • 标签页 —— 多文件同窗(Ctrl/Cmd+Tab 循环切换);顶栏一个 + 快速新建文档;标签右键可复制路径 / 复制文件名 / 打开所在文件夹 / 关闭其他
  • 分屏 —— 两个文档左右并排、都可编辑(标签右键"在右侧分屏打开"或顶栏分屏按钮,右上 ✕ 关闭)
  • 源码 + 预览 —— 在富文本编辑区右键打开双栏,左侧编辑 Markdown、右侧实时查看只读渲染,滚动按当前章节联动
  • 自定义页面宽度 —— 状态栏分段预设(窄/中/宽/全宽)+ 微调滑块
  • 自定义文档 / 代码字体 —— 设置页分别选文档字体和代码字体;从系统已装字体里选(下拉 + 搜索 + 每字体实时预览),代码可用 Nerd Font 等
  • 可组合自定义 CSS —— 多个具名片段可单独启用、排序、重命名和删除;预览覆盖常见 Markdown 元素,桌面端可检查真实文档选择器
  • 自定义主题 —— 把 .css 丢进主题文件夹即可,可直接迁移 Typora 主题;也可跟随系统明暗模式并分别指定日间、夜间主题
  • 未保存草稿不丢 —— 新建但没保存的临时文档,关掉再开也还在
  • 文件夹工作区 —— 文件树,原地新建 / 重命名 / 复制一份 / 删除 / 在访达中显示 / 导出 PDF,支持拖拽移动与展开全部 / 折叠全部;还可把外部文件夹直接拖入窗口加入工作区
  • 云同步文件夹 —— 对明确选择的本地文件夹连接 WebDAV 或 S3 兼容存储;支持首次上传、下载、加入已有工作区、双向同步、预览和冲突保留,不会自动上传普通工作区
  • 在同一窗口打开 —— 双击文件或把一个/多个外部文件拖入窗口 → 分别加入标签;对文件夹"用 HorseMD 打开"或直接拖入 → 作为工作区打开
  • 命令面板Ctrl/Cmd+P)—— 模糊跳转到任意文件或命令
  • 文档内查找Ctrl/Cmd+F)—— 在文档里高亮匹配并实时计数
  • 大纲面板Ctrl/Cmd+Shift+L)—— 点标题即跳转、按层级展开/收起、同级章节拖拽重排;侧栏关闭时可使用右侧低干扰悬浮章节导航
  • 自定义快捷键 —— 设置页录制、清空或恢复默认快捷键,并提供冲突提示;菜单和编辑器命令共用同一套有效配置
  • 设置页(左下角齿轮)—— “外观”集中主题、字体、字号/行距/段距/标题间距/页宽、可组合 CSS、表格和源码样式;“编辑器”只保留校对、换行显示与编辑行为
  • Mermaid 全屏灯箱 —— 点击流程图全屏查看,Ctrl+滚轮缩放 + 拖拽平移
  • 标签拖拽排序 —— 按住标签拖到新位置,顺序持久化
  • 源码↔富文本切换保持位置 —— 切换后仍在同一标题附近
  • 实时字数 / 字符数与阅读时长
  • 会话恢复 —— 重新打开你的文件夹和标签
  • 文件树与打开的文件自动刷新 —— 监听外部改动;本地有未保存编辑时,外部保存会明确提示,不静默覆盖
  • 主页按钮(活动栏)—— 随时回到欢迎页(已打开的标签仍保持加载)
  • 大文档加载骨架屏 —— 打开大文件不再是一段空白
  • 关闭窗口 / 退出时提醒未保存(不只是关标签)
  • 仅通知的更新检查 —— 有新版本时提示并展示更新内容(不自动下载);设置页可手动检查更新
  • 移动端只读模式 —— iOS / Android 顶部可锁定编辑,保留滚动、选择、复制和打开链接,避免阅读时误触改写

命令面板 —— 模糊跳转到任意文件或命令:

命令面板

主题

六套精心调过的主题 —— 暖光 / 暖夜,外加四套低饱和的莫兰迪配色 —— Ctrl/Cmd+Shift+T 或状态栏选择器切换。

暖光 暖夜 莫兰迪·暮
暖光 暖夜 莫兰迪·暮
莫兰迪·灰绿 莫兰迪·豆沙 莫兰迪·雾蓝
莫兰迪·灰绿 莫兰迪·豆沙 莫兰迪·雾蓝

快捷键

大部分应用快捷键可在 设置 → 键盘快捷键 中自定义。支持录制组合键、清空、单项恢复默认、全部恢复默认和冲突提示;加粗、斜体、高亮等编辑器原生命令当前保持固定。

操作 快捷键
新建文件 Ctrl/Cmd+N
打开文件 Ctrl/Cmd+O
打开文件夹 Ctrl/Cmd+Shift+O
保存 / 另存为 Ctrl/Cmd+S / …+Shift+S
导出为 PDF Ctrl/Cmd+Shift+E
导出为 HTML 可在设置中自定义
关闭标签 Ctrl/Cmd+W
命令面板 Ctrl/Cmd+P
文档内查找 Ctrl/Cmd+F
加粗 Ctrl/Cmd+B
切换侧边栏 Ctrl/Cmd+Shift+B
切换大纲 Ctrl/Cmd+Shift+L
切换源码模式 Ctrl/Cmd+/
切换主题 Ctrl/Cmd+Shift+T
循环标签 Ctrl+Tab / Ctrl+Shift+Tab

安装

Releases 页面 下载最新版安装包。

ℹ️ 安装包目前没有花钱买签名,所以 Windows / macOS 第一次打开都会拦一下——不是病毒、不是真的损坏,按下面步骤放行即可。代码完全开源,可自行查看 / 构建。

🍎 macOS 安装(新手请按这个来)

  1. 确认你的芯片:左上角 苹果菜单 →「关于本机」

    • 看到 「Apple M1 / M2 / M3…」(Apple Silicon)→ 下载 HorseMD-x.x.x-arm64.dmg
    • 看到 「Intel」 → 下载 HorseMD-x.x.x.dmg(不带 -arm64 后缀的那个)。
  2. 双击下载好的 .dmg,把里面的 HorseMD 图标拖到「应用程序」文件夹

  3. 第一次打开(重要):直接双击通常会提示 「已损坏,无法打开」或「无法验证开发者」——这是因为没签名,正常现象。任选一种方法放行:

    • 方法 A(最简单,推荐):打开「访达 →『应用程序』」,找到 HorseMD,按住 Control 键点它(或右键)→ 选「打开」,在弹窗里再点一次 「打开」。之后就能像普通软件一样双击使用了。

    • 方法 B(如果方法 A 仍提示「已损坏」):打开「终端」(在「启动台 → 其他 → 终端」,或 Spotlight 搜 终端),把下面这行整段复制粘贴进去、按回车

      xattr -cr /Applications/HorseMD.app

      然后再回到「应用程序」双击 HorseMD 即可正常打开。

这一步每台电脑只需做一次,以后更新版本一般也不用再弄。

🪟 Windows 安装

  1. 下载 HorseMD-Setup-x.x.x.exe,双击运行。
  2. 若弹出蓝色的 SmartScreen「Windows 已保护你的电脑」,点 「更多信息」→「仍要运行」
  3. 按提示安装(可以自己选安装目录),完成后从开始菜单或桌面打开。

签名与公证在计划中 —— 见 CHANGELOG

🐧 Linux 安装

  1. 下载 horse_x.x.x_amd64.deb(Ubuntu / Debian 系,x64)。
  2. 双击用软件中心安装,或在终端运行:
    sudo dpkg -i horse_x.x.x_amd64.deb
    sudo apt-get install -f   # 自动补齐依赖
  3. 从应用菜单启动。需要从终端启动时使用 /opt/HorseMD/horse

目前提供 .deb(amd64);其他发行版(Fedora / Arch 等)可从源码构建(见下方「从源码构建」)。运行依赖:libgtk-3-0、libnotify4、libnss3、libxss1、libxtst6、xdg-utils、libatspi2.0-0、libuuid1、libsecret-1-0。

社群 & 支持

用得顺手的话,欢迎来玩 🐎 一起交流 Markdown 写作、提需求、报 bug。

加我微信 · 拉你进群 微信群(直接扫码) 请我喝杯咖啡 ☕
作者微信 HorseMD 交流群 请作者喝咖啡
加好友备注「HorseMD」,拉你进群,也欢迎直接交流 扫码进群(群码会定期更新,过期就加左边的微信 觉得好用,请作者喝杯咖啡,是持续更新的最大动力

开发

npm install        # 若 Electron 二进制下载被墙,先设镜像:
                   #   ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
npm run dev        # 热重载开发模式
npm run build      # 构建 main + preload + renderer 到 out/
npm start          # 运行构建产物
npm run dist       # 按当前系统出包(Windows NSIS / macOS dmg+zip / Linux deb)

用 AI 助手在本仓库里干活?先读 docs/ai-handoff.md,再看 AGENTS.mdCLAUDE.md

技术栈

Electron + Vite + React 外壳,编辑器引擎用 Milkdown Crepe(基于 ProseMirror)。 外壳(标签页、文件树、命令面板、大纲、主题、多语言)全部自研。架构、功能实现、 踩坑与决策记录见 docs/

文档

贡献

欢迎提 Issue 和 PR —— 见 CONTRIBUTING.md。发现安全问题? 请通过 SECURITY.md 私下报告。

许可证

MIT © 杨庭毅 (yangsir.net)

About

A free Typora alternative, and then some — tabs + file-tree + WYSIWYG Markdown editor for Windows, macOS & Linux | 免费的 Typora 平替:标签页 + 文件树 + 所见即所得

Resources

Contributing

Security policy

Stars

377 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages