Skip to content

[ENHANCEMENT] Add GitHub-style Markdown alert rendering #12267

@melck

Description

@melck

Problem (one or two sentences)

Roo Code currently renders GitHub-style Markdown alerts as regular blockquotes instead of visually distinct alert blocks.

This makes generated documentation, task summaries, READMEs, issue content, and other GitHub-flavored Markdown harder to read when they use alert syntax such as [!NOTE], [!TIP], [!WARNING], or [!CAUTION].

Context (who is affected and when)

This affects users who write, review, paste, or generate Markdown content in Roo Code, especially when working with GitHub-oriented documentation, READMEs, issue content, changelogs, or task summaries.

It happens whenever rendered Markdown contains GitHub-style alert syntax, for example:

Note

This is useful information users should know.

Warning

This is important and needs attention.

Today these alerts are displayed as normal blockquotes, so their semantic meaning and visual priority are lost.

Desired behavior (conceptual, not technical)

Roo Code should recognize and render GitHub-style Markdown alerts as visually distinct alert blocks in Markdown-rendered surfaces.

The following alert types should be supported:

  • NOTE
  • TIP
  • IMPORTANT
  • WARNING
  • CAUTION

For example, this Markdown:

Note

This is useful information.

should render as a dedicated “Note” alert block instead of a plain blockquote.

Likewise:

Warning

Be careful before running this command.

should render as a warning alert block with styling that clearly distinguishes it from normal text and normal blockquotes.

Constraints / preferences (optional)

The implementation should stay aligned with the existing Markdown rendering approach in webview-ui/src/components/common/MarkdownBlock.tsx.

Roo Code already uses react-markdown with remarkPlugins, so a compatible remark plugin for GitHub-style alerts would be preferred if one is available and maintained.

The styling should use VS Code theme variables where possible so alerts remain readable in light, dark, and high-contrast themes.

Alert rendering should remain accessible and should not interfere with copying, selecting, or editing the original Markdown source.

Unsupported or malformed alert syntax should gracefully fall back to normal Markdown rendering.

Normal blockquotes that do not start with a supported alert marker should continue to render exactly as they do today.

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear context and impact

Roo Code Task Links (optional)

Given Markdown content containing a supported GitHub-style alert such as:

Note

This is a note.

When the content is rendered by Roo Code
Then it is displayed as a visually distinct alert block labeled “Note”

And the following alert types are supported:

  • NOTE
  • TIP
  • IMPORTANT
  • WARNING
  • CAUTION

And alert rendering works for multi-line alert content

And alert rendering works when the alert contains common Markdown content, including:

  • links
  • inline code
  • lists
  • bold and italic text
  • fenced code blocks where supported by the existing Markdown renderer

And alert blocks are readable in light, dark, and high-contrast VS Code themes

And normal blockquotes that do not begin with a supported alert marker continue to render as normal blockquotes

And unsupported or malformed alert markers do not break Markdown rendering and fall back gracefully

And the original Markdown remains editable as normal Markdown source

Acceptance criteria (optional)

Given Markdown content containing a supported GitHub-style alert such as:

Note

This is a note.

When the content is rendered by Roo Code
Then it is displayed as a visually distinct alert block labeled “Note”

And the following alert types are supported:

  • NOTE
  • TIP
  • IMPORTANT
  • WARNING
  • CAUTION

And alert rendering works for multi-line alert content

And alert rendering works when the alert contains common Markdown content, including:

  • links
  • inline code
  • lists
  • bold and italic text
  • fenced code blocks where supported by the existing Markdown renderer

And alert blocks are readable in light, dark, and high-contrast VS Code themes

And normal blockquotes that do not begin with a supported alert marker continue to render as normal blockquotes

And unsupported or malformed alert markers do not break Markdown rendering and fall back gracefully

And the original Markdown remains editable as normal Markdown source

Proposed approach (optional)

Roo Code already renders Markdown through webview-ui/src/components/common/MarkdownBlock.tsx, using react-markdown with remark-gfm, remark-math, and rehype-katex.

Since the renderer already supports remarkPlugins, GitHub-style Markdown alerts could likely be added by introducing a compatible remark plugin for alerts, then styling the generated alert nodes/classes with VS Code theme variables.

If no suitable maintained plugin is available, the same behavior could be implemented as a small local remark plugin that detects blockquotes starting with [!NOTE], [!TIP], [!IMPORTANT], [!WARNING], or [!CAUTION] and annotates them for custom rendering.

This should keep the feature scoped to the existing Markdown rendering pipeline and avoid changing normal blockquote behavior.

Trade-offs / risks (optional)

The main risk is diverging from GitHub’s Markdown alert behavior if the feature is implemented manually rather than through a well-maintained remark plugin.

A plugin-based implementation should be checked for compatibility with the current Roo Code stack, especially react-markdown v9, ESM, and the existing remark/rehype pipeline.

Another consideration is styling: alert colors and contrast need to work across VS Code light, dark, and high-contrast themes.

Care should be taken not to enable unsafe raw HTML rendering just to support alerts. The implementation should avoid requiring rehype-raw unless there is a clear security review.

The change should also avoid altering the rendering of regular blockquotes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementNew feature or requestUI/UXUI/UX related or focused

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions