Repository: flutter
Issue: Rendering a pre-block with an empty indented line (or mixed indentation) throws exceptions
Labels: framework,a: typography,platform-linux,a: desktop,a: error message,P2,team-linux,triaged-linux

If I try to render this content in a `Markdown` or `MarkdownBody` various exceptions are thrown and the rendering is buggy:

```
    first line (indented four spaces)

    third line (indented four spaces)
```

where the second (middle) line is also indented four spaces but is otherwise empty. A similar problem occurs with the following code (where the second line similarly contains 4 spaces):
```
    first line (indented four spaces)

third line (not indented)
```

## Steps to Reproduce

The code sample given later on  reproduces the problem for me every time. Running the application is enough - no user interaction is necessary as it renders the markdown in the very first page.

1. Execute `flutter run` on the code sample (uses flutter_markdown v0.6.9)

**Expected results:** the text sample where all three lines have 4-space indentation would be rendered as an pre block. The text sample above that mixes indented and non-indented lines would be rendered as a regular paragraph

**Actual results:** Exceptions are thrown and the rendering is buggy

<details>
<summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

void main() {
  runApp(const MyApp());
}

const markdownData ="""    this is a pre block
    
    hello
""";

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(primarySwatch: Colors.blue,),
      home: Scaffold(
          body: MarkdownBody(data:markdownData)
      )
    );
  }
}
```

</details>

<details>
  <summary>Logs</summary>

```
flutter run --verbose
[  +73 ms] executing: uname -m
[  +33 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +7 ms] executing: [/opt/tools/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +6 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 77d935af4db863f6abd0b9c31c7e6df2a13de57b
[        ] executing: [/opt/tools/flutter/] git tag --points-at 77d935af4db863f6abd0b9c31c7e6df2a13de57b
[  +14 ms] Exit code 0 from: git tag --points-at 77d935af4db863f6abd0b9c31c7e6df2a13de57b
[        ] 2.8.1
[   +9 ms] executing: [/opt/tools/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/opt/tools/flutter/] git ls-remote --get-url origin
[   +5 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +97 ms] executing: [/opt/tools/flutter/] git rev-parse --abbrev-ref HEAD
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +74 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +67 ms] executing: /home/amos/Android/Sdk/platform-tools/adb devices -l
[  +47 ms] List of devices attached
[   +5 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +81 ms] Skipping pub get: version match.
[ +143 ms] Generating /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[ +110 ms] Initializing file store
[  +10 ms] Skipping target: gen_localizations
[   +8 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents:
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/.dart_tool/package_config_subset}
[  +37 ms] gen_dart_plugin_registrant: Complete
[   +1 ms] Skipping target: _composite
[   +3 ms] complete
[   +8 ms] Launching lib/main.dart on Linux in debug mode...
[   +6 ms] /opt/tools/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /opt/tools/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
/opt/tools/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names --experimental-emit-debug-metadata
-DFLUTTER_WEB_AUTO_DETECT=true --output-dill /tmp/flutter_tools.HZEUHO/flutter_tool.ZGVDBY/app.dill --packages
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts
--track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill
--enable-experiment=alternative-invalidation-strategy
[  +25 ms] Building Linux application...
[  +20 ms] <- compile package:markdown_pre_blocks/main.dart
[   +2 ms] executing: [build/linux/x64/debug/] cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_PLATFORM=linux-x64
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux
[  +49 ms] -- Configuring done
[   +6 ms] -- Generating done
[  +44 ms] -- Build files have been written to: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug
[   +2 ms] executing: ninja -C build/linux/x64/debug install
[  +15 ms] ninja: Entering directory `build/linux/x64/debug'
[+3414 ms] [1/5] Generating /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/libflutter_linux_gtk.so,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_engine.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_method_call.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_method_response.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_value.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/fl_view.h,
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_
[   +6 ms] [  +86 ms] executing: uname -m
[        ] [  +39 ms] Exit code 0 from: uname -m
[        ] [        ] x86_64
[        ] [  +10 ms] executing: [/opt/tools/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [   +7 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] 77d935af4db863f6abd0b9c31c7e6df2a13de57b
[        ] [        ] executing: [/opt/tools/flutter/] git tag --points-at 77d935af4db863f6abd0b9c31c7e6df2a13de57b
[        ] [  +15 ms] Exit code 0 from: git tag --points-at 77d935af4db863f6abd0b9c31c7e6df2a13de57b
[        ] [        ] 2.8.1
[        ] [  +13 ms] executing: [/opt/tools/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] origin/stable
[        ] [        ] executing: [/opt/tools/flutter/] git ls-remote --get-url origin
[        ] [   +6 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +98 ms] executing: [/opt/tools/flutter/] git rev-parse --abbrev-ref HEAD
[        ] [   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] stable
[        ] [  +84 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [   +5 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [ +162 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] [   +1 ms] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [   +2 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[        ] [  +76 ms] Initializing file store
[        ] [  +12 ms] Done initializing file store
[        ] [  +59 ms] Skipping target: gen_localizations
[        ] [  +13 ms] Skipping target: gen_dart_plugin_registrant
[        ] [ +694 ms] Skipping target: unpack_linux
[        ] [ +613 ms] Skipping target: kernel_snapshot
[        ] [ +372 ms] Skipping target: debug_bundle_linux-x64_assets
[        ] [        ] Persisting file store
[        ] [  +10 ms] Done persisting file store
[        ] [   +4 ms] build succeeded.
[        ] [   +8 ms] "flutter assemble" took 2,075ms.
[        ] [ +167 ms] ensureAnalyticsSent: 163ms
[        ] [   +1 ms] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[ +603 ms] [2/5] Building CXX object CMakeFiles/markdown_pre_blocks.dir/flutter/generated_plugin_registrant.cc.o
[  +81 ms] [3/5] Building CXX object CMakeFiles/markdown_pre_blocks.dir/my_application.cc.o
[ +159 ms] [4/5] Linking CXX executable intermediates_do_not_run/markdown_pre_blocks
[        ] [4/5] Install the project...
[   +4 ms] -- Install configuration: "Debug"
[  +14 ms] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/markdown_pre_blocks
[        ] -- Set runtime path of "/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/markdown_pre_blocks" to "$ORIGIN/lib"
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/icudtl.dat
[   +1 ms] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so
[  +66 ms] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/FontManifest.json
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/fonts
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf
[   +2 ms] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/NOTICES.Z
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.json
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin
[  +78 ms] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/packages
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets
[        ] -- Installing:
/home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
[        ] -- Installing: /home/amos/Projects/projectjudo/flutter-reproductions/markdown_pre_blocks/build/linux/x64/debug/bundle/data/flutter_assets/version.json
[  +10 ms] Building Linux application... (completed in 4.6s)
[ +318 ms] Observatory URL on device: http://127.0.0.1:37887/bOBMs6eHXX4=/
[   +6 ms] Caching compiled dill
[  +49 ms] Connecting to service protocol: http://127.0.0.1:37887/bOBMs6eHXX4=/
[ +186 ms] Launching a Dart Developer Service (DDS) instance at http://127.0.0.1:0, connecting to VM service at http://127.0.0.1:37887/bOBMs6eHXX4=/.
[ +119 ms] DDS is listening at http://127.0.0.1:35425/vSSF2VP2-Qg=/.
[  +90 ms] Successfully connected to service protocol: http://127.0.0.1:37887/bOBMs6eHXX4=/
[  +61 ms] DevFS: Creating new filesystem on the device (null)
[  +28 ms] DevFS: Created new filesystem on the device (file:///tmp/markdown_pre_blocksFPVZFO/markdown_pre_blocks/)
[   +4 ms] Updating assets
[ +161 ms] Syncing files to device Linux...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +2 ms] <- recompile package:markdown_pre_blocks/main.dart e75443c6-14a0-45f7-80a7-8dd88ef61a93
[        ] <- e75443c6-14a0-45f7-80a7-8dd88ef61a93
[ +122 ms] Updating files.
[        ] DevFS: Sync finished
[   +2 ms] Syncing files to device Linux... (completed in 128ms)
[        ] Synced 0.0MB.
[   +2 ms] <- accept
[  +12 ms] Connected to _flutterView/0x10f2ca0.
[   +6 ms] Flutter run key commands.
[   +2 ms] r Hot reload. 🔥🔥🔥
[   +1 ms] R Hot restart.
[        ] h List all available interactive commands.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] 💪 Running with sound null safety 💪
[   +1 ms] An Observatory debugger and profiler on Linux is available at: http://127.0.0.1:35425/vSSF2VP2-Qg=/
[ +384 ms] 
                    ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
                    The following assertion was thrown during performLayout():
                    RenderParagraph object was given an infinite size during layout.
                    This probably means that it is a render object that tries to be as big as possible, but it was put
                    inside another render object that allows its children to pick their own size.
                    The nearest ancestor providing an unbounded width constraint is: _RenderSingleChildViewport#a3bd1 relayoutBoundary=up16 NEEDS-LAYOUT NEEDS-PAINT
NEEDS-COMPOSITING-BITS-UPDATE:
                      needs compositing
                      creator: _SingleChildViewport ← IgnorePointer-[GlobalKey#c4bd3] ← Semantics ← Listener ←
                        _GestureSemantics ← RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#89256] ←
                        Listener ← _ScrollableScope ← _ScrollSemantics-[GlobalKey#5c296] ←
                        NotificationListener<ScrollMetricsNotification> ← Scrollable ← SingleChildScrollView ← ⋯
                      parentData: <none> (can use size)
                      constraints: BoxConstraints(0.0<=w<=1280.0, 0.0<=h<=Infinity)
                      size: MISSING
                    The nearest ancestor providing an unbounded height constraint is: RenderFlex#e521e relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
                      creator: Column ← DecoratedBox ← MarkdownBody ← _BodyBuilder ← MediaQuery ←
                        LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ←
                        AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#21445 ink renderer] ←
                        NotificationListener<LayoutChangedNotification> ← ⋯
                      parentData: <none> (can use size)
                      constraints: BoxConstraints(0.0<=w<=1280.0, 0.0<=h<=720.0)
                      size: MISSING
                      direction: vertical
                      mainAxisAlignment: start
                      mainAxisSize: max
                      crossAxisAlignment: start
                      textDirection: ltr
                      verticalDirection: down
                    The constraints that applied to the RenderParagraph were:
                      BoxConstraints(unconstrained)
                    The exact size it was given was:
                      Size(93.0, Infinity)
                    See https://flutter.dev/docs/development/ui/layout/box-constraints for more information.
                    
                    The relevant error-causing widget was:
                      RichText-[#00179]
                      RichText:file:///opt/tools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_markdown-0.6.9/lib/src/builder.dart:832:14
                    
                    When the exception was thrown, this was the stack:
                    #0      RenderBox.debugAssertDoesMeetConstraints.<anonymous closure> (package:flutter/src/rendering/box.dart:2203:9)
                    #1      RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:2297:6)
                    #2      RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:1989:7)
                    #3      RenderBox.size= (package:flutter/src/rendering/box.dart:1991:6)
                    #4      RenderParagraph.performLayout (package:flutter/src/rendering/paragraph.dart:644:5)
                    #5      RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #6      RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:233:12)
                    #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #8      _RenderSingleChildViewport.performLayout (package:flutter/src/widgets/single_child_scroll_view.dart:504:14)
                    #9      RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #10     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #12     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #14     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #15     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #16     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #17     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #18     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #20     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #21     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #22     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #25     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
                    #26     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #27     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #29     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #31     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #32     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #33     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #34     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #35     RenderWrap.performLayout (package:flutter/src/rendering/wrap.dart:612:13)
                    #36     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #37     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
                    #38     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:829:43)
                    #39     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
                    #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #41     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #42     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #43     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
                    #44     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1005:7)
                    #45     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
                    #46     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
                    #47     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #49     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #50     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #51     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
                    #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #53     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #54     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #55     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #56     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #57     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #58     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #59     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #60     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #61     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #62     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #63     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #64     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #65     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #66     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #67     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #68     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #69     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #70     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3428:13)
                    #71     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #73     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #74     _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:751:15)
                    #75     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #76     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #77     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #78     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #79     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #80     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #81     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #82     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #83     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
                    #84     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #85     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #86     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #87     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #88     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #89     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #90     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #91     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
                    #92     RenderObject.layout (package:flutter/src/rendering/object.dart:1852:7)
                    #93     RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
                    #94     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1707:7)
                    #95     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:879:18)
                    #96     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:497:19)
                    #97     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
                    #98     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
                    #99     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1145:15)
                    #100    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
                    #101    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
                    (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
                    
                    The following RenderObject was being processed when the exception was fired: RenderParagraph#ff76a relayoutBoundary=up18 NEEDS-LAYOUT NEEDS-PAINT:
                      creator: RichText-[#00179] ← Padding ← _SingleChildViewport ← IgnorePointer-[GlobalKey#c4bd3] ←
                        Semantics ← Listener ← _GestureSemantics ←
                        RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#89256] ← Listener ← _ScrollableScope
                        ← _ScrollSemantics-[GlobalKey#5c296] ← NotificationListener<ScrollMetricsNotification> ← ⋯
                      parentData: offset=Offset(0.0, 0.0) (can use size)
                      constraints: BoxConstraints(unconstrained)
                      size: Size(93.0, Infinity)
                      textAlign: start
                      textDirection: ltr
                      softWrap: wrapping at box width
                      overflow: clip
                      locale: en_US
                      maxLines: unlimited
                    This RenderObject had the following child:
                        text: TextSpan
                    ════════════════════════════════════════════════════════════════════════════════════════════════════
[  +26 ms] 
           Another exception was thrown: RenderPadding object was given an infinite size during layout.
[   +7 ms] 
           Another exception was thrown: _RenderSingleChildViewport object was given an infinite size during layout.
[  +24 ms] 
           Another exception was thrown: RenderIgnorePointer object was given an infinite size during layout.
[  +27 ms] 
           Another exception was thrown: RenderSemanticsAnnotations object was given an infinite size during layout.
[  +20 ms] 
           Another exception was thrown: RenderPointerListener object was given an infinite size during layout.
[  +14 ms] 
           Another exception was thrown: RenderSemanticsGestureHandler object was given an infinite size during layout.
[  +28 ms] 
           Another exception was thrown: RenderPointerListener object was given an infinite size during layout.
[  +22 ms] 
           Another exception was thrown: _RenderScrollSemantics object was given an infinite size during layout.
[  +15 ms] 
           Another exception was thrown: RenderRepaintBoundary object was given an infinite size during layout.
[  +18 ms] 
           Another exception was thrown: RenderCustomPaint object was given an infinite size during layout.
[  +17 ms] 
           Another exception was thrown: RenderMouseRegion object was given an infinite size during layout.
[  +16 ms] 
           Another exception was thrown: RenderPointerListener object was given an infinite size during layout.
[  +11 ms] 
           Another exception was thrown: RenderSemanticsGestureHandler object was given an infinite size during layout.
[  +11 ms] 
           Another exception was thrown: RenderRepaintBoundary object was given an infinite size during layout.
[  +12 ms] 
           Another exception was thrown: RenderWrap object was given an infinite size during layout.
[  +62 ms] 
           Another exception was thrown: A RenderFlex overflowed by Infinity pixels on the bottom.
[  +66 ms] 
           Another exception was thrown: SemanticsNode#5(Rect.fromLTRB(0.0, 0.0, 0.0, 0.0), invisible) (with null) tried to set a non-finite rect.
[  +44 ms] The Flutter DevTools debugger and profiler on Linux is available at: http://127.0.0.1:9100?uri=http://127.0.0.1:35425/vSSF2VP2-Qg=/
[  +25 ms] 
           Another exception was thrown: 'package:flutter/src/widgets/binding.dart': Failed assertion: line 857 pos 14: '!_firstFrameCompleter.isCompleted': is not true.
[+5955 ms] Application finished.
```

NOTE: fixing these const warnings did not solve the problem
```
flutter analyze
Analyzing markdown_pre_blocks...                                        

   info • Prefer const with constant constructors • lib/main.dart:22:13 • prefer_const_constructors
   info • Prefer const with constant constructors • lib/main.dart:23:17 • prefer_const_constructors

2 issues found. (ran in 1.9s)
```

```
flutter doctor -v
[✓] Flutter (Channel stable, 2.8.1, on Ubuntu 20.04.3 LTS 5.13.0-27-generic, locale en_US.UTF-8)
    • Flutter version 2.8.1 at /opt/tools/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (9 weeks ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /home/amos/Android/Sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /usr/local/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.20.0
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[✓] Android Studio (version 2021.1)
    • Android Studio at /usr/local/android-studio
    • Flutter plugin version 63.2.2
    • Dart plugin version 211.7798
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 20.04.3 LTS 5.13.0-27-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 97.0.4692.99

• No issues found!
```

</details>