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.75k stars 805 forks source link

[QUESTION] Recursive TagExtension #1410

Open romainpurchla opened 3 months ago

romainpurchla commented 3 months ago

Hello,

If I use <a> inside <p> with TagExtension for both, the first TagExtension works but the second does not.

How I can make TagExtension recursive ?

Example :

String html = "<p>This is my html <a href="https://myurl.com">My link</a></p>

[...]

extensions: [
   TagExtension(
          tagsToExtend: {"a"},
          builder: (extensionContext) {
            return Semantics(
                button: true,
                child: GestureDetector(
                    onTap: () {
                      HcLaunchURL(extensionContext.element!.attributes["href"]);
                    },
                    child: Text(extensionContext.element!.text,
                        style: TextStyle(
                          color: Colors.red,
                        ),
                        textAlign: TextAlign.start)));
          },
   ),
   TagExtension(
          tagsToExtend: {"p"},
          builder: (extensionContext) {
            return Padding(
                padding: EdgeInsets.fromLTRB(0, 10, 0, 10),
                child: Text(
                      extensionContext.element!.text));
          },
   ),
]