Skip to content

Commit 2ffa1dd

Browse files
feat: Add WrapperExtension helper (Sub6Resources#1264)
1 parent 8ac444b commit 2ffa1dd

22 files changed

+296
-62
lines changed

example/lib/main.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,14 @@ class MyHomePageState extends State<MyHomePage> {
317317
),
318318
},
319319
extensions: [
320+
TagWrapExtension(
321+
tagsToWrap: {"table"},
322+
builder: (child) {
323+
return SingleChildScrollView(
324+
scrollDirection: Axis.horizontal,
325+
child: child,
326+
);
327+
}),
320328
TagExtension(
321329
tagsToExtend: {"tex"},
322330
builder: (context) => Math.tex(

lib/src/builtins/details_element_builtin.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ class DetailsElementBuiltIn extends HtmlExtension {
2424

2525
@override
2626
InlineSpan build(ExtensionContext context,
27-
Map<StyledElement, InlineSpan> Function() parseChildren) {
28-
final childList = parseChildren();
27+
Map<StyledElement, InlineSpan> Function() buildChildren) {
28+
final childList = buildChildren();
2929
final children = childList.values;
3030

3131
InlineSpan? firstChild = children.isNotEmpty ? children.first : null;

lib/src/builtins/image_builtin.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class ImageBuiltIn extends HtmlExtension {
7272

7373
@override
7474
InlineSpan build(ExtensionContext context,
75-
Map<StyledElement, InlineSpan> Function() parseChildren) {
75+
Map<StyledElement, InlineSpan> Function() buildChildren) {
7676
final element = context.styledElement as ImageElement;
7777

7878
final imageStyle = Style(

lib/src/builtins/interactive_element_builtin.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ class InteractiveElementBuiltIn extends HtmlExtension {
3939

4040
@override
4141
InlineSpan build(ExtensionContext context,
42-
Map<StyledElement, InlineSpan> Function() parseChildren) {
42+
Map<StyledElement, InlineSpan> Function() buildChildren) {
4343
return TextSpan(
44-
children: parseChildren().values.map((childSpan) {
44+
children: buildChildren().values.map((childSpan) {
4545
return _processInteractableChild(context, childSpan);
4646
}).toList(),
4747
);

lib/src/builtins/ruby_builtin.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class RubyBuiltIn extends HtmlExtension {
4040

4141
@override
4242
InlineSpan build(ExtensionContext context,
43-
Map<StyledElement, InlineSpan> Function() parseChildren) {
43+
Map<StyledElement, InlineSpan> Function() buildChildren) {
4444
StyledElement? node;
4545
List<Widget> widgets = <Widget>[];
4646
final rubySize = context.parser.style['rt']?.fontSize?.value ??

lib/src/builtins/styled_element_builtin.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ class StyledElementBuiltIn extends HtmlExtension {
409409

410410
@override
411411
InlineSpan build(ExtensionContext context,
412-
Map<StyledElement, InlineSpan> Function() parseChildren) {
412+
Map<StyledElement, InlineSpan> Function() buildChildren) {
413413
if (context.styledElement!.style.display == Display.listItem ||
414414
((context.styledElement!.style.display == Display.block ||
415415
context.styledElement!.style.display == Display.inlineBlock) &&
@@ -424,7 +424,7 @@ class StyledElementBuiltIn extends HtmlExtension {
424424
shrinkWrap: context.parser.shrinkWrap,
425425
childIsReplaced: ["iframe", "img", "video", "audio"]
426426
.contains(context.styledElement!.name),
427-
children: parseChildren()
427+
children: buildChildren()
428428
.entries
429429
.expandIndexed((i, child) => [
430430
child.value,
@@ -441,7 +441,7 @@ class StyledElementBuiltIn extends HtmlExtension {
441441

442442
return TextSpan(
443443
style: context.styledElement!.style.generateTextStyle(),
444-
children: parseChildren()
444+
children: buildChildren()
445445
.entries
446446
.expand((child) => [
447447
child.value,

lib/src/builtins/text_builtin.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class TextBuiltIn extends HtmlExtension {
4444

4545
@override
4646
InlineSpan build(ExtensionContext context,
47-
Map<StyledElement, InlineSpan> Function() parseChildren) {
47+
Map<StyledElement, InlineSpan> Function() buildChildren) {
4848
final element = context.styledElement! as TextContentElement;
4949
return TextSpan(
5050
style: element.style.generateTextStyle(),

lib/src/builtins/vertical_align_builtin.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ class VerticalAlignBuiltIn extends HtmlExtension {
2323
}
2424

2525
@override
26-
InlineSpan build(ExtensionContext context, parseChildren) {
26+
InlineSpan build(ExtensionContext context, buildChildren) {
2727
return WidgetSpan(
2828
child: Transform.translate(
2929
offset: Offset(0, _getVerticalOffset(context.styledElement!)),
3030
child: CssBoxWidget.withInlineSpanChildren(
31-
children: parseChildren().values.toList(),
31+
children: buildChildren().values.toList(),
3232
style: context.styledElement!.style,
3333
),
3434
),

lib/src/extension/helpers/image_extension.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ class ImageExtension extends ImageBuiltIn {
5959
}
6060

6161
@override
62-
InlineSpan build(ExtensionContext context, parseChildren) {
62+
InlineSpan build(ExtensionContext context, buildChildren) {
6363
if (builder != null) {
6464
return builder!.call(context);
6565
} else {
66-
return super.build(context, parseChildren);
66+
return super.build(context, buildChildren);
6767
}
6868
}
6969
}

lib/src/extension/helpers/image_tap_extension.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class OnImageTapExtension extends ImageBuiltIn {
4444
}
4545

4646
@override
47-
InlineSpan build(ExtensionContext context, parseChildren) {
48-
final children = parseChildren();
47+
InlineSpan build(ExtensionContext context, buildChildren) {
48+
final children = buildChildren();
4949

5050
assert(children.keys.isNotEmpty,
5151
"The OnImageTapExtension has been thwarted! It no longer has an `img` child");

0 commit comments

Comments
 (0)