MooTool

Handy tool set for developers

View on GitHub

源码基线与参考地图

1. 本次核实范围

日期:2026-09-09。规格起草时仓库 HEAD:3416c70e7a23fb1d5dcbf6244073dae490e8912d。P0 取证时 HEAD:fa4910eef1bda86a5eaa549fcc1d5086607b1770。其他产品和根发布文档可能有未提交修改,本产品不改动它们。检查范围为注册表、布局/CSS、设置、窗口管理、若干算法/服务及既有产品规格。未启动 Electron 做实时截图验收。 JavaFX P0 构建与 macOS x64 app-image 见 验收docs/evidence/2026-09-09-p0/

逐工具规格是开发要求,不能解释为每个原版操作已在本次运行验证。详细实现开始前要补源码审计和同环境实测;静态源码、原版测试、旧文档不一致时,先复现再决定。

项目 源码观察 证据(相对仓库根)
Electron 版本 1.1.4 next/package.json
原 Java 产品 Maven 1.8.6,Java 21,Swing/FlatLaf;不是 JavaFX pom.xmlsrc/main/java/com/luoboduner/moo/tool/ui/
next-fx 工程 独立 Maven 0.1.0-SNAPSHOT,P0 待验收 next-fx/pom.xmldocs/evidence/2026-09-09-p0/
入口 首页 mootool + 25 工具,6 分组 next/src/app/toolRegistry.ts
沉浸布局 所有非首页工具 next/src/features/workbench/immersiveTools.ts
主窗口 默认 bounds 1440×920,最小 1080×720 next/electron/main/index.ts
工具窗口 默认 1100×760,最小 760×560,关闭收回;每工具保留同一 WebContentsView next/electron/main/toolWindowManager.ts
导航尺寸 CSS 定义展开宽 248,隐藏标题宽 84;须结合后续覆盖与实际 computed style next/src/shared/styles/global.css
默认风格 modern、system、blue、UI 13、编辑器 14、统一背景 next/src/shared/contracts/settings.ts
导航与最近 classic、展开、显示分隔线,最近默认隐藏;最近最多 5 项 同上、next/src/app/appStore.ts
设置 主工作区内 SettingsPage,11 类,源 schema 12 next/src/features/settings/SettingsWindow.tsx
历史/收藏 通用历史每工具最多200;通用收藏仅 regex/cron/colorBoard historyRepository.tstoolRegistry.ts
限额 HTTP 响应10 MiB;代码1 MiB、输出2 MiB networkService.tsruntimeExecutionService.ts

这里的 bounds 是 Electron 窗口配置值,不是已测量的 JavaFX Scene 内容尺寸。截图对齐须记录客户区与窗口外框,不能将装饰边框误差误判成内部布局误差。

2. 参考优先级

用户目标 → 本产品已记录的设计决定/验收 → 冻结 Electron 的真实行为、源码及有效测试 → 旧 Java 的算法/平台能力 → 旧迁移计划、截图和其他产品文档。

优先对齐顺序:入口、面板关系、动作顺序、参数/默认、结果语义、状态/键盘、视觉细节。错误算法不因“对齐”而强制保留;同时保留 sourceObservedfxExpected,说明原因。

本仓库已有 Compose 等规格可以作为问题清单参考;它们的技术选型、平台结论和状态不能移植成 JavaFX 事实。本产品文档自足,编译/测试不依赖这些目录。

3. 源码阅读地图

以下 Electron src/next/src/ 起,main/next/electron/main/ 起;Java 相对 src/main/java/com/luoboduner/moo/tool/。路径是阅读参考,禁止写进 FX 的源码目录或 classpath。

