MooTool

Handy tool set for developers

View on GitHub

逐工具功能与兼容规格

全部条目均为待开发要求,当前没有已实现的 FX 功能。本清单整理仓库既有对齐规格并复核关键 Electron 源码;每项开发前仍须读取实际页面、算法、服务和测试,枚举细粒度控件并保存实测证据。状态不能从其他产品继承。

1. 工具注册与参考入口

保留 26 个入口 = 首页 + 25 个工具。分组顺序 text/dev/network/encode/daily/system;ID 是稳定持久键,显示名可本地化。

表内 Electron 路径相对 next/src/features/;Java Form 相对 src/main/java/com/luoboduner/moo/tool/ui/form/func/,首页例外。

编号 Tool ID 名称 / 分组 Electron 页面 Java 参考
F00 mootool 首页 / home home/HomePage.tsx ../AboutForm.java
F01 quickNote 随手记 / text quickNote/QuickNoteTool.tsx QuickNoteForm.java
F02 textDiff 文本对比 / text diff/TextDiffTool.tsx TextDiffForm.java
F03 reformat 格式化 / text reformat/ReformatTool.tsx FileReformattingForm.java
F04 json JSON / dev json/JsonTool.tsx JsonBeautyForm.java
F05 java 代码运行 / dev runtime/RuntimeTool.tsx JavaConsoleForm.java
F06 ymlProperties 配置转换 / dev config/ConfigConvertTool.tsx YmlPropertiesForm.java
F07 protobuf Protobuf / dev protobuf/ProtobufTool.tsx ProtoBufForm.java
F08 variables 环境变量 / dev variables/VariablesTool.tsx VariablesForm.java
F09 http HTTP 请求 / network http/HttpTool.tsx HttpRequestForm.java
F10 host Host / network host/HostTool.tsx HostForm.java
F11 net 网络/IP / network net/NetTool.tsx NetForm.java
F12 uaParse UA 分析 / network ua/UaParseTool.tsx UaParseForm.java
F13 encode 编码解码 / encode encode/EncodeTool.tsx EnCodeForm.java
F14 crypto 加解密/随机 / encode crypto/CryptoTool.tsx CryptoForm.java
F15 regex 正则 / encode regex/RegexTool.tsx RegexForm.java
F16 cron Cron / encode cron/CronTool.tsx CronForm.java
F17 qrCode 二维码 / encode qrcode/QrCodeTool.tsx QrCodeForm.java
F18 timeConvert 时间转换 / daily time/TimeConvertTool.tsx TimeConvertForm.javaClockForm.java
F19 messageBoard 留言板 / daily messageBoard/MessageBoardTool.tsx 以 Electron 为准
F20 translation 翻译 / daily translation/TranslationTool.tsx TranslationForm.java
F21 calculator 计算器 / daily calculator/CalculatorTool.tsx CalculatorForm.java
F22 colorBoard 调色板 / daily color/ColorBoardTool.tsx ColorBoardForm.javaColorPickerForm.java
F23 image 图片助手 / daily image/ImageTool.tsx ImageForm.java
F24 pdf PDF / daily pdf/PdfTool.tsx PdfForm.java
F25 hardware 系统信息 / system hardware/HardwareTool.tsx HardwareInfoForm.java

所有工具适用的共同行为:切页/窗口转移保留输入输出、选项、Tab、选区与滚动;正确处理空态、执行、成功、失败和取消;输出可选择复制;错误保留输入与标明的上次有效结果。不要自动把每次按键记为一次历史。

注册表中 mootool/hardware/messageBoard 不声明通用历史,其余声明支持。通用收藏仅 regex/cron/colorBoard;请求集合、单词本、Vault 有各自数据模型。

2. 逐工具规格

F00 首页

布局:限宽居中内容,品牌/产品版本、介绍、贡献者、赞赏、源码/帮助和其他作品;可纵向滚动。

F01 随手记

布局:左 Vault 树,中编辑/预览,右可折叠快速替换;顶部紧凑工具栏,底部文档路径、保存与统计。

快速替换共 24 项,选区优先,否则全文;每次为可撤销事务。locale 排序、换行归一、数字精度应固定 fixtures。

