Sub6Resources / flutter_html

A Flutter widget for rendering static html as Flutter widgets (Will render over 80 different html tags!)
https://pub.dev/packages/flutter_html
MIT License
1.76k stars 815 forks source link

[BUG] Feature tag must be exactly four characters long. #1362

Open LorisTrainect opened 9 months ago

LorisTrainect commented 9 months ago

Describe the bug:

Feature tag must be exactly four characters long. 'dart:ui/text.dart': Failed assertion: line 143 pos 14: ''

HTML to reproduce the issue:

I get my html code from a database, when is present inline css property 'font-feature-settings' i got this bug

Html widget configuration:

Here my use of Html widget:

SingleChildScrollView(
    padding: const EdgeInsets.only(bottom: 50,top: 0),
    child: Padding(
      padding: const EdgeInsets.symmetric(horizontal: 20),
      child: Html(
        data: post.html,
        style: {
          "br": Style(
            display: Display.none,
          ),
          "p": Style(
            margin: Margins.symmetric(vertical: 20),
            fontSize: FontSize.large
          ),
          "h1": Style(
            fontWeight: FontWeight.bold,
            fontSize: FontSize.xxLarge
          ),
          "b": Style(
            fontWeight: FontWeight.bold,
            fontSize: FontSize.xLarge
          )
        },
      ),
    ),
  ),

Device details and Flutter/Dart/flutter_html versions:

flutter_html version 3.0.0-beta.2 flutter version: Flutter 3.10.6 • channel stable • https://github.com/flutter/flutter.git Framework • revision f468f3366c (6 weeks ago) • 2023-07-12 15:19:05 -0700 Engine • revision cdbeda788a Tools • Dart 3.0.6 • DevTools 2.23.1

Stacktrace/Logcat

The relevant error-causing widget was: Html Html:file:///C:/Users/nickn/Documents/FlutterProjects/MyTrainect/lib/Views/post_view.dart:148:30 When the exception was thrown, this was the stack:

2 new FontFeature (dart:ui/text.dart:143:14)

3 new FontFeature.enable (dart:ui/text.dart:147:46)

4 ExpressionMapping.expressionToFontFeatureSettings (package:flutter_html/src/css_parser.dart:948:42)

5 declarationsToStyle. (package:flutter_html/src/css_parser.dart:318:33)

6 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:625:13)

7 declarationsToStyle (package:flutter_html/src/css_parser.dart:13:16)

8 inlineCssToStyle (package:flutter_html/src/css_parser.dart:671:12)

9 _HtmlParserState._styleTreeRecursive (package:flutter_html/src/html_parser.dart:309:11)

10 _HtmlParserState._styleTreeRecursive (package:flutter_html/src/html_parser.dart:325:7)

11 _HtmlParserState._styleTreeRecursive (package:flutter_html/src/html_parser.dart:325:7)

12 _HtmlParserState.styleTree (package:flutter_html/src/html_parser.dart:294:5)

13 _HtmlParserState.prepareTree (package:flutter_html/src/html_parser.dart:166:5)

14 _HtmlParserState.didChangeDependencies (package:flutter_html/src/html_parser.dart:156:5)

15 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5237:11)

16 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5062:5)

hakama99 commented 9 months ago

same question

LorisTrainect commented 8 months ago

Trying a build apk release, this error seems not to be present, however I still get it in the debug version

JulioRennan commented 8 months ago

Same question, someone had an update about this?

hugofpaiva commented 8 months ago

I'm having the same issue on a project i'm working on... :/

TheHKF commented 8 months ago

same question,

huyhb commented 8 months ago

I have same issue? Please let me know if anyone has a solution!

ElixirMike commented 7 months ago

same...need solution

okarasahin commented 6 months ago

I have same issue too. Any solution?

smujaddid commented 6 months ago

I have same issue with no solution

alihan-ulker commented 6 months ago

Hello, I had the same problem with the flutter_html version 3.0.0-beta.2 package. I was getting the same error when I wanted to load the html information coming in the form of Html(data: htmlContent)). Then I realized that it was caused by special characters. setState((() { htmlContent = data!.newContent!; cleanedHtmlContent = htmlContent.replaceAll(RegExp(r'<[^>]*>'), '''); }); When I tried by cleaning the special characters in it, my Html(data: cleanedHtmlContent) page opened without any problems. Maybe it will help you. Good coding :D

okarasahin commented 5 months ago

I solved the problem by using a different package. For those interested : flutter_widget_from_html_core Happy codings! :D

taskindrp commented 1 month ago

Hello, I had the same problem with the flutter_html version 3.0.0-beta.2 package. I was getting the same error when I wanted to load the html information coming in the form of Html(data: htmlContent)). Then I realized that it was caused by special characters. setState((() { htmlContent = data!.newContent!; cleanedHtmlContent = htmlContent.replaceAll(RegExp(r'<[^>]*>'), '''); }); When I tried by cleaning the special characters in it, my Html(data: cleanedHtmlContent) page opened without any problems. Maybe it will help you. Good coding :D

regex you used just removes all the tags, which defeats the purpose.

koreaksh commented 1 month ago

"I also encountered the same issue, and as a solution, I used the provided code."

data.replaceAll('font-feature-settings: normal;', '');

"If this method doesn't work, try finding the 'feature' part in the HTML data and remove it using the same approach."