From b0f94a31e1e320c70df1c1c7ad18ef48d170327f Mon Sep 17 00:00:00 2001 From: Bob Pupazzoni Date: Sat, 29 Jun 2024 20:16:24 -0400 Subject: [PATCH] Add prism plugin for code copy button --- background/inject.js | 7 ++++--- build/prism/build.sh | 14 ++++++++++++++ manifest.chrome.json | 3 ++- manifest.firefox.json | 3 ++- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/background/inject.js b/background/inject.js index da617b3..4f5d779 100644 --- a/background/inject.js +++ b/background/inject.js @@ -1,4 +1,3 @@ - md.inject = ({storage: {state}}) => (id) => { chrome.scripting.executeScript({ @@ -24,14 +23,16 @@ md.inject = ({storage: {state}}) => (id) => { files: [ '/content/index.css', '/content/themes.css', - ] + state.content.syntax && '/vendor/prism-toolbar.min.css' + ].filter(Boolean).flat() }) chrome.scripting.executeScript({ target: {tabId: id}, files: [ '/vendor/mithril.min.js', - state.content.syntax && ['/vendor/prism.min.js', '/vendor/prism-autoloader.min.js', '/content/prism.js'], + state.content.syntax && ['/vendor/prism.min.js', '/vendor/prism-autoloader.min.js', + 'vendor/prism-toolbar.min.js', 'vendor/prism-copy-to-clipboard.min.js', '/content/prism.js'], state.content.emoji && '/content/emoji.js', state.content.mermaid && ['/vendor/mermaid.min.js', '/vendor/panzoom.min.js', '/content/mermaid.js'], state.content.mathjax && ['/content/mathjax.js', '/vendor/mathjax/tex-mml-chtml.js'], diff --git a/build/prism/build.sh b/build/prism/build.sh index 371c28d..e28ffb3 100755 --- a/build/prism/build.sh +++ b/build/prism/build.sh @@ -18,6 +18,12 @@ node fix-autoloader.js \ tmp/prism-autoloader.js npx terser --compress --mangle -- tmp/prism-autoloader.js > tmp/prism-autoloader.min.js +# prism-toolbar.min.js +cp node_modules/prismjs/plugins/toolbar/prism-toolbar.min.js tmp/prism-toolbar.min.js + +# prism-copy-to-clipboard.min.js +cp node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js tmp/prism-copy-to-clipboard.min.js + # prism.min.css # prism-okaidia.min.css npx csso --input node_modules/prismjs/themes/prism.css --output tmp/prism.min.css @@ -26,11 +32,19 @@ node fix-themes.js \ tmp/prism.min.css \ tmp/prism-okaidia.min.css +# prism-toolbar.min.css +cp node_modules/prismjs/plugins/toolbar/prism-toolbar.min.css tmp/prism-toolbar.min.css + # copy cp tmp/prism.min.js ../../vendor/ cp tmp/prism-autoloader.min.js ../../vendor/ cp tmp/prism.min.css ../../vendor/ cp tmp/prism-okaidia.min.css ../../vendor/ + +cp tmp/prism-toolbar.min.js ../../vendor +cp tmp/prism-toolbar.min.css ../../vendor +cp tmp/prism-copy-to-clipboard.min.js ../../vendor + # languages mkdir -p ../../vendor/prism/ cp node_modules/prismjs/components/prism-*.min.js ../../vendor/prism/ diff --git a/manifest.chrome.json b/manifest.chrome.json index 7f52256..bb47b49 100644 --- a/manifest.chrome.json +++ b/manifest.chrome.json @@ -45,7 +45,8 @@ "/themes/*", "/vendor/mathjax/fonts/*", "/vendor/prism.min.css", - "/vendor/prism-okaidia.min.css" + "/vendor/prism-okaidia.min.css", + "/vendor/prism-toolbar.min.css" ] } ], diff --git a/manifest.firefox.json b/manifest.firefox.json index 8a0a721..7a753dd 100644 --- a/manifest.firefox.json +++ b/manifest.firefox.json @@ -67,7 +67,8 @@ "/themes/*", "/vendor/mathjax/fonts/*", "/vendor/prism.min.css", - "/vendor/prism-okaidia.min.css" + "/vendor/prism-okaidia.min.css", + "/vendor/prism-toolbar.min.css" ] } ],