Skip to content

feat: add MarkdownRenderer component with DOMPurify sanitisation#545

Merged
RUKAYAT-CODER merged 1 commit into
rinafcode:mainfrom
jadonamite:feat/markdown-renderer
May 27, 2026
Merged

feat: add MarkdownRenderer component with DOMPurify sanitisation#545
RUKAYAT-CODER merged 1 commit into
rinafcode:mainfrom
jadonamite:feat/markdown-renderer

Conversation

@jadonamite
Copy link
Copy Markdown
Contributor

Summary

  • Adds src/components/shared/MarkdownRenderer.tsx — a markdownToHtml() pure function and <MarkdownRenderer> React component
  • Supports: H1–H3, bold, italic, inline code, fenced code blocks (with language class), UL/OL, blockquotes, HR, links, images, paragraphs
  • Uses DOMPurify.sanitize() with a strict allowlist — XSS-safe
  • Adds src/components/shared/MarkdownRenderer.test.ts — 23 Vitest tests, all passing

Test plan

  • npx vitest run src/components/shared/MarkdownRenderer.test.ts — 23/23 green
  • XSS tests: <script>, onerror attribute stripped by DOMPurify
  • Fenced code blocks escape HTML entities inside content

Closes #529

Pure-function markdown-to-HTML pipeline covering headings, lists, code
blocks, bold/italic, links, images, blockquotes, and HR. DOMPurify
allowlist ensures XSS safety. 23 Vitest tests, all green.

Closes rinafcode#529
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 27, 2026

@jadonamite Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@RUKAYAT-CODER RUKAYAT-CODER merged commit 78c84c7 into rinafcode:main May 27, 2026
3 of 6 checks passed
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.

test Markdown Renderer : Feature Request

2 participants