☰
QOwnNotes 功能全景指南:纯文本 Markdown 笔记、Nextcloud 生态与内置 AI/MCP 支持
2026/10/14 14:57:36 网站建设 项目流程
  • 桌面应用

【免费下载链接】QOwnNotes

QOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.

项目地址:https://gitcode.com/gh_mirrors/qo/QOwnNotes
点击查看免费下载

QOwnNotes 是一款基于 Qt、采用 C++ 编写的开源(GPL)纯文本 Markdown 笔记与待办事项管理软件,支持 GNU/Linux、macOS 与 Windows,并可(可选)与 Nextcloud / ownCloud 生态深度协作。读完本文,你将完整掌握 QOwnNotes 的核心功能地图——从直接使用现有 Markdown 文件的存储模型、标签与子文件夹组织方式、AES-256 内置加密,到 Nextcloud Deck 卡片、共享笔记、服务端版本与回收站恢复,以及脚本系统、Vim 模式、浏览器扩展和内置 AI 与 MCP 服务器等扩展能力,并了解这些功能在仓库源码中的底层实现依据。

名称由来与项目定位

QOwnNotes 的名字由三部分组成,恰好概括了它的设计哲学:

  • Q:代表项目所使用的 Qt 框架;
  • Own:强调"你自己拥有自己的笔记"——所有笔记数据归用户所有,不依赖任何专有云;
  • Notes:回归笔记的本来用途。

在此基础上,官方文档给出明确定位:QOwnNotes 是面向 GNU/Linux、macOS 和 Windows 的开源纯文本文件Markdown 笔记应用,它可以(可选)与 Nextcloud 与 ownCloud 的Notes 笔记应用协同工作。项目主页文档见 webpage/src/getting-started/overview.md,核心概念说明见 webpage/src/getting-started/concept.md。

核心设计理念:你拥有自己的 Markdown 文件

与许多"锁数据于自有格式"的笔记软件不同,QOwnNotes 的全部笔记以纯文本 Markdown 文件形式存放在你自己选择的本地文件夹中,这是整个项目最重要的事实基础:

  • 无需导入即可使用:你可以直接使用已有的文本文件或 Markdown 文件,大多数情况下不需要任何导入操作;对 Evernote 与 Joplin 则提供了专门的导入支持;
  • 数据归你所有:笔记、媒体与附件文件都由你掌控,你完全可以用任意其他文本编辑器打开、查看甚至编辑这些文件;
  • 多笔记文件夹:笔记文件夹可以自由选择,并且支持同时使用多个笔记文件夹。

从源码层面可以印证这一设计。笔记文件夹由NoteFolder实体管理,每个笔记文件夹保存本地路径(localPath)并可创建为数据库记录,参见 src/entities/notefolder.cpp#L32-L100;首次启动时若笔记路径不存在,应用会引导用户选择或创建笔记文件夹,逻辑位于 src/main.cpp#L453-L509。

