Passer au contenu principal

clepit_core

Le paquet clepit_core est le jumeau natif Dart/Flutter de @clepit/core : le même modèle de document JSON, édition et rendu en lecture seule depuis une seule base de code, pour le web, le mobile et le bureau. Les documents sont interchangeables : EditorData.toJson() ici se lit avec le paquet TypeScript et réciproquement.

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

Installation

Shell
flutter pub add clepit_core

Editor

Editor est une surface d'édition complète : outils de blocs, outils en ligne, barres d'outils et gestion de la sélection. EditorController accepte aussi tools et inlineTools pour restreindre ou étendre l'ensemble intégré, et expose les API de document, de sélection et de vue (EditorApi) pour les éditions programmatiques.

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 dessine un document en lecture seule, sans habillage d'édition. Des données de bloc invalides ou inconnues rendent un InvalidDataPlaceholder au lieu de lever une exception : un document d'un producteur plus ancien ou plus récent se dégrade visiblement plutôt que de faire planter la vue.

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

ClepitTheme

Le style transite par ClepitTheme, une ThemeExtension sur votre ThemeData : l'éditeur et le moteur de rendu suivent le thème de votre application en clair et en sombre. Les surcharges par rendu passent par RendererConfig.styles.

En venant de @clepit/core

Le même concept existe des deux côtés ; les noms suivent les conventions de chaque plateforme.

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