saminsohag

textStle added to the latexBuilder

## 0.1.1
* Fixed hitTest essue.
## 0.1.0
* Inline Latex Builder added and Link are now Clickable and Latex Error Color changed to null for debug mode.
... ...
... ... @@ -169,81 +169,83 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex
// titleSmall: TextStyle(fontSize: 10),
// ),
// ),
child: TexMarkdown(
_controller.text,
textDirection: _direction,
onLinkTab: (url, title) {
debugPrint(url);
debugPrint(title);
},
textAlign: TextAlign.justify,
// textScaler: const TextScaler.linear(1.3),
textScaler: const TextScaler.linear(1),
style: const TextStyle(
// Regular text font size here.
fontSize: 15,
),
latexWorkaround: (tex) => tex.replaceAllMapped(
RegExp(r"align\*"), (match) => "aligned"),
latexBuilder: (contex, tex, inline) {
if (tex.contains(r"\begin{tabular}")) {
// return table.
String tableString = "|${(RegExp(
r"^\\begin\{tabular\}\{.*?\}(.*?)\\end\{tabular\}$",
multiLine: true,
dotAll: true,
).firstMatch(tex)?[1] ?? "").trim()}|";
tableString = tableString
.replaceAll(r"\\", "|\n|")
.replaceAll(r"\hline", "")
.replaceAll(RegExp(r"(?<!\\)&"), "|");
var tableStringList = tableString
.split("\n")
..insert(1, "|---|");
tableString = tableStringList.join("\n");
return TexMarkdown(tableString);
}
var controller = ScrollController();
Widget child = Math.tex(
tex,
textStyle: const TextStyle(
fontSize: 17,
),
);
if (!inline) {
child = Padding(
padding: const EdgeInsets.all(0.0),
child: Material(
color: Theme.of(context)
.colorScheme
.onInverseSurface,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Scrollbar(
controller: controller,
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: TexMarkdown(
_controller.text,
textDirection: _direction,
onLinkTab: (url, title) {
debugPrint(url);
debugPrint(title);
},
textAlign: TextAlign.justify,
// textScaler: const TextScaler.linear(1.3),
textScaler: const TextScaler.linear(1),
style: const TextStyle(
// Regular text font size here.
fontSize: 15,
),
latexWorkaround: (tex) =>
tex.replaceAllMapped(RegExp(r"align\*"),
(match) => "aligned"),
latexBuilder:
(contex, tex, textStyle, inline) {
if (tex.contains(r"\begin{tabular}")) {
// return table.
String tableString = "|${(RegExp(
r"^\\begin\{tabular\}\{.*?\}(.*?)\\end\{tabular\}$",
multiLine: true,
dotAll: true,
).firstMatch(tex)?[1] ?? "").trim()}|";
tableString = tableString
.replaceAll(r"\\", "|\n|")
.replaceAll(r"\hline", "")
.replaceAll(RegExp(r"(?<!\\)&"), "|");
var tableStringList = tableString
.split("\n")
..insert(1, "|---|");
tableString = tableStringList.join("\n");
return TexMarkdown(tableString);
}
var controller = ScrollController();
Widget child = Math.tex(
tex,
textStyle: textStyle,
);
if (!inline) {
child = Padding(
padding: const EdgeInsets.all(0.0),
child: Material(
color: Theme.of(context)
.colorScheme
.onInverseSurface,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Scrollbar(
controller: controller,
scrollDirection: Axis.horizontal,
child: Math.tex(
tex,
textStyle: const TextStyle(
fontSize: 17,
child: SingleChildScrollView(
controller: controller,
scrollDirection:
Axis.horizontal,
child: Math.tex(
tex,
textStyle: textStyle,
),
),
),
),
),
),
);
}
child = InkWell(
onTap: () {
debugPrint("Hello world");
},
child: child,
);
}
child = InkWell(
onTap: () {
debugPrint("Hello world");
},
child: child,
);
return child;
},
return child;
},
),
),
// child: const Text("Hello"),
);
... ...
... ... @@ -182,7 +182,7 @@ packages:
path: ".."
relative: true
source: path
version: "0.1.0"
version: "0.1.1"
http:
dependency: transitive
description:
... ...
... ... @@ -26,7 +26,8 @@ class TexMarkdown extends StatelessWidget {
final TextScaler? textScaler;
final void Function(String url, String title)? onLinkTab;
final String Function(String tex)? latexWorkaround;
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(
BuildContext context, String tex, TextStyle style, bool inline)?
latexBuilder;
final bool followLinkColor;
final Widget Function(BuildContext context, String name, String code)?
... ...
... ... @@ -38,7 +38,7 @@ abstract class MarkdownComponent {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex, TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -128,7 +128,7 @@ abstract class MarkdownComponent {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -151,7 +151,7 @@ abstract class InlineMd extends MarkdownComponent {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -170,7 +170,7 @@ abstract class BlockMd extends MarkdownComponent {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -197,7 +197,7 @@ abstract class BlockMd extends MarkdownComponent {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -216,7 +216,7 @@ class HTag extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -290,7 +290,7 @@ class NewLines extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -317,7 +317,7 @@ class HrLine extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -343,7 +343,7 @@ class CheckBoxMd extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -379,7 +379,7 @@ class RadioButtonMd extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -415,7 +415,7 @@ class IndentMd extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -462,7 +462,7 @@ class UnOrderedList extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -501,7 +501,7 @@ class OrderedList extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -536,7 +536,7 @@ class HighlightedText extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -574,7 +574,7 @@ class BoldMd extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -613,7 +613,7 @@ class LatexMathMultyLine extends BlockMd {
TextDirection textDirection,
void Function(String url, String title)? onLinkTab,
String Function(String tex)? latexWorkaround,
Widget Function(BuildContext context, String tex, bool inline)?
Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -624,11 +624,9 @@ class LatexMathMultyLine extends BlockMd {
var workaround = latexWorkaround ?? (String tex) => tex;
var builder = latexBuilder ??
(BuildContext context, String tex, bool inline) => Math.tex(
(BuildContext context, String tex,TextStyle textStyle, bool inline) => Math.tex(
tex,
textStyle: style?.copyWith(
fontFamily: "SansSerif",
),
textStyle: textStyle,
mathStyle: MathStyle.display,
textScaleFactor: 1,
settings: const TexParserSettings(
... ... @@ -655,18 +653,14 @@ class LatexMathMultyLine extends BlockMd {
return Text(
workaround(mathText),
textDirection: textDirection,
style: style?.copyWith(
color: (!kDebugMode)
? null
: Theme.of(context).colorScheme.error) ??
TextStyle(
style: textStyle.copyWith(
color: (!kDebugMode)
? null
: Theme.of(context).colorScheme.error),
);
},
);
return builder(context, workaround(mathText), false);
return builder(context, workaround(mathText),style??const TextStyle(), false);
}
}
... ... @@ -689,7 +683,7 @@ class LatexMath extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -699,11 +693,9 @@ class LatexMath extends InlineMd {
String mathText = p0?[1]?.toString() ?? "";
var workaround = latexWorkaround ?? (String tex) => tex;
var builder = latexBuilder ??
(BuildContext context, String tex, bool inline) => Math.tex(
(BuildContext context, String tex,TextStyle textStyle, bool inline) => Math.tex(
tex,
textStyle: style?.copyWith(
fontFamily: "SansSerif",
),
textStyle: textStyle,
mathStyle: MathStyle.display,
textScaleFactor: 1,
settings: const TexParserSettings(
... ... @@ -730,11 +722,7 @@ class LatexMath extends InlineMd {
return Text(
workaround(mathText),
textDirection: textDirection,
style: style?.copyWith(
color: (!kDebugMode)
? null
: Theme.of(context).colorScheme.error) ??
TextStyle(
style: textStyle.copyWith(
color: (!kDebugMode)
? null
: Theme.of(context).colorScheme.error),
... ... @@ -744,7 +732,7 @@ class LatexMath extends InlineMd {
return WidgetSpan(
alignment: PlaceholderAlignment.baseline,
baseline: TextBaseline.alphabetic,
child: builder(context, workaround(mathText), true),
child: builder(context, workaround(mathText),style ??const TextStyle(), true),
);
}
}
... ... @@ -762,7 +750,7 @@ class ItalicMd extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -797,7 +785,7 @@ class ATagMd extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -845,7 +833,7 @@ class ImageMd extends InlineMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -900,7 +888,7 @@ class TableMd extends BlockMd {
TextDirection textDirection,
void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ... @@ -1010,7 +998,7 @@ class CodeBlockMd extends BlockMd {
TextDirection textDirection,
final void Function(String url, String title)? onLinkTab,
final String Function(String tex)? latexWorkaround,
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder,
final Widget Function(BuildContext context, String name, String code)?
codeBuilder,
... ...
... ... @@ -25,7 +25,7 @@ class MdWidget extends StatelessWidget {
final TextScaler? textScaler;
final void Function(String url, String title)? onLinkTab;
final String Function(String tex)? latexWorkaround;
final Widget Function(BuildContext context, String tex, bool inline)?
final Widget Function(BuildContext context, String tex,TextStyle textStyle, bool inline)?
latexBuilder;
final bool followLinkColor;
final Widget Function(BuildContext context, String name, String code)?
... ...
name: gpt_markdown
description: "The purpose of this package is to render the response of ChatGPT into a Flutter app."
version: 0.1.0
version: 0.1.1
homepage: https://github.com/saminsohag/flutter_packages/tree/main/gpt_markdown
environment:
... ...