flutter_html icon indicating copy to clipboard operation
flutter_html copied to clipboard

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

Open LorisTrainect opened this issue 1 year ago • 14 comments

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)

LorisTrainect avatar Aug 21 '23 15:08 LorisTrainect

same question

hakama99 avatar Sep 02 '23 17:09 hakama99

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

LorisTrainect avatar Sep 07 '23 16:09 LorisTrainect

Same question, someone had an update about this?

JulioRennan avatar Sep 14 '23 20:09 JulioRennan

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

hugofpaiva avatar Sep 14 '23 20:09 hugofpaiva

same question,

TheHKF avatar Sep 19 '23 06:09 TheHKF

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

huyhb avatar Sep 29 '23 09:09 huyhb

same...need solution

ElixirMike avatar Oct 31 '23 17:10 ElixirMike

I have same issue too. Any solution?

okarasahin avatar Nov 14 '23 19:11 okarasahin

I have same issue with no solution

smujaddid avatar Nov 17 '23 22:11 smujaddid

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

alihan-ulker avatar Nov 21 '23 15:11 alihan-ulker

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

okarasahin avatar Dec 11 '23 16:12 okarasahin

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.

taskindrp avatar Apr 18 '24 13:04 taskindrp

"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."

koreaksh avatar Apr 29 '24 05:04 koreaksh

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

Thank u. It works

yalda-student avatar Jun 30 '24 10:06 yalda-student