Showing
3 changed files
with
17 additions
and
17 deletions
@@ -395,7 +395,7 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | @@ -395,7 +395,7 @@ Markdown and LaTeX can be powerful tools for formatting text and mathematical ex | ||
395 | ), | 395 | ), |
396 | if (writingMod) | 396 | if (writingMod) |
397 | ConstrainedBox( | 397 | ConstrainedBox( |
398 | - constraints: const BoxConstraints(maxHeight: 200), | 398 | + constraints: const BoxConstraints(maxHeight: 400), |
399 | child: Padding( | 399 | child: Padding( |
400 | padding: const EdgeInsets.all(8.0), | 400 | padding: const EdgeInsets.all(8.0), |
401 | child: TextField( | 401 | child: TextField( |
@@ -68,7 +68,7 @@ class GptMarkdownConfig { | @@ -68,7 +68,7 @@ class GptMarkdownConfig { | ||
68 | ); | 68 | ); |
69 | } | 69 | } |
70 | 70 | ||
71 | - getRich(InlineSpan span) { | 71 | + Text getRich(InlineSpan span) { |
72 | return Text.rich( | 72 | return Text.rich( |
73 | span, | 73 | span, |
74 | textDirection: textDirection, | 74 | textDirection: textDirection, |
@@ -12,8 +12,8 @@ abstract class MarkdownComponent { | @@ -12,8 +12,8 @@ abstract class MarkdownComponent { | ||
12 | RadioButtonMd(), | 12 | RadioButtonMd(), |
13 | CheckBoxMd(), | 13 | CheckBoxMd(), |
14 | HrLine(), | 14 | HrLine(), |
15 | + LatexMathMultiLine(), | ||
15 | IndentMd(), | 16 | IndentMd(), |
16 | - LatexMathMultyLine(), | ||
17 | LatexMath(), | 17 | LatexMath(), |
18 | ImageMd(), | 18 | ImageMd(), |
19 | HighlightedText(), | 19 | HighlightedText(), |
@@ -145,9 +145,10 @@ abstract class BlockMd extends MarkdownComponent { | @@ -145,9 +145,10 @@ abstract class BlockMd extends MarkdownComponent { | ||
145 | text, | 145 | text, |
146 | config, | 146 | config, |
147 | ); | 147 | ); |
148 | + length = min(length, 4); | ||
148 | if (length > 0) { | 149 | if (length > 0) { |
149 | child = UnorderedListView( | 150 | child = UnorderedListView( |
150 | - spacing: length.toDouble() * 6, | 151 | + spacing: length * 6.0, |
151 | child: child, | 152 | child: child, |
152 | ); | 153 | ); |
153 | } | 154 | } |
@@ -306,7 +307,7 @@ class RadioButtonMd extends BlockMd { | @@ -306,7 +307,7 @@ class RadioButtonMd extends BlockMd { | ||
306 | class IndentMd extends InlineMd { | 307 | class IndentMd extends InlineMd { |
307 | @override | 308 | @override |
308 | RegExp get exp => | 309 | RegExp get exp => |
309 | - RegExp(r"^(\ +)(((?!\n\n).)+)$", dotAll: true, multiLine: true); | 310 | + RegExp(r"^(\ +)(((?!(\n\n|\n\ )).)+)$", dotAll: true, multiLine: true); |
310 | 311 | ||
311 | @override | 312 | @override |
312 | InlineSpan span( | 313 | InlineSpan span( |
@@ -317,7 +318,7 @@ class IndentMd extends InlineMd { | @@ -317,7 +318,7 @@ class IndentMd extends InlineMd { | ||
317 | var match = exp.firstMatch(text); | 318 | var match = exp.firstMatch(text); |
318 | int spaces = (match?[1] ?? "").length; | 319 | int spaces = (match?[1] ?? "").length; |
319 | var data = "${match?[2]}".trim(); | 320 | var data = "${match?[2]}".trim(); |
320 | - data.replaceAll(RegExp(r'\n\ *'), '\n').trim(); | 321 | + data = data.replaceAll(RegExp(r'\n\ {' '$spaces' '}'), '\n').trim(); |
321 | var child = TextSpan( | 322 | var child = TextSpan( |
322 | children: MarkdownComponent.generate( | 323 | children: MarkdownComponent.generate( |
323 | context, | 324 | context, |
@@ -330,17 +331,16 @@ class IndentMd extends InlineMd { | @@ -330,17 +331,16 @@ class IndentMd extends InlineMd { | ||
330 | } | 331 | } |
331 | return TextSpan( | 332 | return TextSpan( |
332 | children: [ | 333 | children: [ |
333 | - const TextSpan(text: '\n'), | ||
334 | WidgetSpan( | 334 | WidgetSpan( |
335 | - child: UnorderedListView( | ||
336 | - bulletColor: config.style?.color, | ||
337 | - padding: spaces * 5, | ||
338 | - bulletSize: 0, | ||
339 | - textDirection: config.textDirection, | ||
340 | - child: Text.rich(child), | 335 | + child: Row( |
336 | + children: [ | ||
337 | + const SizedBox( | ||
338 | + width: 20, | ||
339 | + ), | ||
340 | + Expanded(child: config.getRich(child)), | ||
341 | + ], | ||
341 | ), | 342 | ), |
342 | ), | 343 | ), |
343 | - const TextSpan(text: '\n'), | ||
344 | ], | 344 | ], |
345 | ); | 345 | ); |
346 | } | 346 | } |
@@ -520,7 +520,7 @@ class ItalicMd extends InlineMd { | @@ -520,7 +520,7 @@ class ItalicMd extends InlineMd { | ||
520 | } | 520 | } |
521 | } | 521 | } |
522 | 522 | ||
523 | -class LatexMathMultyLine extends BlockMd { | 523 | +class LatexMathMultiLine extends BlockMd { |
524 | @override | 524 | @override |
525 | String get expString => (r"\\\[(((?!\n\n).)*)\\\]|(\\begin.*?\\end{.*?})"); | 525 | String get expString => (r"\\\[(((?!\n\n).)*)\\\]|(\\begin.*?\\end{.*?})"); |
526 | @override | 526 | @override |
@@ -701,7 +701,7 @@ class SourceTag extends InlineMd { | @@ -701,7 +701,7 @@ class SourceTag extends InlineMd { | ||
701 | /// Link text component | 701 | /// Link text component |
702 | class ATagMd extends InlineMd { | 702 | class ATagMd extends InlineMd { |
703 | @override | 703 | @override |
704 | - RegExp get exp => RegExp(r"\[([^\s\*][^\n]*?[^\s]?)?\]\(([^\s\*]+)?\)"); | 704 | + RegExp get exp => RegExp(r"\[([^\s\*][^\n]*?[^\s]?)?\]\(([^\s\*]+?)?\)"); |
705 | 705 | ||
706 | @override | 706 | @override |
707 | InlineSpan span( | 707 | InlineSpan span( |
@@ -731,7 +731,7 @@ class ATagMd extends InlineMd { | @@ -731,7 +731,7 @@ class ATagMd extends InlineMd { | ||
731 | /// Image component | 731 | /// Image component |
732 | class ImageMd extends InlineMd { | 732 | class ImageMd extends InlineMd { |
733 | @override | 733 | @override |
734 | - RegExp get exp => RegExp(r"\!\[([^\s][^\n]*[^\s]?)?\]\(([^\s]+)\)"); | 734 | + RegExp get exp => RegExp(r"\!\[([^\s][^\n]*[^\s]?)?\]\(([^\s]+?)\)"); |
735 | 735 | ||
736 | @override | 736 | @override |
737 | InlineSpan span( | 737 | InlineSpan span( |
-
Please register or login to post a comment