From 28114b44869ca7f8ae192cd94203adc41cc628cc Mon Sep 17 00:00:00 2001 From: CatHood0 Date: Sun, 7 Jul 2024 16:18:04 -0400 Subject: [PATCH] feat: changed default conversion to dedicated package to convert html to delta --- lib/src/models/documents/delta_x.dart | 30 +++++---------------------- pubspec.yaml | 1 + test/utils/delta_x_test.dart | 1 + 3 files changed, 7 insertions(+), 25 deletions(-) diff --git a/lib/src/models/documents/delta_x.dart b/lib/src/models/documents/delta_x.dart index 30d03594..d30e3f4d 100644 --- a/lib/src/models/documents/delta_x.dart +++ b/lib/src/models/documents/delta_x.dart @@ -1,9 +1,8 @@ -import 'package:html2md/html2md.dart' as html2md; +import 'package:flutter_quill_delta_from_html/flutter_quill_delta_from_html.dart'; import 'package:markdown/markdown.dart' as md; import 'package:meta/meta.dart'; import '../../../markdown_quill.dart'; import '../../../quill_delta.dart'; -import '../../utils/delta_x_utils.dart'; @immutable @experimental @@ -16,34 +15,15 @@ class DeltaX { /// used for **production applications**. @experimental static Delta fromMarkdown(String markdownText) { - final mdDocument = md.Document( - encodeHtml: false, - inlineSyntaxes: [UnderlineSyntax(), VideoSyntax()], - ); + final mdDocument = md.Document(encodeHtml: false); final mdToDelta = MarkdownToDelta(markdownDocument: mdDocument); return mdToDelta.convert(markdownText); } /// Convert the HTML Raw string to [Delta] - /// - /// It will run using the following steps: - /// - /// 1. Convert the html to markdown string using `html2md` package - /// 2. Convert the markdown string to [Delta] using [fromMarkdown] - /// - /// This api is **experimental** and designed to be used **internally** and shouldn't - /// used for **production applications**. - /// @experimental - static Delta fromHtml(String htmlText) { - final markdownText = html2md.convert( - htmlText, - rules: [underlineRule, videoRule], - styleOptions: {'emDelimiter': '*'}, - ).replaceAll( - 'unsafe:', - '', - ); - return fromMarkdown(markdownText); + static Delta fromHtml(String htmlText, {List? customBlocks}) { + final htmlToDelta = HtmlToDelta(customBlocks: customBlocks); + return htmlToDelta.convert(htmlText); } } diff --git a/pubspec.yaml b/pubspec.yaml index 01d10348..5e730ad3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -54,6 +54,7 @@ dependencies: flutter_colorpicker: ^1.1.0 # For converting HTML to Quill delta + flutter_quill_delta_from_html: ^1.1.8 markdown: ^7.2.1 html2md: ^1.3.1 charcode: ^1.3.1 diff --git a/test/utils/delta_x_test.dart b/test/utils/delta_x_test.dart index dc0bfa1d..e4367da8 100644 --- a/test/utils/delta_x_test.dart +++ b/test/utils/delta_x_test.dart @@ -33,6 +33,7 @@ void main() { ]); final expectedDeltaVideo = Delta.fromOperations([ + Operation.insert('\n'), Operation.insert({'video': 'https://www.youtube.com/embed/dQw4w9WgXcQ'}), Operation.insert('\n'), ]);