A viewer and editor compatible with the EditorJS schema.
This library is still under development, so critical bugs are expected and should not be used right now for a production environment.
Also, right now this plugin is compatible with Flutter 1 and 2. We are working in Flutter v3 compatibility and will come soon.
Add these lines in your pubspec.yaml file on the dependencies level:
editorjs_flutter: anyAfter that just execute flutter pub get in Terminal as always.
For Viewer, you must ensure you have as input an EditorJS JSON as shown in EditorJS documentation at https://editorjs.io/.
Also, you need to create a JSON file with the following schema for CSS styles:
{
"cssTags": [
{
"tag" : "code",
"backgroundColor" : "#33ff0000",
"color" : "#ffff0000",
"padding" : 5.0
},
{
"tag" : "mark",
"backgroundColor" : "#ffffff00",
"padding" : 5.0
}
],
"defaultFont" : "Roboto"
}After that, you may use the viewer as follows:
EditorJSView editorJSView; // Set your EditorJSView instance.
// Substitute as the way of getting your JSON
String data = await DefaultAssetBundle.of(context).loadString("example_asset/example.json");
String styles = await DefaultAssetBundle.of(context).loadString("example_asset/editorjsstyles.json");
setState(() { // Recommended for async environments.
editorJSView = EditorJSView(editorJSData: data);
});Finally, assign it to your widget as you wish. The Viewer has the same features as a common column.
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Your app title"),
),
body: SingleChildScrollView(
child: Column(children: [
(editorJSView != null) ? editorJSView : Text("Please wait...")
],)
),
);
}Editor is available right now as an alpha preview and is still under development. You may use it as follows:
EditorJSEditor editorJSEditor;
@override
void initState() {
super.initState();
setState(() {
editorJSEditor = EditorJSEditor();
});
}Finally, assign it to your widget as you wish. The Editor has the same features as a common column.
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Create Note"),
),
body: SingleChildScrollView(
child: Column(children: [
(editorJSEditor != null) ? editorJSEditor : Text("Please wait")
],)
)
);
}I want to say thank you to all collaborators on this development. Kudos for you :D
@Dhi13man - Flutter 2 compatibility and Null Safety.
@mnomanmemon - H1 to H6 behavior for the framework and Flutter v3 compatibility.
Please send me a message to Twitter (@RZEROSTERN) or an email to marco.ramirez@rzerocorp.com for getting in touch.
Also if you have an issue or want to propose a fix, please leave it in the Issues tab on Github. I'll fix it ASAP.
Made in Mexico with love by RZEROSTERN