用途:这是 ShareX/XerahS 的上传器与注解两个子系统的设计规格,用于在明确评审这些子系统契约时查阅,不是面向终端用户的操作指南。
主要能力(上传器):将 IUploaderPlugin 重命名为 IUploaderProvider,区分 provider 类型与已配置实例;ProviderCatalog 作为静态注册表,InstanceManager 单例管理实例生命周期、持久化与默认选择;提供 UploaderInstance、InstanceConfiguration 模型与 JSON 序列化;UI 含 ProviderCatalogViewModel、CategoryViewModel、UploaderInstanceViewModel;支持从目录添加、复制、重命名、删除、设默认等 CRUD,同一 provider(如 S3)可跨 Image/Text/File 类别。ImgurProvider 支持 Image+Text,AmazonS3Provider 支持 Image+Text+File;持久化路径为 %AppData%/XerahS/uploader-instances.json。
动态插件:宿主不引用编译期插件,每个插件用 PluginLoadContext 隔离,Avalonia、Newtonsoft.Json 等框架程序集与宿主共享,PluginLoader 静态化防止上下文被提前 GC;插件通过 IUploaderProvider.GetConfigView 暴露配置视图。PluginDiscovery 扫描 Plugins/ 下的 plugin.json,PluginLoader 加载程序集并实例化 provider。示例插件含 ShareX.Imgur.Plugin(OAuth2 图片上传)与 ShareX.AmazonS3.Plugin。
规划中的能力:文件类型路由按扩展名精确匹配、再走“所有文件类型”回退、无匹配则报错;含 FileTypeScope、UploaderInstance.FileTypeRouting、GetSupportedFileTypes 与冲突检测 UI。全自动化工作流分 Path A(已交付基础 WorkflowTask、上传接线、上传后复制 URL、快捷键→截图→上传)与 Path B(任务队列与并发控制、AfterCapture/AfterUpload 管线、进度、通知、重试回退、历史持久化与 UI),估约 1,200 LOC、8-12 小时;阻塞项包括模态注解编辑器、需全异步化、provider 需 UploadAsync 签名。
注解子系统:Phase 1 已完成 XerahS.Annotations(10 文件约 800 LOC),含 EditorTool 枚举与矩形、椭圆、线、箭头、文本、编号、聚光、裁剪、画笔等类型。Phase 2 计划用 Avalonia + Skia 替换 WinForms 与 System.Drawing,要求实现 ShapeType 全部形状、以 Skia 图像滤镜实现模糊/像素化/高亮、聚光、放大镜、RegionCaptureView 交互、ShapeManager 撤销重做与复制粘贴、AnnotationOptions 偏好持久化、插入图像与贴纸、智能橡皮擦、裁剪与抠图、RegionCaptureWindow 及跨平台无 System.Drawing 依赖,并编写单元与 UI 测试。以上多为尚未提供的计划内容,具体收费与正式发布状态暂未提供。