feat(markdown): add copy-to-clipboard button to code blocks in markdown #4751
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
π‘ Feature: "Copy to Clipboard" Button for Code Blocks
β¨ Description
This feature adds a "Copy to Clipboard" button to every code block rendered from Markdown. It allows users to easily copy code examples β especially useful when working with API usage snippets or tutorials.
π§ Implementation
markdown-it
renderer to wrap fenced code blocks in adiv.code-block-wrapper
and attach adata-copy
attribute containing the encoded code content.useEffect
to dynamically mount a<CopyToClipboard>
React component into a placeholder within each code block after rendering.react-copy-to-clipboard
with visual feedback usingreact-hot-toast
.StyledWrapper.js
:<pre>
blocks to make room for the buttonπ Preview
π§ͺ Testing
Manually tested with Markdown files containing fenced code blocks (e.g., ```js) to ensure the button:
π Files Changed
packages/bruno-app/src/components/MarkDown/index.jsx
packages/bruno-app/src/components/MarkDown/StyledWrapper.js
π§ Branch Name
feature/copy-code-button