-
-
Notifications
You must be signed in to change notification settings - Fork 917
Closed
Labels
bugSomething isn't workingSomething isn't working
Milestone
Description
Hello,
I'm using flutter_html with programming codes, and I had html like this:
<pre>
<code class="language-java">
List<Integer> arr = new List<Integer>;
</code>
</pre>
when render my html with customRender
:
import 'package:flutter_html/flutter_html.dart';
import 'package:html_unescape/html_unescape.dart';
class PostContent extends StatelessWidget {
final Post post;
@override
Widget build(BuildContext context) {
String content = post.content.toString();
content = (new HtmlUnescape()).convert(content);
return Html(
data: content,
useRichText: false,
customRender: (node, children) {
if (node is dom.Element) {
switch (node.localName) {
case "code": return renderCode(node); break;
}
}
return null;
},
);
}
Widget renderCode(dom.Element node) {
return Text(
node.text, // node.text or node.innerHtml?
style: codeTheme['keyword'].merge(TextStyle(
fontSize: codeFontSize,
fontFamily: codeFontFamily,
color: node.parent.localName == "pre" ? Colors.red : Colors.green,
)),
);
}
}
in renderCode
function, if I use node.text
, the code rendered will become:
List arr = new List;
If I use node.innerHtml
, It will be:
List<integer> arr = new List<integer></integer></integer>;
Is there a method to resovle it?
Thanks!
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working