-
Notifications
You must be signed in to change notification settings - Fork 845
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bring all the changes from fresh_quill_extensions (#1495)
* Bring all the changes from fresh_quill_extensions * Update pubspec.yaml * Update pubspec.yaml and export new file * Update pubspec.yaml * Update CHANGELOG.md * Update README.md
- Loading branch information
Showing
50 changed files
with
2,573 additions
and
1,548 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,154 @@ | ||
# Flutter Quill Extensions | ||
|
||
Helpers to support embed widgets in flutter_quill. See [Flutter Quill](https://pub.dev/packages/flutter_quill) for details of use. | ||
A extensions for [flutter_quill](https://pub.dev/packages/flutter_quill) | ||
to support embed widgets like image, formula, video and more. | ||
|
||
Currently the support for **Web** is limitied. | ||
|
||
Check [Flutter Quill](https://github.com/singerdmx/flutter-quill) for details of use. | ||
|
||
## Table of Contents | ||
|
||
- [Flutter Quill Extensions](#flutter-quill-extensions) | ||
- [Table of Contents](#table-of-contents) | ||
- [About](#about) | ||
- [Installation](#installation) | ||
- [Platform Spesefic Configurations](#platform-spesefic-configurations) | ||
- [Usage](#usage) | ||
- [Features](#features) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
- [Acknowledgments](#acknowledgments) | ||
|
||
|
||
## About | ||
Flutter quill is a rich editor text and it's allow you to customize a lot of things, it has custom embed builders which allow you to render custom widgets in the editor <br> | ||
this is a extensions to extends it functionallities by adding more features like images, videos, and more | ||
|
||
## Installation | ||
|
||
Before start using this package, please make sure to install | ||
[flutter_quill](https://github.com/singerdmx/flutter-quill) package first and follow it's usage instructions. | ||
|
||
```yaml | ||
dependencies: | ||
flutter_quill_extensions: ^<latest-version-here> | ||
``` | ||
## Platform Spesefic Configurations | ||
> | ||
> 1. We are using [`gal`](https://github.com/natsuk4ze/) plugin to save images. | ||
> For this to work, you need to add the appropriate permissions | ||
> to your `Info.plist` and `AndroidManifest.xml` files. | ||
> See <https://github.com/natsuk4ze/gal#-get-started> to add the needed lines. | ||
> | ||
> 2. We also use [`image_picker`](https://pub.dev/packages/image_picker) plugin for picking images so please make sure follow the instructions | ||
> | ||
> 3. For loading the image from the internet we need internet permission | ||
> 1. For Android, you need to add some permissions in `AndroidManifest.xml`, Please follow this [link](https://developer.android.com/training/basics/network-ops/connecting) for more info, the internet permission included by default only for debugging so you need to follow this link to add it in the release version too. you should allow loading images and videos only for the `https` protocol but if you want http too then you need to configure your android application to accept `http` in the release mode, follow this [link](https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted) for more info. | ||
> 2. for macOS you also need to include a key in your `Info.plist`, please follow this [link](https://stackoverflow.com/a/61201081/18519412) to add the required configurations | ||
> | ||
> The extensions package also use [image_picker](https://pub.dev/packages/image_picker) which also require some configurations, follow this [link](https://pub.dev/packages/image_picker#installation). It's needed for Android, iOS, macOS, we must inform you that you can't pick photo using camera in desktop so make sure to handle that if you plan on add support for desktop, this might changed in the future and for more info follow this [link](https://pub.dev/packages/image_picker#windows-macos-and-linux) <br> | ||
> | ||
|
||
## Usage | ||
|
||
Set the `embedBuilders` and `embedToolbar` params in `QuillEditor` and `QuillToolbar` with the | ||
Before starting using this package you must follow the setup | ||
|
||
Set the `embedBuilders` and `embedToolbar` params in configurations of `QuillEditor` and `QuillToolbar` with the | ||
values provided by this repository. | ||
|
||
**Quill toolbar**: | ||
```dart | ||
QuillToolbar( | ||
configurations: QuillToolbarConfigurations( | ||
embedButtons: FlutterQuillEmbeds.toolbarButtons( | ||
imageButtonOptions: QuillToolbarImageButtonOptions( | ||
onImagePickCallback: (file) async { | ||
return file.path; | ||
}, | ||
), | ||
), | ||
), | ||
), | ||
``` | ||
QuillEditor.basic( | ||
controller: controller, | ||
embedBuilders: FlutterQuillEmbeds.builders(), | ||
); | ||
|
||
**Quill Editor** | ||
```dart | ||
Expanded( | ||
child: QuillEditor.basic( | ||
configurations: QuillEditorConfigurations( | ||
readOnly: true, | ||
embedBuilders: FlutterQuillEmbeds.editorBuilders( | ||
imageEmbedConfigurations: | ||
const QuillEditorImageEmbedConfigurations( | ||
forceUseMobileOptionMenuForImageClick: true, | ||
), | ||
), | ||
), | ||
), | ||
) | ||
``` | ||
|
||
They both should be have a parent `QuillProvider` in the widget tree and setup properly <br> | ||
Example: | ||
|
||
```dart | ||
QuillProvider( | ||
configurations: QuillConfigurations( | ||
controller: _controller, | ||
sharedConfigurations: const QuillSharedConfigurations(), | ||
), | ||
child: Column( | ||
children: [ | ||
QuillToolbar( | ||
configurations: QuillToolbarConfigurations( | ||
embedButtons: FlutterQuillEmbeds.toolbarButtons( | ||
imageButtonOptions: QuillToolbarImageButtonOptions(), | ||
), | ||
), | ||
), | ||
Expanded( | ||
child: QuillEditor.basic( | ||
configurations: QuillEditorConfigurations( | ||
padding: const EdgeInsets.all(16), | ||
embedBuilders: FlutterQuillEmbeds.editorBuilders(), | ||
), | ||
), | ||
) | ||
], | ||
), | ||
) | ||
``` | ||
QuillToolbar.basic( | ||
controller: controller, | ||
embedButtons: FlutterQuillEmbeds.buttons(), | ||
); | ||
|
||
For web, use: | ||
```dart | ||
FlutterQuillEmbeds.editorsWebBuilders() | ||
``` | ||
|
||
## Features | ||
|
||
```markdown | ||
## Features | ||
- Easy to use and customizable | ||
- Has the option to use custom image provider for the images | ||
- Usefull utilities and widgets | ||
- Handle different errors | ||
``` | ||
|
||
## Contributing | ||
|
||
We welcome contributions! | ||
|
||
Please follow these guidelines when contributing to our project. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details. | ||
|
||
## License | ||
|
||
This project is licensed under the [MIT License](LICENSE) - see the [LICENSE](LICENSE) file for details. | ||
|
||
## Acknowledgments | ||
|
||
- Thanks to the [Flutter Team](https://flutter.dev/) | ||
- Thanks to [flutter_quill](https://pub.dev/packages/flutter_quill) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// import 'package:meta/meta.dart'; | ||
|
||
// @immutable | ||
// class NetworkException implements Exception { | ||
// const NetworkException({required this.message}); | ||
|
||
// final String message; | ||
|
||
// @override | ||
// String toString() => | ||
// 'Error while loading something from the network: $message'; | ||
// } |
Oops, something went wrong.