范围 Electron 入口 Java 补充
工具、导航、会话 src/app/toolRegistry.tsappStore.tsfeatures/workbench/Workbench.tsx ui/form/MainWindow.javaui/startup/
视觉和公共控件 src/shared/styles/global.csssrc/shared/components/ ui/UiConsts.javautil/EditorFontUtil.java
设置和快捷键 src/features/settings/src/shared/contracts/settings.tssrc/shared/i18n/messages.ts util/ConfigBaseUtil.java,只参考字段,不复制存储地址
编辑器 TextCodeEditor.tsxfindReplace.tscodeEditorViewState.tsfeatures/quickNote/QuickNoteCodeEditor.tsx util/TextAreaUtil.javautil/UndoUtil.java;Swing 控件不直接成为 FX 主编辑器
JSON src/features/json/main/jsonVaultRepository.ts ui/form/func/JsonBeautyForm.javautil/JsonBeautyVaultUtil.java
随手记/附件 src/features/quickNote/main/quickNoteVaultRepository.ts util/QuickNoteVaultUtil.javaQuickNoteFrontmatter.javaQuickNoteAttachmentUtil.java
Git main/vaultGitService.tsvaultGitCheckpointScheduler.ts util/QuickNoteGitUtil.javaVaultExternalRefreshSupport.java
网络和系统 main/networkService.tssystemService.tsdisplaySleepService.ts service/util/HostFileUtil.javaEnvironmentVariableService.java
代码执行 src/features/runtime/main/runtimeExecutionService.ts ui/form/func/JavaConsoleForm.java
动态 Protobuf src/features/protobuf/ util/ProtoBufUtil.javaProtocRunner.java
图片/PDF src/features/image/src/features/pdf/main/imageVectorizationService.tspdfService.ts util/ImageSvgUtil.javaImageCompressUtil.javaImageWatermarkUtil.java
数据/恢复 main/historyRepository.tsfavoriteRepository.tsp5Repository.tsbackupService.tslegacyMigrationService.ts domain/dao/util/SqliteUtil.java
更新和安装 main/update*.tsnext/package.jsonnext/doc/update-products-and-assets.md RELEASE_CONVENTIONS.mdutil/DownloadLinkSelector.java
测试与运行场景 next/src/**/*.test.tsnext/tests/electron/*.spec.ts src/test/ 中对应工具测试

逐工具 TSX 与 Java Form 对照见 功能规格。同名工具还需查看 shared/contracts 和 main service,不能只复制页面按钮。

4. 已识别的易错点

5. 官方资料与版本决策

以下在 2026-09-09 查询。本机已锁定 Azul Zulu 25.0.4.1 x86_64 + OpenJFX 26.0.2 + Maven 3.9.16。JDK 的长期更新依赖所选发行商,不能把 Oracle JDK 的授权或 Gluon 商业支持条件套到所有 OpenJDK/OpenJFX 包上。其他平台仍需各自锁定可再分发构建。

官方资料 本规格依据
OpenJFX 26 Highlights FX26 最低 JDK24;headless 是 prototype,不能代替真实桌面验收
Gluon JavaFX 查询时列出26.0.2;使用公开可分发制品,商业 LTS 补丁可用性另核验
OpenJFX 入门 JavaFX 独立于 JDK;可通过 Maven 取得平台模块、构建自有运行时
Maven 官方下载 查询时发布版为3.9.16,Wrapper固定版本和分发校验
RichTextFX 原生 JavaFX 编辑器基础,查询 README 为0.11.7;列编辑/IME/转移行为仍须本产品验证
StageStyle 26 EXTENDED/HeaderBar 为 preview,独立窗口装饰可用 DECORATED 兜底
Platform 26 FX 线程调度和退出策略使用公开接口
JavaFX CSS JavaFX样式体系与浏览器 CSS 不同,Token 按控件属性实现
JDK25 打包概览 目标 OS 本机打包、自带运行时;JDK25 jpackage 不再默认绑定服务,必须核查服务模块
Protobuf DynamicMessage 动态消息需要 Descriptor;粘贴 .proto 的编译须额外实现

以上资料支持平台约束;文档的 UI Token、目录、服务契约和性能阈值是项目设计目标。依赖在开发时若需升级,先核实官方发布/兼容信息并更新 ADR,不追随 latest 动态解析。

6. 基线证据保存

P0 建 docs/evidence/<日期>-p0/:environment.md、source-baseline.md、screenshots/、results.md。记录源版本/commit/相关 diff、OS/架构、实际客户区、DPI、语言、主题/风格、字体、样本和启动命令。

为对齐测试复制本产品自有 fixtures,记录源文件/版本、输入/选项、源观察、本版预期与比较方法。CI 不依赖相邻目录、不运行其他产品来临时制造期望结果;升级参考版是一次有意的文档变更。