Default components / Structure

Paragraph break

Normalizes a run of blank lines into the paragraph spacing used by the renderer.

NewLinesblock component

What it renders

Live Flutter preview

Starting the Flutter widget

Rendering this component with gpt_markdown…

This is the real GptMarkdown Flutter widget, rendered with the exact Markdown input shown here.

Markdown input

input.md
1First paragraph. 2 3 4 5Second paragraph.

Default behavior

Runtime behavior

Two or more line breaks are reduced to exactly two before the rest of the Markdown is parsed.

Accessibility note

Paragraph separation remains semantic text flow rather than an empty decorative widget.

Theming & styling

Theme layering guide

No dedicated style object

This built-in is an inline or structural text transformation. It inherits the surrounding text style; replace its syntax only when that behavior itself must change.

App-wide or scoped theme

theme.dart
1// This component has no dedicated style object. 2// It inherits the text style of the surrounding GptMarkdown widget. 3GptMarkdown( 4 markdown, 5 style: Theme.of(context).textTheme.bodyMedium, 6)

Builders & callbacks

This component has no component-specific builder or callback. Its appearance follows the surrounding text and theme, keeping the default parser behavior intact.
Full builder and callback signatures

Safely override the default

A custom component list replaces a default list entirely. Put your matching component first, then append the package defaults so every other Markdown feature continues to render.

keep_defaults.dart
1// Passing components replaces its defaults. Prepend to override matching syntax, 2// then keep every built-in component after it. 3GptMarkdown( 4 markdown, 5 components: [ 6 MyNewLinesOverride(), 7 ...MarkdownComponent.globalComponents, 8 ], 9)
Custom component guide

Related components