loris/lib/partials/post_text_renderer.dart

34 lines
774 B
Dart
Raw Normal View History

2022-08-06 16:46:31 +00:00
import 'package:flutter/material.dart';
class PostTextRenderer extends StatelessWidget {
const PostTextRenderer({
required this.html,
Key? key,
}) : super(key: key);
final String html;
@override
Widget build(BuildContext context) {
String text = html;
text = handleParagraph(html);
text = handleBreak(text);
return SelectableText.rich(TextSpan(text: text, children: []));
}
}
String handleParagraph(String input) {
RegExp opening = RegExp(r"<p>");
RegExp closing = RegExp(r"</p>");
String out = input.replaceAll(closing, "\n\n").replaceAll(opening, "");
if (out.endsWith("\n\n")) {
out = out.substring(0, out.length - 2);
}
return out;
}
String handleBreak(String input) {
return input.replaceAll("<br>", "\n");
}