clepit_core
Paket clepit_core adalah kembaran Dart/Flutter asli dari @clepit/core: model dokumen JSON yang sama, penyuntingan dan render baca-saja dari satu basis kode, menyasar web, seluler, dan desktop. Dokumen dapat dipertukarkan: EditorData.toJson() di sini terbaca oleh paket TypeScript dan sebaliknya.
pub.dev: clepit_core · npm: @clepit/core
Instal
flutter pub add clepit_coreEditor
Editor adalah permukaan penyuntingan penuh: alat blok, alat sebaris, bilah alat, dan penanganan seleksi. EditorController juga menerima tools dan inlineTools untuk membatasi atau memperluas set bawaan, dan mengekspos API dokumen, seleksi, dan tampilan (EditorApi) untuk penyuntingan terprogram.
import 'package:clepit_core/clepit_core.dart';
final controller = EditorController(
initial: EditorData.fromJson(documentJson),
);
Editor(
controller: controller,
config: EditorConfig(
onChange: (data) => save(data),
),
);Renderer
Renderer menggambar dokumen hanya-baca, tanpa hiasan penyuntingan. Data blok yang tidak valid atau tak dikenal merender InvalidDataPlaceholder alih-alih melempar, sehingga dokumen dari produsen yang lebih lama atau lebih baru menurun secara terlihat alih-alih membuat tampilan mogok.
Renderer(
config: RendererConfig(data: document),
);ClepitTheme
Gaya mengalir melalui ClepitTheme, sebuah ThemeExtension pada ThemeData Anda, sehingga editor dan renderer mengikuti tema aplikasi dalam mode terang dan gelap. Penimpaan per-render lewat RendererConfig.styles.
Datang dari @clepit/core
Konsep yang sama ada di kedua sisi; namanya mengikuti konvensi tiap platform.
| TypeScript | Dart |
|---|---|
| Editor | Editor |
| Renderer | Renderer |
| StyleManager | ThemeExtension<ClepitTheme> + ThemeData |
| Tool | BlockTool / InlineTool |
| Block<T> | sealed class Block |
| EditorAPI | EditorApi + BlocksApi, SelectionApi |