Inline Latex Builder added and Link are clickable and error text are now just on debug mode
Showing
4 changed files
with
70 additions
and
47 deletions
@@ -172,17 +172,20 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | @@ -172,17 +172,20 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | ||
172 | child: TexMarkdown( | 172 | child: TexMarkdown( |
173 | _controller.text, | 173 | _controller.text, |
174 | textDirection: _direction, | 174 | textDirection: _direction, |
175 | - onLinkTab: (url, title) {}, | 175 | + onLinkTab: (url, title) { |
176 | + debugPrint(url); | ||
177 | + debugPrint(title); | ||
178 | + }, | ||
176 | textAlign: TextAlign.justify, | 179 | textAlign: TextAlign.justify, |
177 | // textScaler: const TextScaler.linear(1.3), | 180 | // textScaler: const TextScaler.linear(1.3), |
178 | - textScaleFactor: 1, | 181 | + textScaler: const TextScaler.linear(1), |
179 | style: const TextStyle( | 182 | style: const TextStyle( |
180 | // Regular text font size here. | 183 | // Regular text font size here. |
181 | fontSize: 15, | 184 | fontSize: 15, |
182 | ), | 185 | ), |
183 | latexWorkaround: (tex) => tex.replaceAllMapped( | 186 | latexWorkaround: (tex) => tex.replaceAllMapped( |
184 | RegExp(r"align\*"), (match) => "aligned"), | 187 | RegExp(r"align\*"), (match) => "aligned"), |
185 | - latexBuilder: (contex, tex) { | 188 | + latexBuilder: (contex, tex, inline) { |
186 | if (tex.contains(r"\begin{tabular}")) { | 189 | if (tex.contains(r"\begin{tabular}")) { |
187 | // return table. | 190 | // return table. |
188 | String tableString = "|${(RegExp( | 191 | String tableString = "|${(RegExp( |
@@ -201,7 +204,14 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | @@ -201,7 +204,14 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | ||
201 | return TexMarkdown(tableString); | 204 | return TexMarkdown(tableString); |
202 | } | 205 | } |
203 | var controller = ScrollController(); | 206 | var controller = ScrollController(); |
204 | - return Padding( | 207 | + Widget child = Math.tex( |
208 | + tex, | ||
209 | + textStyle: const TextStyle( | ||
210 | + fontSize: 17, | ||
211 | + ), | ||
212 | + ); | ||
213 | + if (!inline) { | ||
214 | + child = Padding( | ||
205 | padding: const EdgeInsets.all(0.0), | 215 | padding: const EdgeInsets.all(0.0), |
206 | child: Material( | 216 | child: Material( |
207 | color: Theme.of(context) | 217 | color: Theme.of(context) |
@@ -225,6 +235,14 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | @@ -225,6 +235,14 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | ||
225 | ), | 235 | ), |
226 | ), | 236 | ), |
227 | ); | 237 | ); |
238 | + } | ||
239 | + child = GestureDetector( | ||
240 | + onTap: () { | ||
241 | + debugPrint("Hello world"); | ||
242 | + }, | ||
243 | + child: child, | ||
244 | + ); | ||
245 | + return child; | ||
228 | }, | 246 | }, |
229 | ), | 247 | ), |
230 | // child: const Text("Hello"), | 248 | // child: const Text("Hello"), |
@@ -14,7 +14,7 @@ class TexMarkdown extends StatelessWidget { | @@ -14,7 +14,7 @@ class TexMarkdown extends StatelessWidget { | ||
14 | this.textDirection = TextDirection.ltr, | 14 | this.textDirection = TextDirection.ltr, |
15 | this.latexWorkaround, | 15 | this.latexWorkaround, |
16 | this.textAlign, | 16 | this.textAlign, |
17 | - this.textScaleFactor, | 17 | + this.textScaler, |
18 | this.onLinkTab, | 18 | this.onLinkTab, |
19 | this.latexBuilder, | 19 | this.latexBuilder, |
20 | this.codeBuilder, | 20 | this.codeBuilder, |
@@ -23,10 +23,11 @@ class TexMarkdown extends StatelessWidget { | @@ -23,10 +23,11 @@ class TexMarkdown extends StatelessWidget { | ||
23 | final String data; | 23 | final String data; |
24 | final TextStyle? style; | 24 | final TextStyle? style; |
25 | final TextAlign? textAlign; | 25 | final TextAlign? textAlign; |
26 | - final double? textScaleFactor; | 26 | + final TextScaler? textScaler; |
27 | final void Function(String url, String title)? onLinkTab; | 27 | final void Function(String url, String title)? onLinkTab; |
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, bool inline)? |
30 | + latexBuilder; | ||
30 | final bool followLinkColor; | 31 | final bool followLinkColor; |
31 | final Widget Function(BuildContext context, String name, String code)? | 32 | final Widget Function(BuildContext context, String name, String code)? |
32 | codeBuilder; | 33 | codeBuilder; |
@@ -61,7 +62,7 @@ class TexMarkdown extends StatelessWidget { | @@ -61,7 +62,7 @@ class TexMarkdown extends StatelessWidget { | ||
61 | style: style, | 62 | style: style, |
62 | onLinkTab: onLinkTab, | 63 | onLinkTab: onLinkTab, |
63 | textAlign: textAlign, | 64 | textAlign: textAlign, |
64 | - textScaleFactor: textScaleFactor, | 65 | + textScaler: textScaler, |
65 | followLinkColor: followLinkColor, | 66 | followLinkColor: followLinkColor, |
66 | latexWorkaround: latexWorkaround, | 67 | latexWorkaround: latexWorkaround, |
67 | latexBuilder: latexBuilder, | 68 | latexBuilder: latexBuilder, |
1 | +import 'package:flutter/foundation.dart'; | ||
1 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
2 | import 'package:flutter/services.dart'; | 3 | import 'package:flutter/services.dart'; |
3 | import 'package:flutter_math_fork/flutter_math.dart'; | 4 | import 'package:flutter_math_fork/flutter_math.dart'; |
@@ -37,7 +38,7 @@ abstract class MarkdownComponent { | @@ -37,7 +38,7 @@ abstract class MarkdownComponent { | ||
37 | TextDirection textDirection, | 38 | TextDirection textDirection, |
38 | final void Function(String url, String title)? onLinkTab, | 39 | final void Function(String url, String title)? onLinkTab, |
39 | final String Function(String tex)? latexWorkaround, | 40 | final String Function(String tex)? latexWorkaround, |
40 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 41 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
41 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 42 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
42 | ) { | 43 | ) { |
43 | List<InlineSpan> spans = []; | 44 | List<InlineSpan> spans = []; |
@@ -125,7 +126,7 @@ abstract class MarkdownComponent { | @@ -125,7 +126,7 @@ abstract class MarkdownComponent { | ||
125 | TextDirection textDirection, | 126 | TextDirection textDirection, |
126 | final void Function(String url, String title)? onLinkTab, | 127 | final void Function(String url, String title)? onLinkTab, |
127 | final String Function(String tex)? latexWorkaround, | 128 | final String Function(String tex)? latexWorkaround, |
128 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 129 | + final Widget Function(BuildContext context, String tex, bool inline)? latexBuilder, |
129 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 130 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
130 | ); | 131 | ); |
131 | 132 | ||
@@ -146,7 +147,7 @@ abstract class InlineMd extends MarkdownComponent { | @@ -146,7 +147,7 @@ abstract class InlineMd extends MarkdownComponent { | ||
146 | TextDirection textDirection, | 147 | TextDirection textDirection, |
147 | final void Function(String url, String title)? onLinkTab, | 148 | final void Function(String url, String title)? onLinkTab, |
148 | final String Function(String tex)? latexWorkaround, | 149 | final String Function(String tex)? latexWorkaround, |
149 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 150 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
150 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 151 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
151 | ); | 152 | ); |
152 | } | 153 | } |
@@ -163,7 +164,7 @@ abstract class BlockMd extends MarkdownComponent { | @@ -163,7 +164,7 @@ abstract class BlockMd extends MarkdownComponent { | ||
163 | TextDirection textDirection, | 164 | TextDirection textDirection, |
164 | final void Function(String url, String title)? onLinkTab, | 165 | final void Function(String url, String title)? onLinkTab, |
165 | final String Function(String tex)? latexWorkaround, | 166 | final String Function(String tex)? latexWorkaround, |
166 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 167 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
167 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 168 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
168 | ) { | 169 | ) { |
169 | return WidgetSpan( | 170 | return WidgetSpan( |
@@ -188,7 +189,7 @@ abstract class BlockMd extends MarkdownComponent { | @@ -188,7 +189,7 @@ abstract class BlockMd extends MarkdownComponent { | ||
188 | TextDirection textDirection, | 189 | TextDirection textDirection, |
189 | final void Function(String url, String title)? onLinkTab, | 190 | final void Function(String url, String title)? onLinkTab, |
190 | final String Function(String tex)? latexWorkaround, | 191 | final String Function(String tex)? latexWorkaround, |
191 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 192 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
192 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 193 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
193 | ); | 194 | ); |
194 | } | 195 | } |
@@ -205,7 +206,7 @@ class HTag extends BlockMd { | @@ -205,7 +206,7 @@ class HTag extends BlockMd { | ||
205 | TextDirection textDirection, | 206 | TextDirection textDirection, |
206 | final void Function(String url, String title)? onLinkTab, | 207 | final void Function(String url, String title)? onLinkTab, |
207 | final String Function(String tex)? latexWorkaround, | 208 | final String Function(String tex)? latexWorkaround, |
208 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 209 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
209 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 210 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
210 | ) { | 211 | ) { |
211 | var match = exp.firstMatch(text.trim()); | 212 | var match = exp.firstMatch(text.trim()); |
@@ -277,7 +278,7 @@ class NewLines extends InlineMd { | @@ -277,7 +278,7 @@ class NewLines extends InlineMd { | ||
277 | TextDirection textDirection, | 278 | TextDirection textDirection, |
278 | final void Function(String url, String title)? onLinkTab, | 279 | final void Function(String url, String title)? onLinkTab, |
279 | final String Function(String tex)? latexWorkaround, | 280 | final String Function(String tex)? latexWorkaround, |
280 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 281 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
281 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 282 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
282 | ) { | 283 | ) { |
283 | return TextSpan( | 284 | return TextSpan( |
@@ -302,7 +303,7 @@ class HrLine extends BlockMd { | @@ -302,7 +303,7 @@ class HrLine extends BlockMd { | ||
302 | TextDirection textDirection, | 303 | TextDirection textDirection, |
303 | final void Function(String url, String title)? onLinkTab, | 304 | final void Function(String url, String title)? onLinkTab, |
304 | final String Function(String tex)? latexWorkaround, | 305 | final String Function(String tex)? latexWorkaround, |
305 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 306 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
306 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 307 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
307 | ) { | 308 | ) { |
308 | return CustomDivider( | 309 | return CustomDivider( |
@@ -326,7 +327,7 @@ class CheckBoxMd extends BlockMd { | @@ -326,7 +327,7 @@ class CheckBoxMd extends BlockMd { | ||
326 | TextDirection textDirection, | 327 | TextDirection textDirection, |
327 | final void Function(String url, String title)? onLinkTab, | 328 | final void Function(String url, String title)? onLinkTab, |
328 | final String Function(String tex)? latexWorkaround, | 329 | final String Function(String tex)? latexWorkaround, |
329 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 330 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
330 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 331 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
331 | ) { | 332 | ) { |
332 | var match = exp.firstMatch(text.trim()); | 333 | var match = exp.firstMatch(text.trim()); |
@@ -360,7 +361,7 @@ class RadioButtonMd extends BlockMd { | @@ -360,7 +361,7 @@ class RadioButtonMd extends BlockMd { | ||
360 | TextDirection textDirection, | 361 | TextDirection textDirection, |
361 | final void Function(String url, String title)? onLinkTab, | 362 | final void Function(String url, String title)? onLinkTab, |
362 | final String Function(String tex)? latexWorkaround, | 363 | final String Function(String tex)? latexWorkaround, |
363 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 364 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
364 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 365 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
365 | ) { | 366 | ) { |
366 | var match = exp.firstMatch(text.trim()); | 367 | var match = exp.firstMatch(text.trim()); |
@@ -394,7 +395,7 @@ class IndentMd extends BlockMd { | @@ -394,7 +395,7 @@ class IndentMd extends BlockMd { | ||
394 | TextDirection textDirection, | 395 | TextDirection textDirection, |
395 | final void Function(String url, String title)? onLinkTab, | 396 | final void Function(String url, String title)? onLinkTab, |
396 | final String Function(String tex)? latexWorkaround, | 397 | final String Function(String tex)? latexWorkaround, |
397 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 398 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
398 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 399 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
399 | ) { | 400 | ) { |
400 | [ | 401 | [ |
@@ -439,7 +440,7 @@ class UnOrderedList extends BlockMd { | @@ -439,7 +440,7 @@ class UnOrderedList extends BlockMd { | ||
439 | TextDirection textDirection, | 440 | TextDirection textDirection, |
440 | final void Function(String url, String title)? onLinkTab, | 441 | final void Function(String url, String title)? onLinkTab, |
441 | final String Function(String tex)? latexWorkaround, | 442 | final String Function(String tex)? latexWorkaround, |
442 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 443 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
443 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 444 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
444 | ) { | 445 | ) { |
445 | var match = exp.firstMatch(text); | 446 | var match = exp.firstMatch(text); |
@@ -476,7 +477,7 @@ class OrderedList extends BlockMd { | @@ -476,7 +477,7 @@ class OrderedList extends BlockMd { | ||
476 | TextDirection textDirection, | 477 | TextDirection textDirection, |
477 | final void Function(String url, String title)? onLinkTab, | 478 | final void Function(String url, String title)? onLinkTab, |
478 | final String Function(String tex)? latexWorkaround, | 479 | final String Function(String tex)? latexWorkaround, |
479 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 480 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
480 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 481 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
481 | ) { | 482 | ) { |
482 | var match = exp.firstMatch(text.trim()); | 483 | var match = exp.firstMatch(text.trim()); |
@@ -509,7 +510,7 @@ class HighlightedText extends InlineMd { | @@ -509,7 +510,7 @@ class HighlightedText extends InlineMd { | ||
509 | TextDirection textDirection, | 510 | TextDirection textDirection, |
510 | final void Function(String url, String title)? onLinkTab, | 511 | final void Function(String url, String title)? onLinkTab, |
511 | final String Function(String tex)? latexWorkaround, | 512 | final String Function(String tex)? latexWorkaround, |
512 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 513 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
513 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 514 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
514 | ) { | 515 | ) { |
515 | return TextSpan( | 516 | return TextSpan( |
@@ -545,7 +546,7 @@ class BoldMd extends InlineMd { | @@ -545,7 +546,7 @@ class BoldMd extends InlineMd { | ||
545 | TextDirection textDirection, | 546 | TextDirection textDirection, |
546 | final void Function(String url, String title)? onLinkTab, | 547 | final void Function(String url, String title)? onLinkTab, |
547 | final String Function(String tex)? latexWorkaround, | 548 | final String Function(String tex)? latexWorkaround, |
548 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 549 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
549 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 550 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
550 | ) { | 551 | ) { |
551 | var match = exp.firstMatch(text.trim()); | 552 | var match = exp.firstMatch(text.trim()); |
@@ -582,7 +583,7 @@ class LatexMathMultyLine extends BlockMd { | @@ -582,7 +583,7 @@ class LatexMathMultyLine extends BlockMd { | ||
582 | TextDirection textDirection, | 583 | TextDirection textDirection, |
583 | void Function(String url, String title)? onLinkTab, | 584 | void Function(String url, String title)? onLinkTab, |
584 | String Function(String tex)? latexWorkaround, | 585 | String Function(String tex)? latexWorkaround, |
585 | - Widget Function(BuildContext context, String tex)? latexBuilder, | 586 | + Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
586 | Widget Function(BuildContext context,String name,String code)? codeBuilder, | 587 | Widget Function(BuildContext context,String name,String code)? codeBuilder, |
587 | ) { | 588 | ) { |
588 | var p0 = exp.firstMatch(text.trim()); | 589 | var p0 = exp.firstMatch(text.trim()); |
@@ -591,7 +592,7 @@ class LatexMathMultyLine extends BlockMd { | @@ -591,7 +592,7 @@ class LatexMathMultyLine extends BlockMd { | ||
591 | var workaround = latexWorkaround ?? (String tex) => tex; | 592 | var workaround = latexWorkaround ?? (String tex) => tex; |
592 | 593 | ||
593 | var builder = latexBuilder ?? | 594 | var builder = latexBuilder ?? |
594 | - (BuildContext context, String tex) => Math.tex( | 595 | + (BuildContext context, String tex,bool inline) => Math.tex( |
595 | tex, | 596 | tex, |
596 | textStyle: style?.copyWith( | 597 | textStyle: style?.copyWith( |
597 | fontFamily: "SansSerif", | 598 | fontFamily: "SansSerif", |
@@ -623,12 +624,12 @@ class LatexMathMultyLine extends BlockMd { | @@ -623,12 +624,12 @@ class LatexMathMultyLine extends BlockMd { | ||
623 | workaround(mathText), | 624 | workaround(mathText), |
624 | textDirection: textDirection, | 625 | textDirection: textDirection, |
625 | style: style?.copyWith( | 626 | style: style?.copyWith( |
626 | - color: Theme.of(context).colorScheme.error) ?? | ||
627 | - TextStyle(color: Theme.of(context).colorScheme.error), | 627 | + color:(!kDebugMode)?null: Theme.of(context).colorScheme.error) ?? |
628 | + TextStyle(color:(!kDebugMode)?null: Theme.of(context).colorScheme.error), | ||
628 | ); | 629 | ); |
629 | }, | 630 | }, |
630 | ); | 631 | ); |
631 | - return builder(context, workaround(mathText)); | 632 | + return builder(context, workaround(mathText),false); |
632 | } | 633 | } |
633 | } | 634 | } |
634 | 635 | ||
@@ -651,18 +652,16 @@ class LatexMath extends InlineMd { | @@ -651,18 +652,16 @@ class LatexMath extends InlineMd { | ||
651 | TextDirection textDirection, | 652 | TextDirection textDirection, |
652 | final void Function(String url, String title)? onLinkTab, | 653 | final void Function(String url, String title)? onLinkTab, |
653 | final String Function(String tex)? latexWorkaround, | 654 | final String Function(String tex)? latexWorkaround, |
654 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 655 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
655 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 656 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
656 | ) { | 657 | ) { |
657 | var p0 = exp.firstMatch(text.trim()); | 658 | var p0 = exp.firstMatch(text.trim()); |
658 | p0?.group(0); | 659 | p0?.group(0); |
659 | String mathText = p0?[1]?.toString() ?? ""; | 660 | String mathText = p0?[1]?.toString() ?? ""; |
660 | var workaround = latexWorkaround ?? (String tex) => tex; | 661 | var workaround = latexWorkaround ?? (String tex) => tex; |
661 | - return WidgetSpan( | ||
662 | - alignment: PlaceholderAlignment.baseline, | ||
663 | - baseline: TextBaseline.alphabetic, | ||
664 | - child: Math.tex( | ||
665 | - workaround(mathText), | 662 | + var builder = latexBuilder ?? |
663 | + (BuildContext context, String tex,bool inline) => Math.tex( | ||
664 | + tex, | ||
666 | textStyle: style?.copyWith( | 665 | textStyle: style?.copyWith( |
667 | fontFamily: "SansSerif", | 666 | fontFamily: "SansSerif", |
668 | ), | 667 | ), |
@@ -692,12 +691,16 @@ class LatexMath extends InlineMd { | @@ -692,12 +691,16 @@ class LatexMath extends InlineMd { | ||
692 | return Text( | 691 | return Text( |
693 | workaround(mathText), | 692 | workaround(mathText), |
694 | textDirection: textDirection, | 693 | textDirection: textDirection, |
695 | - style: | ||
696 | - style?.copyWith(color: Theme.of(context).colorScheme.error) ?? | ||
697 | - TextStyle(color: Theme.of(context).colorScheme.error), | 694 | + style: style?.copyWith( |
695 | + color:(!kDebugMode)?null: Theme.of(context).colorScheme.error) ?? | ||
696 | + TextStyle(color:(!kDebugMode)?null: Theme.of(context).colorScheme.error), | ||
698 | ); | 697 | ); |
699 | }, | 698 | }, |
700 | - ), | 699 | + ); |
700 | + return WidgetSpan( | ||
701 | + alignment: PlaceholderAlignment.baseline, | ||
702 | + baseline: TextBaseline.alphabetic, | ||
703 | + child:builder(context, workaround(mathText),true), | ||
701 | ); | 704 | ); |
702 | } | 705 | } |
703 | } | 706 | } |
@@ -715,7 +718,7 @@ class ItalicMd extends InlineMd { | @@ -715,7 +718,7 @@ class ItalicMd extends InlineMd { | ||
715 | TextDirection textDirection, | 718 | TextDirection textDirection, |
716 | final void Function(String url, String title)? onLinkTab, | 719 | final void Function(String url, String title)? onLinkTab, |
717 | final String Function(String tex)? latexWorkaround, | 720 | final String Function(String tex)? latexWorkaround, |
718 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 721 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
719 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 722 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
720 | ) { | 723 | ) { |
721 | var match = exp.firstMatch(text.trim()); | 724 | var match = exp.firstMatch(text.trim()); |
@@ -748,7 +751,7 @@ class ATagMd extends InlineMd { | @@ -748,7 +751,7 @@ class ATagMd extends InlineMd { | ||
748 | TextDirection textDirection, | 751 | TextDirection textDirection, |
749 | final void Function(String url, String title)? onLinkTab, | 752 | final void Function(String url, String title)? onLinkTab, |
750 | final String Function(String tex)? latexWorkaround, | 753 | final String Function(String tex)? latexWorkaround, |
751 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 754 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
752 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 755 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
753 | ) { | 756 | ) { |
754 | var match = exp.firstMatch(text.trim()); | 757 | var match = exp.firstMatch(text.trim()); |
@@ -794,7 +797,7 @@ class ImageMd extends InlineMd { | @@ -794,7 +797,7 @@ class ImageMd extends InlineMd { | ||
794 | TextDirection textDirection, | 797 | TextDirection textDirection, |
795 | final void Function(String url, String title)? onLinkTab, | 798 | final void Function(String url, String title)? onLinkTab, |
796 | final String Function(String tex)? latexWorkaround, | 799 | final String Function(String tex)? latexWorkaround, |
797 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 800 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
798 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 801 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
799 | ) { | 802 | ) { |
800 | var match = exp.firstMatch(text.trim()); | 803 | var match = exp.firstMatch(text.trim()); |
@@ -847,7 +850,7 @@ class TableMd extends BlockMd { | @@ -847,7 +850,7 @@ class TableMd extends BlockMd { | ||
847 | TextDirection textDirection, | 850 | TextDirection textDirection, |
848 | void Function(String url, String title)? onLinkTab, | 851 | void Function(String url, String title)? onLinkTab, |
849 | final String Function(String tex)? latexWorkaround, | 852 | final String Function(String tex)? latexWorkaround, |
850 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 853 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
851 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 854 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
852 | ) { | 855 | ) { |
853 | final List<Map<int, String>> value = text | 856 | final List<Map<int, String>> value = text |
@@ -955,7 +958,7 @@ class CodeBlockMd extends BlockMd { | @@ -955,7 +958,7 @@ class CodeBlockMd extends BlockMd { | ||
955 | TextDirection textDirection, | 958 | TextDirection textDirection, |
956 | final void Function(String url, String title)? onLinkTab, | 959 | final void Function(String url, String title)? onLinkTab, |
957 | final String Function(String tex)? latexWorkaround, | 960 | final String Function(String tex)? latexWorkaround, |
958 | - final Widget Function(BuildContext context, String tex)? latexBuilder, | 961 | + final Widget Function(BuildContext context, String tex,bool inline)? latexBuilder, |
959 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, | 962 | final Widget Function(BuildContext context,String name,String code)? codeBuilder, |
960 | ) { | 963 | ) { |
961 | String codes = exp.firstMatch(text)?[2] ?? ""; | 964 | String codes = exp.firstMatch(text)?[2] ?? ""; |
@@ -12,7 +12,7 @@ class MdWidget extends StatelessWidget { | @@ -12,7 +12,7 @@ class MdWidget extends StatelessWidget { | ||
12 | this.textDirection = TextDirection.ltr, | 12 | this.textDirection = TextDirection.ltr, |
13 | this.onLinkTab, | 13 | this.onLinkTab, |
14 | this.textAlign, | 14 | this.textAlign, |
15 | - this.textScaleFactor, | 15 | + this.textScaler, |
16 | this.latexWorkaround, | 16 | this.latexWorkaround, |
17 | this.latexBuilder, | 17 | this.latexBuilder, |
18 | this.followLinkColor = false, | 18 | this.followLinkColor = false, |
@@ -22,10 +22,11 @@ class MdWidget extends StatelessWidget { | @@ -22,10 +22,11 @@ class MdWidget extends StatelessWidget { | ||
22 | final TextDirection textDirection; | 22 | final TextDirection textDirection; |
23 | final TextStyle? style; | 23 | final TextStyle? style; |
24 | final TextAlign? textAlign; | 24 | final TextAlign? textAlign; |
25 | - final double? textScaleFactor; | 25 | + final TextScaler? textScaler; |
26 | final void Function(String url, String title)? onLinkTab; | 26 | final void Function(String url, String title)? onLinkTab; |
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, bool inline)? |
29 | + latexBuilder; | ||
29 | final bool followLinkColor; | 30 | final bool followLinkColor; |
30 | final Widget Function(BuildContext context, String name, String code)? | 31 | final Widget Function(BuildContext context, String name, String code)? |
31 | codeBuilder; | 32 | codeBuilder; |
@@ -60,7 +61,7 @@ class MdWidget extends StatelessWidget { | @@ -60,7 +61,7 @@ class MdWidget extends StatelessWidget { | ||
60 | style: style?.copyWith(), | 61 | style: style?.copyWith(), |
61 | ), | 62 | ), |
62 | textDirection: textDirection, | 63 | textDirection: textDirection, |
63 | - textScaleFactor: textScaleFactor, | 64 | + textScaler: textScaler, |
64 | textAlign: textAlign, | 65 | textAlign: textAlign, |
65 | ); | 66 | ); |
66 | } | 67 | } |
-
Please register or login to post a comment