didvan-app/lib/views/widgets/didvan/didvan_markdown.dart

108 lines
4.5 KiB
Dart

import 'package:didvan/config/design_config.dart';
import 'package:didvan/utils/extension.dart';
import 'package:flutter/material.dart';
import 'package:markdown_widget/config/configs.dart';
import 'package:markdown_widget/widget/blocks/leaf/heading.dart';
import 'package:markdown_widget/widget/blocks/leaf/paragraph.dart';
import 'package:markdown_widget/widget/markdown.dart';
class DidvanMarkdownText extends StatelessWidget {
final String text;
final Color? color;
final double? width;
const DidvanMarkdownText(
{super.key, required this.text, this.color, this.width});
// onTapLink: (text, href, title) {
// if (href != null) {
// launchUrlString(
// href,
// mode: LaunchMode
// .inAppBrowserView,
// );
// }
// },
// MarkdownStyleSheet defaultMarkdownStyleSheet = MarkdownStyleSheet(
// pPadding: const EdgeInsets.all(0.8),
// h1Padding: const EdgeInsets.all(0.8),
// h2Padding: const EdgeInsets.all(0.8),
// h3Padding: const EdgeInsets.all(0.8),
// h4Padding: const EdgeInsets.all(0.8),
// h5Padding: const EdgeInsets.all(0.8),
// h6Padding: const EdgeInsets.all(0.8),
// tablePadding: const EdgeInsets.all(0.8),
// blockquotePadding: const EdgeInsets.all(0.8),
// listBulletPadding: const EdgeInsets.all(0.8),
// tableCellsPadding: const EdgeInsets.all(0.8),
// codeblockPadding: const EdgeInsets.all(8),
// code: TextStyle(
// backgroundColor: Theme.of(context).colorScheme.black,
// color: Theme.of(context).colorScheme.white,
// ),
// codeblockDecoration: BoxDecoration(
// borderRadius: BorderRadius.circular(4),
// color: Theme.of(context).colorScheme.black));
@override
Widget build(BuildContext context) {
return Directionality(
textDirection:
text.startsWithEnglish() ? TextDirection.ltr : TextDirection.rtl,
child: SizedBox(
width: width,
child: MarkdownWidget(
data: text,
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
selectable: true,
config: MarkdownConfig(configs: [
H1Config(
style: MarkdownConfig.defaultConfig.h1.style.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color)),
H2Config(
style: MarkdownConfig.defaultConfig.h2.style.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color)),
H3Config(
style: MarkdownConfig.defaultConfig.h3.style.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color)),
H4Config(
style: MarkdownConfig.defaultConfig.h4.style.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color)),
H5Config(
style: MarkdownConfig.defaultConfig.h5.style.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color)),
H6Config(
style: MarkdownConfig.defaultConfig.h6.style.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color)),
PConfig(
textStyle: MarkdownConfig.defaultConfig.p.textStyle.copyWith(
fontFamily: text.startsWithEnglish()
? DesignConfig.fontFamily.replaceAll('-FA', '')
: null,
color: color))
]),
),
),
);
}
}