diff --git a/app/assets/javascripts/behaviors/markdown/render_gfm.js b/app/assets/javascripts/behaviors/markdown/render_gfm.js index 60c3f3caf66..c9ae3706383 100644 --- a/app/assets/javascripts/behaviors/markdown/render_gfm.js +++ b/app/assets/javascripts/behaviors/markdown/render_gfm.js @@ -3,7 +3,6 @@ import syntaxHighlight from '~/syntax_highlight'; import highlightCurrentUser from './highlight_current_user'; import { renderKroki } from './render_kroki'; import renderMath from './render_math'; -import renderMermaid from './render_mermaid'; import renderSandboxedMermaid from './render_sandboxed_mermaid'; import renderMetrics from './render_metrics'; @@ -15,11 +14,8 @@ $.fn.renderGFM = function renderGFM() { syntaxHighlight(this.find('.js-syntax-highlight').get()); renderKroki(this.find('.js-render-kroki[hidden]').get()); renderMath(this.find('.js-render-math')); - if (gon.features?.sandboxedMermaid) { - renderSandboxedMermaid(this.find('.js-render-mermaid')); - } else { - renderMermaid(this.find('.js-render-mermaid')); - } + renderSandboxedMermaid(this.find('.js-render-mermaid')); + highlightCurrentUser(this.find('.gfm-project_member').get()); const issuablePopoverElements = this.find('.gfm-issue, .gfm-merge_request').get(); diff --git a/app/assets/javascripts/blob/components/blob_header.vue b/app/assets/javascripts/blob/components/blob_header.vue index f78d921fa90..716321430d2 100644 --- a/app/assets/javascripts/blob/components/blob_header.vue +++ b/app/assets/javascripts/blob/components/blob_header.vue @@ -47,6 +47,11 @@ export default { required: false, default: true, }, + overrideCopy: { + type: Boolean, + required: false, + default: false, + }, }, data() { return { @@ -106,6 +111,7 @@ export default { :environment-name="blob.environmentFormattedExternalUrl" :environment-path="blob.environmentExternalUrlForRouteMap" :is-empty="isEmpty" + :override-copy="overrideCopy" @copy="proxyCopyRequest" /> diff --git a/app/assets/javascripts/blob/components/blob_header_default_actions.vue b/app/assets/javascripts/blob/components/blob_header_default_actions.vue index 61baf4fa495..12a198f78ea 100644 --- a/app/assets/javascripts/blob/components/blob_header_default_actions.vue +++ b/app/assets/javascripts/blob/components/blob_header_default_actions.vue @@ -54,6 +54,11 @@ export default { required: false, default: false, }, + overrideCopy: { + type: Boolean, + required: false, + default: false, + }, }, computed: { downloadUrl() { @@ -63,6 +68,10 @@ export default { return this.activeViewer === RICH_BLOB_VIEWER; }, getBlobHashTarget() { + if (this.overrideCopy) { + return null; + } + return `[data-blob-hash="${this.blobHash}"]`; }, showCopyButton() { @@ -74,6 +83,13 @@ export default { }); }, }, + methods: { + onCopy() { + if (this.overrideCopy) { + this.$emit('copy'); + } + }, + }, BTN_COPY_CONTENTS_TITLE, BTN_DOWNLOAD_TITLE, BTN_RAW_TITLE, @@ -94,6 +110,7 @@ export default { category="primary" variant="default" class="js-copy-blob-source-btn" + @click="onCopy" /> @@ -242,7 +245,9 @@ export default { :active-viewer-type="viewer.type" :has-render-error="hasRenderError" :show-path="false" + :override-copy="glFeatures.highlightJs" @viewer-changed="switchViewer" + @copy="onCopy" >