feat(frontend): add copy button to rendered code blocks#271
Open
Arvuno wants to merge 1 commit into
Open
Conversation
Long-standing request from issue enchant97#170. Each fenced code block in the rendered note view now has a 'Copy' button in the top-right that copies the code text to the clipboard via the Clipboard API. The button fades in on hover or focus and shows a 'Copied!' indicator for ~1.5s after a successful copy. The injection is idempotent (guarded by a data attribute) and runs inside the existing render effect, so it tracks the existing content re-renders without re-attaching to stale nodes. No new runtime dependencies; the styling reuses existing Tailwind and DaisyUI tokens.
Owner
|
Hi, haven't had time to look at your contribution, however I just released V1 so your PR will need updating. Please also see the new contributing guide/rules. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Testing
pnpm installandpnpm run wasm(requires Rust + Node 24).pnpm run dev, open any note with a fenced code block, hover the block, click the button, paste to verify.Notes
data-copy-button-attachedattribute) and runs inside the existing render effect, so it tracks re-renders without re-attaching to stale nodes.document.execCommand('copy')fallback can be a follow-up.