このプロジェクトについて
Arrangerは、Compose Multiplatform向けのオープンソースで宣言的なリッチテキストエディタエンジンおよびUIエコシステムです。READMEでは、Compose上で本格的なテキスト編集体験を構築するための基盤フレームワークとして位置づけられ、その役割はProseMirrorやLexicalに匹敵するとされています。すぐに使える段落書式、動的なEnterキー戦略、セマンティック属性のクエリ、アトミックな元に戻す/やり直し、今後提供予定のMarkdown/WYSIWYG相互運用性を備えています。このプロジェクトは明示的に開発中とされており、APIは不安定で予告なく変更される可能性があります。フィードバック、機能リクエスト、バグ報告はGitHub Issuesで受け付けています。
対応プラットフォームは、Android API Level 26+、macOS、Windows、Linux上のDesktop 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レンダリングを分離しています。
エディタの例では、既存のスパンを維持する動的入力、高度な段落書式、自動マーカーとインントを備えた条書きおよび番号付きリスト、カスタムListMarkerResolver、EnterKeyStrategyオプション(InheritParagraphStrategy、ListEnterStrategy、HeadingEnterStrategy)を扱います。ハイパーリンクはLinkKeyを使用し、自動スタイル設定とLocalUriHandlerナビゲーションに加えて、自動リンク用のUrlParserとdetectAndApplyLinksを備えます。カスタム属性はAttributeStyleResolverを介してComposeスタイルにマッピングできます。検索と一括編集にはrangesOf、editAll、runs(key)、または述語付きrunsを使用します。insert、delete、replaceなどの変更は、自動スパンシフトを伴ってRichTextState.edit内で実行されます。
想定される用途には、Compose Multiplatformで構築されたリッチテキスト編集、ノート作成、文書編集、メッセージングインターェースなどがあります。READMEには、Kotlin MultiplatformのcommonMainおよびAndroid専用プロジェクト向けのインストールスニペット、サンプルComposable、デモ画像が含まれています。READMEには性能に関する主張やベンチマークは記載されていません。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.