Strip trailing newline in markdown code copy (#29019) (#29022)

Behaviour now matches GH. Safeguard added in the for loop because
`textContent` may be null in which case it does not make sense to render
the copy button.

Co-authored-by: silverwind <me@silverwind.io>
(cherry picked from commit 5d1abdce3ea16064fe22e9bdaa436033bdd6698a)
This commit is contained in:
Giteabot 2024-02-02 05:06:21 +08:00 committed by Earl Warren
parent bb5f4fd81b
commit c148156409
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00

View file

@ -12,8 +12,10 @@ export function renderCodeCopy() {
if (!els.length) return; if (!els.length) return;
for (const el of els) { for (const el of els) {
if (!el.textContent) continue;
const btn = makeCodeCopyButton(); const btn = makeCodeCopyButton();
btn.setAttribute('data-clipboard-text', el.textContent); // remove final trailing newline introduced during HTML rendering
btn.setAttribute('data-clipboard-text', el.textContent.replace(/\r?\n$/, ''));
el.after(btn); el.after(btn);
} }
} }