تخطَّ إلى المحتوى الرئيسي

clepit_core

حزمة clepit_core هي التوأم الأصلي لـ @clepit/core بلغة Dart/Flutter: نفس نموذج مستند JSON، والتحرير والعرض للقراءة فقط من قاعدة شيفرة واحدة، للويب والجوال وسطح المكتب. المستندات قابلة للتبادل: ما يكتبه EditorData.toJson() هنا تقرؤه حزمة TypeScript والعكس صحيح.

pub.dev: clepit_core · npm: @clepit/core

التثبيت

Shell
flutter pub add clepit_core

Editor

Editor سطح تحرير كامل: أدوات الكتل، والأدوات المضمّنة، وأشرطة الأدوات، ومعالجة التحديد. يقبل EditorController أيضًا tools وinlineTools لتقييد المجموعة المدمجة أو توسيعها، ويكشف واجهات المستند والتحديد والعرض (EditorApi) للتحرير البرمجي.

Dart
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 المستند للقراءة فقط، دون واجهة تحرير. البيانات غير الصالحة أو المجهولة تُعرض كـ InvalidDataPlaceholder بدل رمي استثناء، فيتدهور مستند من منتج أقدم أو أحدث بشكل مرئي بدلًا من إسقاط العرض.

Dart
Renderer(
  config: RendererConfig(data: document),
);

ClepitTheme

ينساب التنسيق عبر ClepitTheme، وهو ThemeExtension على ThemeData، فيتبع المحرر والعارض سمة تطبيقك في الوضعين الفاتح والداكن. تمر التخصيصات لكل عرض عبر RendererConfig.styles.

قادمًا من @clepit/core

المفهوم نفسه موجود على الجانبين؛ الأسماء تتبع أعراف كل منصة.

TypeScriptDart
EditorEditor
RendererRenderer
StyleManagerThemeExtension<ClepitTheme> + ThemeData
ToolBlockTool / InlineTool
Block<T>sealed class Block
EditorAPIEditorApi + BlocksApi, SelectionApi