ID 语义
trim 每行去首尾空白
removeBlankLines 删除空白行
removeTabs 移除 Tab
scientificToNormal / normalToScientific 科学计数与普通数字互转
thousandsToNormal / normalToThousands 移除/添加千分位
underscoreToCamel / camelToUnderscore 命名转换
uppercase / lowercase 大小写转换
linesToComma 多行转逗号列表
linesToSingleQuoted / linesToDoubleQuoted 转单/双引号包裹列表
commaToLines / tabsToLines 分隔符转行
clearNewlines 移除换行
deduplicateLines / deduplicateWithCount 行去重/去重并计数
escape / unescape 字符串转义/还原
reverseLines 行序反转
sortAscending / sortDescending 行排序

验收:5 MiB 文档、连续图片粘贴、列编辑 undo/redo、双击选词后自动保存、分栏切换/分离收回后 undo、磁盘满、外部修改冲突、重启恢复。

F02 文本对比

布局:上模式/选项、左右文本输入/结果,Unified 模式保留原有差异区关系。

F03 格式化

布局:文本/文件 Tab;Nginx、Java、XML、HTML 类型及缩进选择,保持输入/操作/结果关系。

F04 JSON

布局:左 JSON Vault,中主编辑器,右格式/转换/JSONPath 检查器;窄窗口优先折叠辅助面板。

工具栏以 JsonToolbar.tsx 为参照:格式化、压缩、字体、换行、复制、查找、导入、导出、历史、更多、清空。保留主要动作位置与方向。

  1. 校验、2/4 空格格式化、压缩、错误定位与结构摘要。
  2. 递归 key 排序、忽略大小写、重复 key 检测;检测必须在普通 Map 丢弃重复项之前完成。
  3. JSON ↔ XML、JSON ↔ JavaBean;类名、嵌套、数组、类型推断及结果弹层。JavaBean 支持边界以 fixtures 固定,不宣称编译任意 Java 项目。
  4. Key/Value 互换、JSON 字符串转义/还原、普通/Java 字符串相关转义动作,明确各按钮语义。
  5. JSONPath 输入、查询结果、路径树选择、路径/值预览及双击行为;递归、数组索引/切片、联合、filter、路径转义需真实可用。
  6. 查找/替换:大小写、全词、正则、计数、前后导航;字体、换行、复制、文件操作与历史恢复。
  7. Vault 文件/目录 CRUD、重命名、复制、移动/拖放、排序、忽略文件、树状态、当前文件恢复、外部监视。
  8. Git 工作流与冲突,P6 补齐后才可将完整 F04 标记通过。

JSON 文本编辑保留大整数与小数字面量;不能先转 Double 再声称无损。格式化与转换分别定义数值策略。JSONPath 不执行任意 JS;不支持的语法明确错误,不能只做 $.a.b 冒充全部功能。

验收:中文/emoji/嵌套数组/重复 key、9007199254740993、转义路径、真实筛选、错误行列、3 MiB 输入、Vault 移动后重启、保存冲突、窗口转移的选区与 undo。

F05 代码运行

布局:Java/Groovy、Python、Node.js 三个主 Tab;首个 Tab 内选择 Java 或 Groovy;上编辑下输出。

F06 配置文件转换

布局:Properties ↔ YAML 的左右输入输出与中间动作,保留 YAML 校验/格式化。

F07 Protobuf

布局与 Tab:JSON/Binary、Wire、Hex/Base64;schema 编辑器 + message 名,相关输入输出。

F08 环境变量

布局:作用域/信息 Tab、搜索/刷新/复制/导出、变量表。

F09 HTTP 请求

布局见 UI 文档:左请求集合,右 Method+URL+发送/取消,请求上/响应下分栏。

F10 Host

布局:左方案列表,右 hosts 编辑与操作,系统 hosts 独立查看入口。

F11 网络/IP

布局:左命令结果、右功能区;IPv4 ↔ Long、ping、DNS/地址解析、WHOIS、本机地址。

F12 UA 分析

布局:原文输入、样例/预设、解析操作、浏览器/引擎/OS/设备等结构化结果。

F13 编码解码

布局:保留 Unicode、URL、UTF-8 Hex、ASCII 等操作分区/顺序与输入→输出关系。

F14 加解密与随机