另外,QOwnNotes本身不负责文件同步——官方文档明确指出:文件同步是复杂工程,社区已有成熟的同步方案,QOwnNotes 的职责是专注笔记编辑与管理。笔记文件的外部变更会被自动监视(笔记或笔记列表自动重载),这一行为由主窗口持有的QFileSystemWatcher noteDirectoryWatcher(src/mainwindow.h#L955)配合NoteIndexManager中的目录/文件变更连接实现(src/managers/noteindexmanager.cpp#L1268-L1282)。

功能全景

低资源消耗的原生应用

QOwnNotes 使用 C++ 编写,针对低资源消耗做了优化,不使用 CPU 与内存开销巨大的 Electron 应用。源码由 Qt Widgets 构建(入口在 src/main.cpp,工程文件为 src/QOwnNotes.pro 与 src/CMakeLists.txt),这使其非常适合在老旧硬件或常驻后台的场景中长期运行。

Nextcloud / ownCloud 生态协作

QOwnNotes 与自托管生态的集成是其标志性能力:

  • 兼容 Nextcloud Notes 应用:与 Nextcloud / ownCloud 的 Notes 应用、移动端及 Nextcloud Text 保持兼容,桌面端与网页端/移动端可读写同一批 Markdown 文件;
  • Nextcloud Deck 卡片:可以直接在笔记中创建 Nextcloud Deck 卡片并链接到它们;
  • 笔记共享:支持在 ownCloud / Nextcloud 服务器上公开共享笔记;
  • 待办列表管理:可管理 Nextcloud / ownCloud 待办列表(Nextcloud tasks 或 Tasks Plus / Calendar Plus),也可以连接其他 CalDAV 服务器同步任务;
  • 版本恢复:通过服务端 QOwnNotesAPI 应用,可以从 Nextcloud / ownCloud 服务器恢复笔记的旧版本;
  • 回收站恢复:可从服务器恢复已删除笔记,同时还有本地回收站与系统回收站两种模式可选。

笔记组织:分层标签、子文件夹与 Wiki 链接

  • 分层笔记标签与笔记子文件夹:支持层级化的标签体系,子文件夹支持移动、重组时自动更新链接,并可选择性控制子文件夹可见性;
  • Wiki 风格笔记链接(可选):支持[[Note]]形式的链接,并附带自动补全、标题锚点(heading anchors)、别名(aliases)、反向链接(backlinks)与重命名重构支持。反向链接的实际计算逻辑可在 src/widgets/backlinkwidget.cpp#L59-L84 中看到,它负责扫描并展示指向当前笔记的其他笔记。

内置 AES-256 加密与自定义加密

笔记加密是可选功能,默认内置AES-256加密,也可通过脚本接入自定义加密方法,例如 Keybase.io)或PGP(示例见 docs/scripting/examples/encryption-pgp.qml)。

