loris/lib/partials/post_text_renderer.dart

30 lines
803 B
Dart

import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:html2md/html2md.dart' as html2md;
import 'package:url_launcher/url_launcher.dart';
class PostTextRenderer extends StatelessWidget {
const PostTextRenderer({
required this.input,
Key? key,
}) : super(key: key);
final String input;
@override
Widget build(BuildContext context) {
MarkdownStyleSheet mdStyle = MarkdownStyleSheet(
a: TextStyle(color: Theme.of(context).colorScheme.secondary));
String s = html2md.convert(input);
return MarkdownBody(
onTapLink: ((text, href, title) {
if (href != null) {
launchUrl(Uri.parse(href));
}
}),
styleSheet: mdStyle,
data: s,
selectable: true,
);
}
}