Skip to content

Release 1.0.8#135

Merged
gazreese merged 14 commits into
mainfrom
release/v1.0.8
Jul 6, 2026
Merged

Release 1.0.8#135
gazreese merged 14 commits into
mainfrom
release/v1.0.8

Conversation

@gazreese

@gazreese gazreese commented Jul 6, 2026

Copy link
Copy Markdown
Member

Release 1.0.8 of flutter_markdown_plus. This bundles five community contributions (integrated locally) plus test-infrastructure and tooling modernization.

What's included

  • Fixed custom builders and paddingBuilders for the hr tag being ignored
  • Fixed bold, italic, and link formatting not rendering inside blockquotes
  • Forced a consistent line height within each text block so mixed font weights (e.g. bold) no longer shift line height, while headers and other blocks keep their own height
  • Updated the default blockquote styling to be theme-aware (surfaceContainerHighest with a primary-coloured left border) for better light/dark support
  • Added a noScroll option to the Markdown widget to render content in a non-scrolling Column for use inside an existing scroll view
  • Added an integration test suite (example/integration_test/) covering link taps, scrolling, task-list checkboxes, text selection, and example app launch, plus a GitHub Actions job running them on an Android emulator
  • Migrated linting to package:flutter_lints (retaining strict type analysis + required public API docs)
  • Updated dependencies (markdown ^7.3.1, mockito ^5.7.0, pinned leak_tracker_flutter_testing)
  • Example app fixes: aligned Flutter constraint, bumped Android Gradle Plugin to 8.6.0, removed an unused GCP Artifact Registry Gradle plugin

Contributors

Thanks to the contributors whose work is folded into this release:

Notes

Verification

  • flutter analyze clean; 371 tests passing locally (5 skipped)
  • CI runs ./validate.sh + Android integration tests on this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_014oVQtXCPb3bSLnL2eDwGrh

gazreese and others added 14 commits May 25, 2026 10:36
Phase 1 — test infrastructure:
- Add example/integration_test/ with an on-device suite covering link taps,
  scrolling, GFM checkboxes, text selection, and example app launch, plus a
  reusable markdown_harness.dart.
- Add scripts/integration_test.sh and a parallel Android emulator CI job
  (reactivecircus/android-emulator-runner) alongside the existing macOS gate.
- Exclude the locally symlinked flutter_markdown_plus_latex package from
  analysis, git, and publishing so it no longer breaks `flutter analyze`.

Phase 2 — modernization:
- Migrate linting to package:flutter_lints ^6, retaining strict type analysis
  and required public API documentation.
- Bump markdown to ^7.3.1, mockito to ^5.7.0, and pin
  leak_tracker_flutter_testing.
- Align the example app's Flutter constraint with the package and add a
  documentation link to the pubspec.
- Bump version to 1.0.8 and update the changelog.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The `hr` block previously always rendered the default horizontal-rule
Container, overriding any custom `builders['hr']` output, and never
applied `paddingBuilders['hr']`. Skip the default Container when a custom
builder is registered, and wrap the hr child in the configured padding.

Recreated from PR #131 by @joelbrostrom.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bold (strong) spans previously altered the line height of a paragraph
because the rich text used the per-span font metrics. Build a forced
strut height from the paragraph style and pass it to both the
SelectableText.rich and Text.rich constructors so line height stays
consistent regardless of font weight.

Recreated from PR #130 by @szuwest.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
_buildRichText is the generic rich-text builder, also used for headers,
blockquotes and list items. Deriving the strut from styleSheet.p forced
large headers down to the paragraph line height, vertically clipping
them. Build the strut from the span's own base style instead, falling
back to styleSheet.p for size/height when the span omits them. This keeps
headers/blockquotes at their correct height while still keeping line
height consistent across mixed font weights within a block.

Adds a regression test proving a header's strut follows the header size,
not the (smaller) paragraph size.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Recreated from PR #38 by @senlinjun (functional change only; the PR's
whole-file 80-col reformatting was dropped, and the field doc comment
corrected).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…, #42)

Recreated from PR #128 by @vsaase (blockquote inline bold/italic/link
rendering + tests) and PR #42 by @domhel (theme-aware blockquote
decoration); contributor lockfile changes dropped.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…try plugin

The example app pinned Android Gradle Plugin 8.2.1, below Flutter 3.44's
minimum of 8.6.0, which broke `flutter run`/`flutter build apk`. Also removed
the unused com.google.cloud.artifactregistry Gradle plugin, a Google-internal
build dependency not needed for a public example app.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gazreese
gazreese merged commit 97b1824 into main Jul 6, 2026
2 checks passed
@gazreese
gazreese deleted the release/v1.0.8 branch July 6, 2026 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant