Ignore HTML in flutter_markdown content without error (#8420)
* Gracefully ignore html content * Test for less than, consolidate table tests * Specify missing type annotation * Add Mike Hoolehan to AUTHORS
This commit is contained in:
parent
e7bde11cc3
commit
09b63e2c93
1
AUTHORS
1
AUTHORS
@ -14,3 +14,4 @@ Michael Beckler <mcbeckler@gmail.com>
|
|||||||
Alexandre Ardhuin <alexandre.ardhuin@gmail.com>
|
Alexandre Ardhuin <alexandre.ardhuin@gmail.com>
|
||||||
Luke Freeman <luke@goposse.com>
|
Luke Freeman <luke@goposse.com>
|
||||||
Vincent Le Quéméner <eu.lequem@gmail.com>
|
Vincent Le Quéméner <eu.lequem@gmail.com>
|
||||||
|
Mike Hoolehan <mike@hoolehan.com>
|
||||||
|
@ -219,13 +219,16 @@ class _Renderer implements md.NodeVisitor {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void visitText(md.Text text) {
|
void visitText(md.Text text) {
|
||||||
_MarkdownNodeList topList = _currentBlock.stack.last;
|
if (_currentBlock != null) { // ignore if no corresponding block
|
||||||
List<_MarkdownNode> top = topList.list;
|
_MarkdownNodeList topList = _currentBlock.stack.last;
|
||||||
|
List<_MarkdownNode> top = topList.list;
|
||||||
|
|
||||||
if (_currentBlock.tag == 'pre')
|
if (_currentBlock.tag == 'pre')
|
||||||
top.add(new _MarkdownNodeTextSpan(_syntaxHighlighter.format(text.text)));
|
top.add(
|
||||||
else
|
new _MarkdownNodeTextSpan(_syntaxHighlighter.format(text.text)));
|
||||||
top.add(new _MarkdownNodeString(text.text));
|
else
|
||||||
|
top.add(new _MarkdownNodeString(text.text));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -7,7 +7,7 @@ homepage: http://flutter.io
|
|||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
markdown: '^0.9.0'
|
markdown: '^0.11.0'
|
||||||
string_scanner: ^1.0.0
|
string_scanner: ^1.0.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
@ -84,6 +84,28 @@ void main() {
|
|||||||
expect(span.children[0].recognizer.runtimeType, equals(TapGestureRecognizer));
|
expect(span.children[0].recognizer.runtimeType, equals(TapGestureRecognizer));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('HTML tag ignored ', (WidgetTester tester) async {
|
||||||
|
final List<String> mdData = <String>[
|
||||||
|
'Line 1\n<p>HTML content</p>\nLine 2',
|
||||||
|
'Line 1\n<!-- HTML\n comment\n ignored --><\nLine 2'
|
||||||
|
];
|
||||||
|
|
||||||
|
for (String mdLine in mdData) {
|
||||||
|
await tester.pumpWidget(new MarkdownBody(data: mdLine));
|
||||||
|
|
||||||
|
Iterable<Widget> widgets = tester.allWidgets;
|
||||||
|
_expectTextStrings(widgets, <String>['Line 1', 'Line 2']);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Less than', (WidgetTester tester) async {
|
||||||
|
final String mdLine = 'Line 1 <\n\nc < c c\n\n< Line 2';
|
||||||
|
await tester.pumpWidget(new MarkdownBody(data: mdLine));
|
||||||
|
|
||||||
|
Iterable<Widget> widgets = tester.allWidgets;
|
||||||
|
_expectTextStrings(widgets, <String>['Line 1 <','c < c c','< Line 2']);
|
||||||
|
});
|
||||||
|
|
||||||
testWidgets('Changing config - data', (WidgetTester tester) async {
|
testWidgets('Changing config - data', (WidgetTester tester) async {
|
||||||
await tester.pumpWidget(new Markdown(data: 'Data1'));
|
await tester.pumpWidget(new Markdown(data: 'Data1'));
|
||||||
_expectTextStrings(tester.allWidgets, <String>['Data1']);
|
_expectTextStrings(tester.allWidgets, <String>['Data1']);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user