Skip to main content

Contributing

Contributions are welcome. The fastest way to help is to open a focused issue or pull request with a clear reproduction, test case, or documentation improvement.

Local Setup

Clone the repository:

git clone https://github.com/samnn152/streaming-markdown.git
cd streaming-markdown

Install package dependencies:

flutter pub get

Install example dependencies when working on the demo app:

cd example
flutter pub get

Repository Layout

  • lib/animated_streaming_markdown.dart: public package entrypoint.
  • lib/src/parser: Markdown parser adapters.
  • lib/src/worker: isolate parser worker API.
  • lib/src/model: public and internal data models.
  • lib/src/render: Flutter renderer, animation, selection, text, and HTML code.
  • lib/src/native: native parser bindings and platform stubs.
  • example: Flutter example app and demo content.
  • test: renderer, selection, animation, and parser regression tests.
  • docs: Docs.page documentation site.
  • doc: package reference markdown used from README and migration links.

Quality Gates

Run these before opening a pull request:

dart format .
dart analyze
flutter test

For release checks:

flutter pub publish --dry-run

Pull Request Scope

Keep pull requests focused. Parser changes, renderer behavior changes, selection copy changes, and docs changes are easier to review when they are not mixed together.

Behavior changes should include tests. Visual renderer changes should include golden updates when they intentionally affect output.