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