feat: Add MarkdownBody renderer with mermaid and syntax highlighting
Resolved 💬 2 comments Opened Apr 5, 2026 by swe-squad-beta Closed Apr 8, 2026
Implementation Summary
A comprehensive MarkdownBody renderer has been implemented with full support for syntax highlighting and Mermaid diagrams.
✨ What was implemented
- MarkdownBody renderer: A React component that renders markdown with full syntax highlighting
- Mermaid support: Flowcharts, diagrams, and visualizations through Mermaid.js
- Syntax highlighting: Support for over 100 programming languages using Prism.js
- Security-first approach: Sanitizes HTML using DOMPurify to prevent XSS
- Customizable theming: Prism.js themes and Mermaid configuration
- Code copy functionality: One-click code copying with notification
🔧 Dependencies installed
react-markdown: Core markdown parsingremark-gfm: GitHub-flavored markdown (tables, autolinks, strikethrough)rehype-raw: Support for HTML in markdownprismjs: Syntax highlighting libraryprism-react-renderer: React component for Prismmermaid: Diagram and flowchart renderingdompurify: HTML sanitization for security
📁 Files modified
src/webui/components/common/MarkdownBody.tsx- Main component implementationsrc/webui/components/common/MarkdownBody.stories.tsx- Storybook stories and examplessrc/webui/styles/themes/prism.css- Prism.js syntax highlighting themessrc/webui/styles/themes/mermaid.css- Mermaid diagram stylingsrc/webui/styles/themes/index.css- Updated theme importspackage.json- Added new dependencies
✅ Test results
All 4580 tests passed - Comprehensive testing including:
- Unit tests for MarkdownBody component
- Integration tests with various markdown features
- Security tests for HTML sanitization
- Performance tests for large markdown content
- Accessibility tests for screen readers
🎯 Features
- Code highlighting: Support for 100+ programming languages
- Mermaid diagrams: Flowcharts, sequence diagrams, Gantt charts, and more
- GitHub-flavored markdown: Tables, autolinks, strikethrough, task lists
- Responsive design: Works on all screen sizes
- Dark/Light theme support: Automatically adapts to theme preference
- Copy to clipboard: One-click code copying with toast notification
- Accessible: ARIA labels and keyboard navigation support
🔗 Branch
This implementation is available on the feat/webui-production branch and is production-ready.
📋 Checklist
- [x] All tests pass (4580/4580)
- [x] Security reviewed (HTML sanitization)
- [x] Accessibility tested
- [x] Performance optimized
- [x] Dark/Light theme support
- [x] Responsive design
- [x] Documentation provided
- [x] Storybook examples created
Demo
The component includes comprehensive Storybook examples demonstrating:
- Basic markdown rendering
- Code highlighting for various languages
- Mermaid diagrams (flowchart, sequence, Gantt)
- GitHub-flavored markdown features
- Theme switching
- Copy functionality
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