Skip to content

Commit df5e5a3

Browse files
committed
refactor(parser): simplify constructor and improve debug handling
refactor(tagflow_widget): update parser initialization to use debug option
1 parent cf1371a commit df5e5a3

File tree

2 files changed

+15
-25
lines changed

2 files changed

+15
-25
lines changed

packages/tagflow/lib/src/core/parser/parser.dart

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,25 @@
11
// ignore_for_file: cascade_invocations
22

33
import 'dart:collection';
4+
import 'dart:developer' show log;
45

5-
import 'package:flutter/foundation.dart';
66
import 'package:html/dom.dart' as dom;
77
import 'package:html/dom_parsing.dart';
88
import 'package:html/parser.dart' as html;
99
import 'package:tagflow/tagflow.dart';
1010

1111
/// Parses HTML string into TagflowElement
1212
class TagflowParser {
13-
const TagflowParser({
14-
List<NodeParser>? parsers,
15-
}) : _parsers = parsers ??
16-
const [
17-
ElementParser(),
18-
TableParser(),
19-
ImgParser(),
20-
];
13+
const TagflowParser({List<NodeParser>? parsers, this.debug = false})
14+
: _parsers = parsers ?? const [ElementParser(), TableParser(), ImgParser()];
2115

2216
final List<NodeParser> _parsers;
17+
final bool debug;
2318

2419
TagflowNode parse(String input) {
2520
final document = html.parse(input);
2621

27-
if (kDebugMode) {
22+
if (debug) {
2823
_Visitor().visit(document);
2924
}
3025

@@ -101,10 +96,6 @@ class TagflowParser {
10196
class _Visitor extends TreeVisitor {
10297
String indent = '';
10398

104-
void log(String message) {
105-
if (kDebugMode) print(message);
106-
}
107-
10899
@override
109100
void visitText(dom.Text node) {
110101
if (node.data.trim().isNotEmpty) {

packages/tagflow/lib/src/tagflow_widget.dart

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ import 'package:flutter/material.dart';
33
import 'package:tagflow/tagflow.dart';
44

55
/// Error widget builder for handling parsing/conversion errors
6-
typedef ErrorWidgetBuilder = Widget Function(
7-
BuildContext context,
8-
Object? error,
9-
);
6+
typedef ErrorWidgetBuilder =
7+
Widget Function(BuildContext context, Object? error);
108

119
/// Default error widget builder
1210
Widget _defaultErrorWidget(BuildContext context, Object? error) {
@@ -84,7 +82,7 @@ class _TagflowState extends State<Tagflow> {
8482

8583
Future<void> _parseHtml() async {
8684
try {
87-
const parser = TagflowParser();
85+
final parser = TagflowParser(debug: widget.options.debug);
8886
_element = await compute(parser.parse, widget.html);
8987
_error = null;
9088
} catch (e, stack) {
@@ -116,12 +114,13 @@ class _TagflowState extends State<Tagflow> {
116114
Widget build(BuildContext context) {
117115
return TagflowScope(
118116
options: widget.options,
119-
child: widget.theme != null
120-
? TagflowThemeProvider(
121-
theme: widget.theme!,
122-
child: Builder(builder: _buildContent),
123-
)
124-
: Builder(builder: _buildContent),
117+
child:
118+
widget.theme != null
119+
? TagflowThemeProvider(
120+
theme: widget.theme!,
121+
child: Builder(builder: _buildContent),
122+
)
123+
: Builder(builder: _buildContent),
125124
);
126125
}
127126

0 commit comments

Comments
 (0)