diff --git a/lib/src/utils/delta_x_utils.dart b/lib/src/utils/delta_x_utils.dart index b7767b1e..497fa29b 100644 --- a/lib/src/utils/delta_x_utils.dart +++ b/lib/src/utils/delta_x_utils.dart @@ -20,7 +20,7 @@ class UnderlineSyntax extends md.DelimiterSyntax { class VideoSyntax extends md.LinkSyntax { VideoSyntax({super.linkResolver}) : super( - pattern: r'\[', + pattern: r'\[!\[', startCharacter: _$lbracket, ); @@ -60,13 +60,13 @@ final videoRule = hmd.Rule('video', filters: ['iframe', 'video'], if (!_youtubeVideoUrlValidator.hasMatch(src ?? '')) { return ''; } - return '[$content]($src)'; + return '['; } final src = node.getAttribute('src'); if (src == null || !_youtubeVideoUrlValidator.hasMatch(src)) { return node.outerHTML; } - return '[$content]($src)'; + return '['; } //by now, we can only access to src final src = node.getAttribute('src'); @@ -76,5 +76,5 @@ final videoRule = hmd.Rule('video', filters: ['iframe', 'video'], return node.outerHTML; } final title = node.getAttribute('title'); - return '[$title]($src)'; + return '['; }); diff --git a/test/utils/delta_x_test.dart b/test/utils/delta_x_test.dart index 489a7493..cccb9612 100644 --- a/test/utils/delta_x_test.dart +++ b/test/utils/delta_x_test.dart @@ -3,28 +3,27 @@ import 'package:flutter_quill/src/models/documents/delta_x.dart'; import 'package:test/test.dart'; void main() { - const htmlWithEmp = - '
This is a normal sentence, and this section has greater emphasis.
'; + const htmlWithEmp = 'This is a normal sentence, and this section has greater emphasis.
'; - const htmlWithUnderline = - 'This is a normal sentence, and this section has greater underline'; + const htmlWithUnderline = '
This is a normal sentence, and this section has greater underline';
const htmlWithIframeVideo =
'';
const htmlWithVideoTag =
- '''
-''';
+ '';
+
+ const htmlWithNormalLinkAndVideo =
+ 'fdsfsd
';
+
final expectedDeltaEmp = Delta.fromOperations([
- Operation.insert(
- 'This is a normal sentence, and this section has greater emp'),
+ Operation.insert('This is a normal sentence, and this section has greater emp'),
Operation.insert('hasis.', {'italic': true}),
Operation.insert('\n'),
]);
final expectedDeltaUnderline = Delta.fromOperations([
- Operation.insert(
- 'This is a normal sentence, and this section has greater '),
+ Operation.insert('This is a normal sentence, and this section has greater '),
Operation.insert('underline', {'underline': true}),
Operation.insert('\n'),
]);
@@ -34,6 +33,13 @@ void main() {
Operation.insert('\n'),
]);
+ final expectedDeltaLinkAndVideoLink = Delta.fromOperations([
+ Operation.insert('fdsfsd', {'link': 'https://www.macrumors.com/'}),
+ Operation.insert('\n\n'),
+ Operation.insert({'video': 'https://www.youtube.com/embed/dQw4w9WgXcQ'}),
+ Operation.insert('\n'),
+ ]);
+
test('should detect emphasis and parse correctly', () {
final delta = DeltaX.fromHtml(htmlWithEmp);
expect(delta, expectedDeltaEmp);
@@ -53,4 +59,9 @@ void main() {
final delta = DeltaX.fromHtml(htmlWithVideoTag);
expect(delta, expectedDeltaVideo);
});
+
+ test('should detect by different way normal link and video link', () {
+ final delta = DeltaX.fromHtml(htmlWithNormalLinkAndVideo);
+ expect(delta, expectedDeltaLinkAndVideoLink);
+ });
}