Showing
3 changed files
with
36 additions
and
26 deletions
@@ -28,7 +28,8 @@ class TexMarkdown extends StatelessWidget { | @@ -28,7 +28,8 @@ class TexMarkdown extends StatelessWidget { | ||
28 | final String Function(String tex)? latexWorkaround; | 28 | final String Function(String tex)? latexWorkaround; |
29 | final Widget Function(BuildContext context, String tex)? latexBuilder; | 29 | final Widget Function(BuildContext context, String tex)? latexBuilder; |
30 | final bool followLinkColor; | 30 | final bool followLinkColor; |
31 | - final Widget Function(BuildContext context, String tex)? codeBuilder; | 31 | + final Widget Function(BuildContext context, String name, String code)? |
32 | + codeBuilder; | ||
32 | 33 | ||
33 | @override | 34 | @override |
34 | Widget build(BuildContext context) { | 35 | Widget build(BuildContext context) { |
@@ -38,7 +38,7 @@ abstract class MarkdownComponent { | @@ -38,7 +38,7 @@ abstract class MarkdownComponent { | ||
38 | final void Function(String url, String title)? onLinkTab, | 38 | final void Function(String url, String title)? onLinkTab, |
39 | final String Function(String tex)? latexWorkaround, | 39 | final String Function(String tex)? latexWorkaround, |
40 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 40 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
41 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 41 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
42 | ) { | 42 | ) { |
43 | List<InlineSpan> spans = []; | 43 | List<InlineSpan> spans = []; |
44 | List<String> regexes = | 44 | List<String> regexes = |
@@ -126,7 +126,7 @@ abstract class MarkdownComponent { | @@ -126,7 +126,7 @@ abstract class MarkdownComponent { | ||
126 | final void Function(String url, String title)? onLinkTab, | 126 | final void Function(String url, String title)? onLinkTab, |
127 | final String Function(String tex)? latexWorkaround, | 127 | final String Function(String tex)? latexWorkaround, |
128 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 128 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
129 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 129 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
130 | ); | 130 | ); |
131 | 131 | ||
132 | RegExp get exp; | 132 | RegExp get exp; |
@@ -147,7 +147,7 @@ abstract class InlineMd extends MarkdownComponent { | @@ -147,7 +147,7 @@ abstract class InlineMd extends MarkdownComponent { | ||
147 | final void Function(String url, String title)? onLinkTab, | 147 | final void Function(String url, String title)? onLinkTab, |
148 | final String Function(String tex)? latexWorkaround, | 148 | final String Function(String tex)? latexWorkaround, |
149 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 149 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
150 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 150 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
151 | ); | 151 | ); |
152 | } | 152 | } |
153 | 153 | ||
@@ -164,7 +164,7 @@ abstract class BlockMd extends MarkdownComponent { | @@ -164,7 +164,7 @@ abstract class BlockMd extends MarkdownComponent { | ||
164 | final void Function(String url, String title)? onLinkTab, | 164 | final void Function(String url, String title)? onLinkTab, |
165 | final String Function(String tex)? latexWorkaround, | 165 | final String Function(String tex)? latexWorkaround, |
166 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 166 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
167 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 167 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
168 | ) { | 168 | ) { |
169 | return WidgetSpan( | 169 | return WidgetSpan( |
170 | child: build( | 170 | child: build( |
@@ -189,7 +189,7 @@ abstract class BlockMd extends MarkdownComponent { | @@ -189,7 +189,7 @@ abstract class BlockMd extends MarkdownComponent { | ||
189 | final void Function(String url, String title)? onLinkTab, | 189 | final void Function(String url, String title)? onLinkTab, |
190 | final String Function(String tex)? latexWorkaround, | 190 | final String Function(String tex)? latexWorkaround, |
191 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 191 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
192 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 192 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
193 | ); | 193 | ); |
194 | } | 194 | } |
195 | 195 | ||
@@ -206,7 +206,7 @@ class HTag extends BlockMd { | @@ -206,7 +206,7 @@ class HTag extends BlockMd { | ||
206 | final void Function(String url, String title)? onLinkTab, | 206 | final void Function(String url, String title)? onLinkTab, |
207 | final String Function(String tex)? latexWorkaround, | 207 | final String Function(String tex)? latexWorkaround, |
208 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 208 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
209 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 209 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
210 | ) { | 210 | ) { |
211 | var match = exp.firstMatch(text.trim()); | 211 | var match = exp.firstMatch(text.trim()); |
212 | return Text.rich( | 212 | return Text.rich( |
@@ -278,7 +278,7 @@ class NewLines extends InlineMd { | @@ -278,7 +278,7 @@ class NewLines extends InlineMd { | ||
278 | final void Function(String url, String title)? onLinkTab, | 278 | final void Function(String url, String title)? onLinkTab, |
279 | final String Function(String tex)? latexWorkaround, | 279 | final String Function(String tex)? latexWorkaround, |
280 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 280 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
281 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 281 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
282 | ) { | 282 | ) { |
283 | return TextSpan( | 283 | return TextSpan( |
284 | text: "\n\n\n\n", | 284 | text: "\n\n\n\n", |
@@ -303,7 +303,7 @@ class HrLine extends BlockMd { | @@ -303,7 +303,7 @@ class HrLine extends BlockMd { | ||
303 | final void Function(String url, String title)? onLinkTab, | 303 | final void Function(String url, String title)? onLinkTab, |
304 | final String Function(String tex)? latexWorkaround, | 304 | final String Function(String tex)? latexWorkaround, |
305 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 305 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
306 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 306 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
307 | ) { | 307 | ) { |
308 | return CustomDivider( | 308 | return CustomDivider( |
309 | height: 2, | 309 | height: 2, |
@@ -327,7 +327,7 @@ class CheckBoxMd extends BlockMd { | @@ -327,7 +327,7 @@ class CheckBoxMd extends BlockMd { | ||
327 | final void Function(String url, String title)? onLinkTab, | 327 | final void Function(String url, String title)? onLinkTab, |
328 | final String Function(String tex)? latexWorkaround, | 328 | final String Function(String tex)? latexWorkaround, |
329 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 329 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
330 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 330 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
331 | ) { | 331 | ) { |
332 | var match = exp.firstMatch(text.trim()); | 332 | var match = exp.firstMatch(text.trim()); |
333 | return CustomCb( | 333 | return CustomCb( |
@@ -361,7 +361,7 @@ class RadioButtonMd extends BlockMd { | @@ -361,7 +361,7 @@ class RadioButtonMd extends BlockMd { | ||
361 | final void Function(String url, String title)? onLinkTab, | 361 | final void Function(String url, String title)? onLinkTab, |
362 | final String Function(String tex)? latexWorkaround, | 362 | final String Function(String tex)? latexWorkaround, |
363 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 363 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
364 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 364 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
365 | ) { | 365 | ) { |
366 | var match = exp.firstMatch(text.trim()); | 366 | var match = exp.firstMatch(text.trim()); |
367 | return CustomRb( | 367 | return CustomRb( |
@@ -395,7 +395,7 @@ class IndentMd extends BlockMd { | @@ -395,7 +395,7 @@ class IndentMd extends BlockMd { | ||
395 | final void Function(String url, String title)? onLinkTab, | 395 | final void Function(String url, String title)? onLinkTab, |
396 | final String Function(String tex)? latexWorkaround, | 396 | final String Function(String tex)? latexWorkaround, |
397 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 397 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
398 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 398 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
399 | ) { | 399 | ) { |
400 | [ | 400 | [ |
401 | r"\\\[(.*?)\\\]", | 401 | r"\\\[(.*?)\\\]", |
@@ -440,7 +440,7 @@ class UnOrderedList extends BlockMd { | @@ -440,7 +440,7 @@ class UnOrderedList extends BlockMd { | ||
440 | final void Function(String url, String title)? onLinkTab, | 440 | final void Function(String url, String title)? onLinkTab, |
441 | final String Function(String tex)? latexWorkaround, | 441 | final String Function(String tex)? latexWorkaround, |
442 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 442 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
443 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 443 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
444 | ) { | 444 | ) { |
445 | var match = exp.firstMatch(text); | 445 | var match = exp.firstMatch(text); |
446 | return UnorderedListView( | 446 | return UnorderedListView( |
@@ -477,7 +477,7 @@ class OrderedList extends BlockMd { | @@ -477,7 +477,7 @@ class OrderedList extends BlockMd { | ||
477 | final void Function(String url, String title)? onLinkTab, | 477 | final void Function(String url, String title)? onLinkTab, |
478 | final String Function(String tex)? latexWorkaround, | 478 | final String Function(String tex)? latexWorkaround, |
479 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 479 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
480 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 480 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
481 | ) { | 481 | ) { |
482 | var match = exp.firstMatch(text.trim()); | 482 | var match = exp.firstMatch(text.trim()); |
483 | return OrderedListView( | 483 | return OrderedListView( |
@@ -510,7 +510,7 @@ class HighlightedText extends InlineMd { | @@ -510,7 +510,7 @@ class HighlightedText extends InlineMd { | ||
510 | final void Function(String url, String title)? onLinkTab, | 510 | final void Function(String url, String title)? onLinkTab, |
511 | final String Function(String tex)? latexWorkaround, | 511 | final String Function(String tex)? latexWorkaround, |
512 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 512 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
513 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 513 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
514 | ) { | 514 | ) { |
515 | return TextSpan( | 515 | return TextSpan( |
516 | text: text, | 516 | text: text, |
@@ -546,7 +546,7 @@ class BoldMd extends InlineMd { | @@ -546,7 +546,7 @@ class BoldMd extends InlineMd { | ||
546 | final void Function(String url, String title)? onLinkTab, | 546 | final void Function(String url, String title)? onLinkTab, |
547 | final String Function(String tex)? latexWorkaround, | 547 | final String Function(String tex)? latexWorkaround, |
548 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 548 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
549 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 549 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
550 | ) { | 550 | ) { |
551 | var match = exp.firstMatch(text.trim()); | 551 | var match = exp.firstMatch(text.trim()); |
552 | return TextSpan( | 552 | return TextSpan( |
@@ -583,7 +583,7 @@ class LatexMathMultyLine extends BlockMd { | @@ -583,7 +583,7 @@ class LatexMathMultyLine extends BlockMd { | ||
583 | void Function(String url, String title)? onLinkTab, | 583 | void Function(String url, String title)? onLinkTab, |
584 | String Function(String tex)? latexWorkaround, | 584 | String Function(String tex)? latexWorkaround, |
585 | Widget Function(BuildContext context, String tex)? latexBuilder, | 585 | Widget Function(BuildContext context, String tex)? latexBuilder, |
586 | - Widget Function(BuildContext context, String tex)? codeBuilder, | 586 | + Widget Function(BuildContext context,String name,String code)? codeBuilder, |
587 | ) { | 587 | ) { |
588 | var p0 = exp.firstMatch(text.trim()); | 588 | var p0 = exp.firstMatch(text.trim()); |
589 | p0?.group(0); | 589 | p0?.group(0); |
@@ -652,7 +652,7 @@ class LatexMath extends InlineMd { | @@ -652,7 +652,7 @@ class LatexMath extends InlineMd { | ||
652 | final void Function(String url, String title)? onLinkTab, | 652 | final void Function(String url, String title)? onLinkTab, |
653 | final String Function(String tex)? latexWorkaround, | 653 | final String Function(String tex)? latexWorkaround, |
654 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 654 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
655 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 655 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
656 | ) { | 656 | ) { |
657 | var p0 = exp.firstMatch(text.trim()); | 657 | var p0 = exp.firstMatch(text.trim()); |
658 | p0?.group(0); | 658 | p0?.group(0); |
@@ -716,7 +716,7 @@ class ItalicMd extends InlineMd { | @@ -716,7 +716,7 @@ class ItalicMd extends InlineMd { | ||
716 | final void Function(String url, String title)? onLinkTab, | 716 | final void Function(String url, String title)? onLinkTab, |
717 | final String Function(String tex)? latexWorkaround, | 717 | final String Function(String tex)? latexWorkaround, |
718 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 718 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
719 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 719 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
720 | ) { | 720 | ) { |
721 | var match = exp.firstMatch(text.trim()); | 721 | var match = exp.firstMatch(text.trim()); |
722 | return TextSpan( | 722 | return TextSpan( |
@@ -749,7 +749,7 @@ class ATagMd extends InlineMd { | @@ -749,7 +749,7 @@ class ATagMd extends InlineMd { | ||
749 | final void Function(String url, String title)? onLinkTab, | 749 | final void Function(String url, String title)? onLinkTab, |
750 | final String Function(String tex)? latexWorkaround, | 750 | final String Function(String tex)? latexWorkaround, |
751 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 751 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
752 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 752 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
753 | ) { | 753 | ) { |
754 | var match = exp.firstMatch(text.trim()); | 754 | var match = exp.firstMatch(text.trim()); |
755 | if (match?[1] == null && match?[2] == null) { | 755 | if (match?[1] == null && match?[2] == null) { |
@@ -795,7 +795,7 @@ class ImageMd extends InlineMd { | @@ -795,7 +795,7 @@ class ImageMd extends InlineMd { | ||
795 | final void Function(String url, String title)? onLinkTab, | 795 | final void Function(String url, String title)? onLinkTab, |
796 | final String Function(String tex)? latexWorkaround, | 796 | final String Function(String tex)? latexWorkaround, |
797 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 797 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
798 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 798 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
799 | ) { | 799 | ) { |
800 | var match = exp.firstMatch(text.trim()); | 800 | var match = exp.firstMatch(text.trim()); |
801 | double? height; | 801 | double? height; |
@@ -848,7 +848,7 @@ class TableMd extends BlockMd { | @@ -848,7 +848,7 @@ class TableMd extends BlockMd { | ||
848 | void Function(String url, String title)? onLinkTab, | 848 | void Function(String url, String title)? onLinkTab, |
849 | final String Function(String tex)? latexWorkaround, | 849 | final String Function(String tex)? latexWorkaround, |
850 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 850 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
851 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 851 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
852 | ) { | 852 | ) { |
853 | final List<Map<int, String>> value = text | 853 | final List<Map<int, String>> value = text |
854 | .split('\n') | 854 | .split('\n') |
@@ -873,7 +873,13 @@ class TableMd extends BlockMd { | @@ -873,7 +873,13 @@ class TableMd extends BlockMd { | ||
873 | if (maxCol == 0) { | 873 | if (maxCol == 0) { |
874 | return Text("", style: style); | 874 | return Text("", style: style); |
875 | } | 875 | } |
876 | - return Table( | 876 | + final controller = ScrollController(); |
877 | + return Scrollbar( | ||
878 | + controller: controller, | ||
879 | + child: SingleChildScrollView( | ||
880 | + controller: controller, | ||
881 | + scrollDirection: Axis.horizontal, | ||
882 | + child: Table( | ||
877 | textDirection: textDirection, | 883 | textDirection: textDirection, |
878 | defaultColumnWidth: CustomTableColumnWidth(), | 884 | defaultColumnWidth: CustomTableColumnWidth(), |
879 | defaultVerticalAlignment: TableCellVerticalAlignment.middle, | 885 | defaultVerticalAlignment: TableCellVerticalAlignment.middle, |
@@ -923,6 +929,8 @@ class TableMd extends BlockMd { | @@ -923,6 +929,8 @@ class TableMd extends BlockMd { | ||
923 | ), | 929 | ), |
924 | ) | 930 | ) |
925 | .toList(), | 931 | .toList(), |
932 | + ), | ||
933 | + ), | ||
926 | ); | 934 | ); |
927 | } | 935 | } |
928 | 936 | ||
@@ -948,7 +956,7 @@ class CodeBlockMd extends BlockMd { | @@ -948,7 +956,7 @@ class CodeBlockMd extends BlockMd { | ||
948 | final void Function(String url, String title)? onLinkTab, | 956 | final void Function(String url, String title)? onLinkTab, |
949 | final String Function(String tex)? latexWorkaround, | 957 | final String Function(String tex)? latexWorkaround, |
950 | final Widget Function(BuildContext context, String tex)? latexBuilder, | 958 | final Widget Function(BuildContext context, String tex)? latexBuilder, |
951 | - final Widget Function(BuildContext context, String tex)? codeBuilder, | 959 | + final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
952 | ) { | 960 | ) { |
953 | String codes = exp.firstMatch(text)?[2] ?? ""; | 961 | String codes = exp.firstMatch(text)?[2] ?? ""; |
954 | String name = exp.firstMatch(text)?[1] ?? ""; | 962 | String name = exp.firstMatch(text)?[1] ?? ""; |
@@ -956,7 +964,7 @@ class CodeBlockMd extends BlockMd { | @@ -956,7 +964,7 @@ class CodeBlockMd extends BlockMd { | ||
956 | return Padding( | 964 | return Padding( |
957 | padding: const EdgeInsets.all(16.0), | 965 | padding: const EdgeInsets.all(16.0), |
958 | child: codeBuilder != null | 966 | child: codeBuilder != null |
959 | - ? codeBuilder(context, codes) | 967 | + ? codeBuilder(context,name, codes) |
960 | : CodeField(name: name, codes: codes), | 968 | : CodeField(name: name, codes: codes), |
961 | ); | 969 | ); |
962 | } | 970 | } |
@@ -27,7 +27,8 @@ class MdWidget extends StatelessWidget { | @@ -27,7 +27,8 @@ class MdWidget extends StatelessWidget { | ||
27 | final String Function(String tex)? latexWorkaround; | 27 | final String Function(String tex)? latexWorkaround; |
28 | final Widget Function(BuildContext context, String tex)? latexBuilder; | 28 | final Widget Function(BuildContext context, String tex)? latexBuilder; |
29 | final bool followLinkColor; | 29 | final bool followLinkColor; |
30 | - final Widget Function(BuildContext context, String tex)? codeBuilder; | 30 | + final Widget Function(BuildContext context, String name, String code)? |
31 | + codeBuilder; | ||
31 | 32 | ||
32 | @override | 33 | @override |
33 | Widget build(BuildContext context) { | 34 | Widget build(BuildContext context) { |
-
Please register or login to post a comment