本地 Markdown + SVN 版本管理的桌面文库。从 Electron 重写为 Qt 三层壳(WenJia.exe → WenJiaUI.dll → WenJiaCore.dll),Core 零 Qt、纯 C ABI,导航与检索已落地。
本地 Markdown + SVN 版本管理的桌面文库。从 Electron 重写为 Qt 三层壳(
WenJia.exe → WenJiaUI.dll → WenJiaCore.dll),Core 零 Qt、纯 C ABI。Electron 首发见 《功能介绍(Electron)》。
文匣面向需要「离线优先、版本可追溯」的个人与团队知识管理:笔记就是磁盘上的 .md,版本与协作走 SVN(本机 file:// 或远程 trunk),而不是云账号、订阅或专有同步。
Qt 版产品边界比 Electron 首发更收束:
.md 并纳入版本库;页脚「同步」= svn updateCtrl+Shift+N 浮窗写入 Inbox,不打断当前写作首版不做账户、订阅、云同步、多文库。

主界面:文库树、笔记列表、Markdown 编辑与预览、右侧大纲/历史
无边框窗口 + 原生菜单栏。最小宽度约 1100px 时四栏同时展开。
| 区域 | 说明 |
|---|---|
| 标题栏 / 菜单 | 文件、编辑、视图、跳转、帮助 |
| 左栏 | 嵌套文件夹树 |
| 中栏 | 当前文件夹笔记列表(摘要、时间、标签、置顶) |
| 编辑区 | 标题、工具栏、编辑 / 预览分栏 |
| 右栏 | 大纲、修订历史、元数据 |
| 底栏 | SVN 状态、路径、字数与行列 |
Ctrl+G 转到行/列Ctrl+Alt+Z 同一文档进出专注写作(收起侧栏与右栏)Electron 版里 Ctrl+P / Ctrl+K 多为桩。Qt 版拆成两件事,避免「一个框干两件事」:
| 入口 | 快捷键 | 做什么 |
|---|---|---|
| 快速打开 / 命令 | Ctrl+P | 按文件名跳转,或执行设置、捕获、历史等命令 |
| 全局搜索 | Ctrl+K | 标题与正文命中,支持仅标题 / 仅标签 |
| 跳转 → 最近 | 菜单 | 真实 MRU:打开、保存、捕获后记录,跨会话保留 |

Ctrl+P:按文件名打开,偏导航与命令

Ctrl+K:全文检索与最近打开芯片
灵感稍纵即逝时不必先回到工作台:

捕获浮窗:标题、正文、目标文件夹,默认 Inbox
笔记即工作副本里的文件。
| 模式 | 适用 |
|---|---|
| 本地文库 | 单机 file://,首次打开可建仓并 checkout |
| 远程 Trunk | 团队 SVN 服务器 URL |
设置项包括远程 URL、会话级用户名/密码、信任服务器证书、提交前自动 update。页脚显示修订号;Ctrl+Shift+U 同步工作副本。

本地 / 远程、会话口令、空 checkout 不种示例笔记
当前笔记可看 SVN 修订历史(右栏或独立对话框):

单篇笔记的 log / diff / 恢复
| 操作 | 快捷键 |
|---|---|
| 快速捕获 | Ctrl+Shift+N |
| 新建笔记 | Ctrl+N |
| 保存 | Ctrl+S |
| 快速打开 / 命令 | Ctrl+P |
| 全局搜索 | Ctrl+K |
| 同步工作副本 | Ctrl+Shift+U |
| 切换主侧栏 | Ctrl+B |
| 专注写作 | Ctrl+Alt+Z |
| 转到行/列 | Ctrl+G |
| 设置 | Ctrl+, |
| 关闭当前标签 | Ctrl+W |
.md 并纳入 SVNr| 维度 | Electron 首发 | Qt 重构 |
|---|---|---|
| UI | Chromium + React | Qt Widgets + QSS,ProtoType/ 先行 |
| 运行时 | 单一 Electron 包 + Koffi 调 DLL | 壳只 QLibrary 加载 Ui,Ui 不链 Core 导入库 |
| 导航 | Ctrl+P / Ctrl+K 多为桩 | 独立对话框,测试对齐原型文案与焦点环 |
| 同步 | SVN local/remote | 仍是 SVN,去掉账户 / 云 / 订阅愿景 |
| 升级 | 常见另起 updater | 壳内 Upgrade.dll 同进程 staging,无第二 exe |
| 工作台 | 四栏 + 历史 Tab | 四栏 + 大纲 / 历史 / 元数据 |
产品叙事从「现代 Web 桌面壳」收回到「笔记还是你的 .md,版本在 SVN 里」。
WenJia.exe → WenJiaUI.dll → WenJiaCore.dll
(loader) (Host run) (零 Qt / C ABI)
└──────── → Upgrade.dll(仅壳加载)
三条硬边界:
sdtech_qt_ui_host_run)CoreClient 调 CoreAUTOMOC/UIC/RCC 关闭);sqlite、libsvn、业务规则都在这里Ui ↔ Core 是 C 函数表:create / destroy / kv_* / invoke。业务用 dotted JSON 方法,例如 library.tree、notes.list、note.get / note.save、capture.save、search.query、note.restore、svn.status / update / log / diff / config.*、notes.recent。
落盘大致是:
| 位置 | 内容 |
|---|---|
dataDir/library/ |
工作副本,一篇笔记一个 .md |
wenjia.db |
Core 内 KV(界面偏好等) |
recent-notes.json |
最近打开(MRU) |
升级没有 updater.exe:Upgrade.dll 下到 update/staging/,下次启动、尚未加载插件时由壳做文件拷贝(包内禁止带 exe)。
| 项 | 说明 |
|---|---|
| 语言 | C++20 |
| UI | Qt 6.5+(预设 C:/Qt/6.11.1/msvc2022_64) |
| 构建 | CMake 3.21+,MSVC 2022 x64 |
| Core | libsvn、OpenSSL、sdtech sqlite3 / json |
| 测试 | GTest(Core)+ Qt Test(页面 offscreen) |
cd Function
cmake --preset msvc2022
cmake --build build --config Release --target WenJiaApp
.\build\bin\WenJia.exe
CMAKE_PREFIX_PATH 默认指向上述 Qt 套件。离线安装可用 D:\toolchains 里的 Qt 归档。
| 版本 | 说明 | 下载链接 |
|---|---|---|
| 绿色版 | 解压即用 | 待补充 |
| 安装版 | 一键安装 | 待补充 |
| 源码包 | Qt 工程源码 | 待补充 |
解压密码:1150。此处不放 Electron 旧包。
文匣适合个人知识库、产品/研发笔记,以及已经在用 SVN 的团队文档协作。Qt 版把原型主路径做成可测的原生界面,并把业务关在零 Qt 的 Core 里。若有功能建议,欢迎反馈。
Electron 首发说明仍见 《功能介绍(Electron)》。