从源码可以确认内置加密的技术细节(src/entities/note.cpp#L93-L98):

  • 加密信封版本(v2):qon-crypto: 2;
  • KDF:PBKDF2-HMAC-SHA1,迭代次数300000;
  • 加密算法:AES-256-CBC-PKCS7-HMAC-SHA1;
  • 随机 salt 长度 32 字节、nonce 长度 16 字节;
  • 加密文本以<!-- BEGIN ENCRYPTED TEXT --/-- END ENCRYPTED TEXT -->标记包裹(src/entities/note.h#L49-L51)。

同时,Note::encryptNoteText的实现(src/entities/note.cpp#L5005-L5074)显示:加密时保留笔记前两行明文(通常为标题与时间戳),剩余正文通过脚本加密钩子或内置 Botan 实现加密,若脚本返回空则自动回退到内置 Botan 加密。命令行还可通过--decrypt-note与--decrypt-note-password参数直接解密笔记文件(见 src/main.cpp#L118-L211)。

强大的搜索能力

支持在笔记中搜索词语的部分片段(子串搜索),搜索结果会在笔记中高亮显示。搜索模块的交互实现位于 src/managers/searchfiltermanager.cpp。

编辑器增强:拼写、语法与 LSP

编辑器层提供了从拼写到语法再到智能补全的完整检查链路:

  • 拼写检查:内置支持,详见 拼写检查;
  • LanguageTool(可选):接入本地或远程 LanguageTool 服务器做语法与风格检查,详见 LanguageTool;
  • Harper(可选):接入本地 Harper 服务做离线语法与风格检查,详见 Harper;
  • Markdown LSP(可选):例如 Marksman。

扩展生态:浏览器扩展、脚本与 AI

  • 浏览器扩展:QOwnNotes Web Companion 可以从选中文本创建笔记、截图或管理书签,详见 浏览器扩展;
  • 脚本系统:内置脚本支持与在线脚本仓库;
  • 内置 AI 支持:提供与 OpenAI、Groq 等提供商的脚本集成;
  • 内置 MCP 服务器:让外部 AI Agent 可以安全地搜索与获取笔记。

关于 MCP 服务器,源码提供了清晰的实现证据(src/services/mcpservice.cpp):

  • 服务默认监听本地回环地址,端口默认为22226(Debug 构建为 22227),见 src/services/mcpservice.cpp#L90-L102;
  • 通过SettingsService的ai/mcpServerEnabled、ai/mcpServerPort、ai/mcpServerToken三个配置项控制启用、端口与令牌(src/services/mcpservice.cpp#L86-L132),令牌可自动生成(32 位随机串)并通过CryptoService加密存储;
  • 暴露两个工具:search_notes(按文本查询搜索笔记,支持多词 AND 逻辑与引号短语,默认返回 20 条、上限 100 条)与fetch_note(按名称或 ID 获取笔记全文),见 src/services/mcpservice.cpp#L363-L435;
  • 所有请求通过 HTTP Bearer Token 鉴权校验(src/services/mcpservice.cpp#L564-L584)。

其他值得注意的能力

  • Vim 模式:内置 fakevim 实现(构建配置见 src/CMakeLists.txt#L172-L177,代理实现在 src/helpers/fakevimproxy.cpp);
  • 便携模式(Portable mode):可将 QOwnNotes 随身携带在 U 盘上使用。源码中--portable参数会切换为 INI 格式设置并将设置路径置于应用目录内,同时关闭 QML 磁盘缓存(src/main.cpp#L767-L773);
  • Web 应用:可通过网页应用把手机照片插入桌面端 QOwnNotes 的当前笔记中,详见 Web 应用;
  • 命令行片段管理器:管理命令片段并直接在命令行执行,详见 命令行片段管理器;
  • QOwnNotes TUI:键盘优先的终端笔记浏览与编辑器,直接读取本地 Markdown 笔记文件,详见 QOwnNotes TUI;
  • QOwnNotes Android:推荐用于移动端访问 Nextcloud / ownCloud 笔记的离线可用 Markdown 笔记应用,详见 QOwnNotes Android。

外观与界面特性

在观感与交互层面,QOwnNotes 提供以下能力:

  • Markdown 高亮与预览模式:包含内联图片预览、Markdown 标题折叠,以及可选地隐藏 Markdown 格式语法;
  • 深色模式:支持主题实时切换与自定义配色模式(可带独立强调色);
  • 语法高亮主题化:Markdown 语法高亮支持自定义主题;
  • 完全可停靠面板:所有面板可自由放置,甚至可浮动或堆叠;
  • freedesktop 主题图标:可使用系统原生桌面图标,配合你喜欢的深色桌面主题;
  • 专注模式三件套:免打扰模式(Distraction free mode)、全屏模式(Full-screen mode)、打字机模式(Typewriter mode);
  • 行号显示;
  • 块选择与其他高级用户编辑器工作流;
  • Wayland 全局快捷键支持;
  • 外部变更差异对比:当笔记被外部修改时,会在对话框中展示当前笔记与外部修改版本之间的差异。

多语言支持与翻译协作

QOwnNotes支持超过 60 种语言,包括英语、德语、法语、波兰语、中文、日语、俄语、葡萄牙语、匈牙利语、荷兰语和西班牙语等。仓库中存放着完整的 Qt 翻译文件(.ts),见 src/languages 目录(包含QOwnNotes_zh_CN.ts、QOwnNotes_zh_TW.ts等),应用启动时通过loadTranslations()按系统区域加载对应语言包(src/main.cpp#L58-L85)。

如果你希望改进现有翻译或帮助翻译更多语言,欢迎参与官方翻译协作,说明见 翻译贡献指南。

结语

QOwnNotes 的能力地图可以概括为一条主线:以用户拥有的纯文本 Markdown 文件为唯一事实来源,在此基础上叠加 Nextcloud / ownCloud 生态集成(共享、Deck、待办、版本、回收站)、层级化组织(标签、子文件夹、Wiki 链接)、加密安全(AES-256 + 自定义脚本加密)以及高扩展性(脚本系统、浏览器扩展、AI 与 MCP、Vim、便携模式)。无论你是想彻底掌控自己笔记数据的本地优先用户,还是希望与自托管云服务深度打通的 Nextcloud 用户,这套功能组合都值得按本文所列条目逐项尝试。

  • 桌面应用

【免费下载链接】QOwnNotes

QOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.

项目地址:https://gitcode.com/gh_mirrors/qo/QOwnNotes
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询