β¨ Docsy
A modern WYSIWYG Rich Text Editor for Flutter.
Write, edit, and render rich text with the same look as the final output β
What You See Is What You Get (WYSIWYG).
π Features
- βοΈ Full WYSIWYG editing experience
- Inline formatting: bold, italic, underline, code, links
- Block formatting: paragraphs, headings, quotes, dividers
- π Undo/redo with history stack
- π Link insertion & removal
- π JSON import/export (canonical format)
- π Markdown & HTML conversion (planned)
- π₯οΈ Works on mobile, web, and desktop
πΈ Screenshots
Editing Mode | Readonly Mode |
---|---|
![]() |
![]() |
π¦ Installation
Add this to your pubspec.yaml
:
dependencies:
docsy: ^0.1.0
Then run:
flutter pub get
π οΈ Usage
A minimal example:
import 'package:flutter/material.dart';
import 'package:docsy/docsy.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final controller = EditorController();
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Docsy Demo')),
body: RichTextEditor(controller: controller),
floatingActionButton: FloatingActionButton(
onPressed: controller.insertParagraphAtEnd,
child: const Icon(Icons.add),
),
),
);
}
}
π Example
For a complete demo with toolbar, editing/preview toggle, and persistence,
see the example folder.
πΊοΈ Roadmap
β€οΈ Contributing
Contributions are welcome!
Open an issue or submit a PR to help improve Docsy.
π License
Licensed under the MIT License.
See LICENSE for details.