Tab 顺序:对称、非对称、摘要、Base64/Base32、随机。

F15 正则

布局:表达式/flags、测试文本、匹配/捕获结果,常用/收藏及历史入口。

F16 Cron

布局:秒、分、时、日、月、周、年构建器,表达式反向解析、预设、时区、解释、未来 10 次执行与收藏。

F17 二维码

Tab:生成、识别。参数、预览、保存/复制/历史关系保留。

F18 时间转换

布局:秒/毫秒与日期时间双向、时区、当前/快捷时间及全屏时钟。

F19 留言板

布局:左控制、右大字预览,演示隐藏控制;本地展示牌,无在线发布。

F20 翻译

Tab:翻译、单词本、历史;源/目标语言、Google/Bing、交换、自动/手动、复制/清空。

F21 计算器

布局:表达式输入和等号按钮,进制、GCD/LCM、排列组合及本地记录。

F22 调色板

布局:主色/对比色、主题/标准色、格式、取色、运算和收藏/历史。

F23 图片助手

布局:顶部完整操作、左图片库、中画布、底部缩放;列表折叠、多选批量。

F24 PDF

Tab 顺序拆分、合并;任务表、文件、页数/大小、页码/规则、状态、最近输出。

F25 系统信息

Tab:系统、CPU、内存、存储、网络;结构化字段/表格、刷新、复制、敏感字段脱敏。

3. 应用级功能

A01 设置

保留 11 类和次序,自有 schema。所有有效设置必须真正影响运行结果;未支持项显示状态与原因,不保留假开关。

分类 字段/行为
general 中文/英文/日文、自动检查/下载更新、启动最大化、关闭 ask/hide/quit、托盘
appearance modern/quiet/hero/smartisan/miui-v5/claude 六风格、system/light/dark、六强调色、字体/字号、统一背景
layout 最近、紧凑、分隔线、隐藏标题、classic/card/grouped、自定义组/隐藏工具、面板尺寸
editor SQL 方言、JSON/随手记字体字号、软换行;适用操作实际读取这些设置
network 代理开关/地址/端口/用户名/密码、HTTP/翻译超时
data 实际数据路径、打开目录、备份/恢复、显式导入、报告
vault JSON/随手记路径、Git remote/用户名/token、自动提交/拉取、忽略规则、树展开策略
runtime Java/Groovy/Python/Node 路径、检测、草稿/参数/工作目录
tools QR 尺寸/纠错、随机长度、导出目录、默认翻译器与语言
shortcuts 搜索/设置键绑定、冲突检查、完整平台快捷键帮助
about JavaFX 产品名/版本、更新状态/下载校验、版本说明、许可和帮助

默认值:中文、system、modern、blue、UI 13、编辑器 14、classic、最近隐藏、软换行、关闭 ask、托盘开启(不可用时提示)、HTTP 30000 ms、翻译 15000 ms、QR 300/M、随机长度 16。Vault 自动行为先配置库再生效,不能对未选择目录启动后台 Git。

A02 历史、收藏、命令搜索

A03 桌面、存储、备份、Git、更新

全部遵循 数据、平台与发布。这些不额外计入 25 工具,但缺少它们不能把项目标成完整产品。

4. 兼容样本格式

每项至少记录:caseId、toolId、sourceProduct/sourceCommit/sourceFile、输入、选项、期望结果/错误、比较方法、JavaFX 差异编号。保存到本产品 fixtures;CI 不启动其他版本来动态生成“期望值”。

比较方法:确定输出比文本/bytes;结构允许差异比 AST/协议内容;随机化加密/QR/PDF 用跨实现消费;随机数/系统数据比不变量;窗口/输入法比实际交互和截图。

源实现错误时保留 sourceObservedfxExpected 及理由,不能覆盖原记录让测试迎合错误实现。原版未有的改进要标为设计决定,不回写成源事实。

5. JavaFX 实施补充和细项记录

每个 Fxx 在开发时拆成 Fxx.01、Fxx.02 等动作行,保存到 docs/evidence/<日期>-<阶段>/parity.md:原控件/位置、输入选项、FX控件/服务、默认值、期望、测试case、平台结果、差异编号。关键项缺失时Fxx整体不能标已验收。