这个项目能做什么
Arranger 是一个开源的声明式富文本编辑器引擎和 UI 生态系统,专为 Compose Multiplatform 设计。README 将其定位为在 Compose 上构建功能齐全文本编辑体验的基础框架,其角色类似于 ProseMirror 或 Lexical。它提供开箱即用的段落格式化、动态回车键策略、语义属性查询、原子撤销/重做,以及即将推出的 Markdown/WYSIWYG 互操作性。该项目明确标记为进行中:API 不稳定且可能随时变更;欢迎通过 GitHub Issues 提供反馈、功能请求和错误报告。
平台支持:Android API Level 26+、macOS/Windows/Linux 上的桌面 JVM、iOS 以及通过 WasmJs 支持的 Web。要求 Kotlin 2.4.10+。Arranger 发布在 Maven Central 的 dev.mkeeda.arranger 组下;构件包括 arranger-richtext-editor、arranger-richtext、arranger-richtext-markdown、arranger-richtext-html,以及用于 Material 3 样式解析的 arranger-richtext-editor-material3。
功能包括类型安全的自定义属性(如 SpanStyle 和 Mention、Hashtag、LinkKey 等领域键);涵盖标题、引用块、对齐方式、无序和有序列表的高级编辑器行为;用于原子文本和格式化操作的声明式变更 DSL;用于迭代、搜索和批量编辑具有相同属性的文本块的语义 Runs;以及 RichString 与 Markdown/HTML 格式之间的导入导出转换器。Compose 集成将无头 RichTextState 与跨支持目标的 RichTextEditor UI 渲染分离。
编辑器示例涵盖保持现有 span 的动态输入、高级段落格式化、带自动标记和缩进的无序和有序列表、自定义 ListMarkerResolver,以及 EnterKeyStrategy 选项:InheritParagraphStrategy、ListEnterStrategy 和 HeadingEnterStrategy。超链接使用 LinkKey 进行自动样式设置和 LocalUriHandler 导航,以及用于自动链接的 UrlParser 和 detectAndApplyLinks。自定义属性可通过 AttributeStyleResolver 映射到 Compose 样式。搜索和批量编辑使用 rangesOf、editAll 和 runs(key) 或带谓词的 runs。在 RichTextState.edit 内执行 insert、delete 和 replace 等变更,并自动进行 span 移位。
潜在用途包括使用 Compose Multiplatform 构建的富文本编辑、笔记、文档编辑或消息界面。README 包含 Kotlin Multiplatform commonMain 和仅限 Android 项目的安装片段,以及示例可组合函数和演示图像。README 中未提供性能声明或基准测试。
评论
0 评分人数达到10人后显示
登录后参与讨论。