From e3cf3601540b721b9a564ad0320ca4021a75c8eb Mon Sep 17 00:00:00 2001 From: shafi-VM Date: Sun, 1 Mar 2026 14:41:25 +0530 Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=9CCopy=20Source=E2=80=9D=20to=20ma?= =?UTF-8?q?rkup=20comment=20menu=20(#36726)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Any user with **read access** to a comment can now copy its raw markdown source via the `···` context menu — no edit permission required. Closes #36722. --------- Signed-off-by: silverwind Co-authored-by: wxiaoguang Co-authored-by: silverwind Co-authored-by: Claude Opus 4.6 --- options/locale/locale_en-US.json | 1 + templates/repo/diff/comments.tmpl | 2 +- templates/repo/issue/view_content.tmpl | 2 +- templates/repo/issue/view_content/comments.tmpl | 4 ++-- .../repo/issue/view_content/context_menu.tmpl | 1 + .../repo/issue/view_content/conversation.tmpl | 2 +- web_src/js/features/clipboard.ts | 14 +++++++++++--- web_src/js/modules/tippy.ts | 9 +++++++++ 8 files changed, 27 insertions(+), 8 deletions(-) diff --git a/options/locale/locale_en-US.json b/options/locale/locale_en-US.json index 8f7a050b16..0f27c8d82d 100644 --- a/options/locale/locale_en-US.json +++ b/options/locale/locale_en-US.json @@ -1519,6 +1519,7 @@ "repo.issues.commented_at": "commented %s", "repo.issues.delete_comment_confirm": "Are you sure you want to delete this comment?", "repo.issues.context.copy_link": "Copy Link", + "repo.issues.context.copy_source": "Copy Source", "repo.issues.context.quote_reply": "Quote Reply", "repo.issues.context.reference_issue": "Reference in New Issue", "repo.issues.context.edit": "Edit", diff --git a/templates/repo/diff/comments.tmpl b/templates/repo/diff/comments.tmpl index f1907b7ff1..546a0229a7 100644 --- a/templates/repo/diff/comments.tmpl +++ b/templates/repo/diff/comments.tmpl @@ -64,7 +64,7 @@ {{ctx.Locale.Tr "repo.issues.no_content"}} {{end}} -
{{.Content}}
+
{{.Content}}
{{if .Attachments}} {{template "repo/issue/view_content/attachments" dict "Attachments" .Attachments "RenderedContent" .RenderedContent}} diff --git a/templates/repo/issue/view_content.tmpl b/templates/repo/issue/view_content.tmpl index 13e007ad95..047a9ac125 100644 --- a/templates/repo/issue/view_content.tmpl +++ b/templates/repo/issue/view_content.tmpl @@ -52,7 +52,7 @@ {{ctx.Locale.Tr "repo.issues.no_content"}} {{end}} -
{{.Issue.Content}}
+
{{.Issue.Content}}
{{if .Issue.Attachments}} {{template "repo/issue/view_content/attachments" dict "Attachments" .Issue.Attachments "RenderedContent" .Issue.RenderedContent}} diff --git a/templates/repo/issue/view_content/comments.tmpl b/templates/repo/issue/view_content/comments.tmpl index a019c4bf3d..39fd822098 100644 --- a/templates/repo/issue/view_content/comments.tmpl +++ b/templates/repo/issue/view_content/comments.tmpl @@ -67,7 +67,7 @@ {{ctx.Locale.Tr "repo.issues.no_content"}} {{end}} -
{{.Content}}
+
{{.Content}}
{{if .Attachments}} {{template "repo/issue/view_content/attachments" dict "Attachments" .Attachments "RenderedContent" .RenderedContent}} @@ -432,7 +432,7 @@ {{ctx.Locale.Tr "repo.issues.no_content"}} {{end}} -
{{.Content}}
+
{{.Content}}
{{if .Attachments}} {{template "repo/issue/view_content/attachments" dict "Attachments" .Attachments "RenderedContent" .RenderedContent}} diff --git a/templates/repo/issue/view_content/context_menu.tmpl b/templates/repo/issue/view_content/context_menu.tmpl index 749a2fa0dd..e28d20a271 100644 --- a/templates/repo/issue/view_content/context_menu.tmpl +++ b/templates/repo/issue/view_content/context_menu.tmpl @@ -10,6 +10,7 @@ {{$referenceUrl = printf "%s/files#%s" ctx.RootData.Issue.Link .item.HashTag}} {{end}}
{{ctx.Locale.Tr "repo.issues.context.copy_link"}}
+
{{ctx.Locale.Tr "repo.issues.context.copy_source"}}
{{if ctx.RootData.IsSigned}} {{$needDivider := false}} {{if not ctx.RootData.Repository.IsArchived}} diff --git a/templates/repo/issue/view_content/conversation.tmpl b/templates/repo/issue/view_content/conversation.tmpl index dd515933db..333d120fde 100644 --- a/templates/repo/issue/view_content/conversation.tmpl +++ b/templates/repo/issue/view_content/conversation.tmpl @@ -100,7 +100,7 @@ The variables in "ctx.Data" are different in each case, making this template fra {{ctx.Locale.Tr "repo.issues.no_content"}} {{end}} -
{{.Content}}
+
{{.Content}}
{{if .Attachments}} {{template "repo/issue/view_content/attachments" dict "Attachments" .Attachments "RenderedContent" .RenderedContent}} diff --git a/web_src/js/features/clipboard.ts b/web_src/js/features/clipboard.ts index d5e3b55f95..8dbaab62aa 100644 --- a/web_src/js/features/clipboard.ts +++ b/web_src/js/features/clipboard.ts @@ -6,7 +6,7 @@ const {copy_success, copy_error} = window.config.i18n; // Enable clipboard copy from HTML attributes. These properties are supported: // - data-clipboard-text: Direct text to copy -// - data-clipboard-target: Holds a selector for a or