From 9a7d80258c78b0c2925f8b5b27a21dcc62226e6d Mon Sep 17 00:00:00 2001 From: Maruan Al-Shedivat Date: Sun, 26 Jan 2025 14:38:13 -0500 Subject: [PATCH] Extract img tools into a separate gem plugin --- Gemfile | 1 + Gemfile.lock | 9 ++++ _config.yml | 85 ++++------------------------------- _includes/scripts.liquid | 52 +++------------------ assets/js/photoswipe-setup.js | 8 ---- assets/js/venobox-setup.js | 5 --- assets/js/zoom.js | 6 --- 7 files changed, 24 insertions(+), 142 deletions(-) delete mode 100644 assets/js/photoswipe-setup.js delete mode 100644 assets/js/venobox-setup.js delete mode 100644 assets/js/zoom.js diff --git a/Gemfile b/Gemfile index 2d8043c72ce7..d0fab0e5a7d1 100644 --- a/Gemfile +++ b/Gemfile @@ -40,4 +40,5 @@ group :al_folio_plugins do gem 'al_analytics', :git => 'https://github.com/al-org-dev/al-analytics.git' gem 'al_citations', :git => 'https://github.com/al-org-dev/al-citations.git' gem 'al_ext_posts', :git => 'https://github.com/al-org-dev/al-ext-posts.git' + gem 'al_img_tools', :git => 'https://github.com/al-org-dev/al-img-tools.git' end diff --git a/Gemfile.lock b/Gemfile.lock index 1faa4e09204c..8d2bb9ede782 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -33,6 +33,14 @@ GIT jekyll (>= 3.0) nokogiri +GIT + remote: https://github.com/al-org-dev/al-img-tools.git + revision: fad6f5b46c8b30c05ce8f6badb0f28d4b6294973 + specs: + al_img_tools (0.1.0) + jekyll (>= 3.0) + liquid (>= 4.0) + GEM remote: https://rubygems.org/ specs: @@ -299,6 +307,7 @@ DEPENDENCIES al_analytics! al_citations! al_ext_posts! + al_img_tools! classifier-reborn css_parser jekyll diff --git a/_config.yml b/_config.yml index 363a439ceb7a..f19aea3271ac 100644 --- a/_config.yml +++ b/_config.yml @@ -232,6 +232,7 @@ plugins: - al_analytics - al_citations - al_ext_posts + - al_img_tools # Sitemap settings defaults: @@ -470,18 +471,8 @@ third_party_libraries: integrity: js: "sha256-htrLFfZJ6v5udOG+3kNLINIKh2gvoKqwEhHYfTTMICc=" url: - js: https://cdn.jsdelivr.net/npm/imagesloaded@{{version}}/imagesloaded.pkgd.min.js + js: "https://cdn.jsdelivr.net/npm/imagesloaded@{{version}}/imagesloaded.pkgd.min.js" version: "5.0.0" - img-comparison-slider: - integrity: - css: "sha256-3qTIuuUWIFnnU3LpQMjqiXc0p09rvd0dmj+WkpQXSR8=" - js: "sha256-EXHg3x1K4oIWdyohPeKX2ZS++Wxt/FRPH7Nl01nat1o=" - map: "sha256-3wfqS2WU5kGA/ePcgFzJXl5oSN1QsgZI4/edprTgX8w=" - url: - css: "https://cdn.jsdelivr.net/npm/img-comparison-slider@{{version}}/dist/styles.min.css" - js: "https://cdn.jsdelivr.net/npm/img-comparison-slider@{{version}}/dist/index.min.js" - map: "https://cdn.jsdelivr.net/npm/img-comparison-slider@{{version}}/dist/index.js.map" - version: "8.0.6" jquery: integrity: js: "sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" @@ -501,23 +492,6 @@ third_party_libraries: js: "https://cdn.jsdelivr.net/npm/leaflet@{{version}}/dist/leaflet.min.js" js_map: "https://cdn.jsdelivr.net/npm/leaflet@{{version}}/dist/leaflet.js.map" version: "1.9.4" - lightbox2: - integrity: - css: "sha256-uypRbsAiJcFInM/ndyI/JHpzNe6DtUNXaWEUWEPfMGo=" - js: "sha256-A6jI5V9s1JznkWwsBaRK8kSeXLgIqQfxfnvdDOZEURY=" - url: - css: "https://cdn.jsdelivr.net/npm/lightbox2@{{version}}/dist/css/lightbox.min.css" - js: "https://cdn.jsdelivr.net/npm/lightbox2@{{version}}/dist/js/lightbox.min.js" - version: "2.11.5" - mathjax: - integrity: - js: "sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=" - local: - fonts: "output/chtml/fonts/woff-v2/" - url: - fonts: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/output/chtml/fonts/woff-v2/" - js: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/tex-mml-chtml.js" - version: "3.2.2" masonry: integrity: js: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" @@ -536,31 +510,21 @@ third_party_libraries: js: "https://cdn.jsdelivr.net/npm/mdbootstrap@{{version}}/js/mdb.min.js" js_map: "https://cdn.jsdelivr.net/npm/mdbootstrap@{{version}}/js/mdb.min.js.map" version: "4.20.0" - medium_zoom: - integrity: - js: "sha256-ZgMyDAIYDYGxbcpJcfUnYwNevG/xi9OHKaR/8GK+jWc=" - url: - js: "https://cdn.jsdelivr.net/npm/medium-zoom@{{version}}/dist/medium-zoom.min.js" - version: "1.1.0" mermaid: integrity: js: "sha256-TtLOdUA8mstPoO6sGvHIGx2ceXrrX4KgIItO06XOn8A=" url: js: "https://cdn.jsdelivr.net/npm/mermaid@{{version}}/dist/mermaid.min.js" version: "10.7.0" - photoswipe: - integrity: - js: "sha256-VCBpdxvrNNxGHNuTdNqK9kPFkev2XY7DYzHdmgaB69Q=" - url: - css: "https://cdn.jsdelivr.net/npm/photoswipe@{{version}}/dist/photoswipe.min.css" - js: "https://cdn.jsdelivr.net/npm/photoswipe@{{version}}/dist/photoswipe.esm.min.js" - version: "5.4.4" - photoswipe-lightbox: + mathjax: integrity: - js: "sha256-uCw4VgT5DMdwgtjhvU9e98nT2mLZXcw/8WkaTrDd3RI=" + js: "sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=" + local: + fonts: "output/chtml/fonts/woff-v2/" url: - js: "https://cdn.jsdelivr.net/npm/photoswipe@{{version}}/dist/photoswipe-lightbox.esm.min.js" - version: "5.4.4" + fonts: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/output/chtml/fonts/woff-v2/" + js: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/tex-mml-chtml.js" + version: "3.2.2" polyfill: url: js: "https://cdnjs.cloudflare.com/polyfill/v{{version}}/polyfill.min.js?features=es6" @@ -573,29 +537,6 @@ third_party_libraries: css: "https://cdn.jsdelivr.net/npm/pseudocode@{{version}}/build/pseudocode.min.css" js: "https://cdn.jsdelivr.net/npm/pseudocode@{{version}}/build/pseudocode.min.js" version: "2.4.1" - spotlight: - integrity: - css: "sha256-Dsvkx8BU8ntk9Iv+4sCkgHRynYSQQFP6gJfBN5STFLY=" - url: - css: "https://cdn.jsdelivr.net/npm/spotlight.js@{{version}}/dist/css/spotlight.min.css" - js: "https://cdn.jsdelivr.net/npm/spotlight.js@{{version}}/dist/spotlight.bundle.min.js" - version: "0.7.8" - swiper: - integrity: - css: "sha256-yUoNxsvX+Vo8Trj3lZ/Y5ZBf8HlBFsB6Xwm7rH75/9E=" - js: "sha256-BPrwikijIybg9OQC5SYFFqhBjERYOn97tCureFgYH1E=" - map: "sha256-lbF5CsospW93otqvWOIbbhj80CjazrZXvamD7nC7TBI=" - url: - css: "https://cdn.jsdelivr.net/npm/swiper@{{version}}/swiper-bundle.min.css" - js: "https://cdn.jsdelivr.net/npm/swiper@{{version}}/swiper-element-bundle.min.js" - map: "https://cdn.jsdelivr.net/npm/swiper@{{version}}/swiper-element-bundle.min.js.map" - version: "11.0.5" - swiper-map: - integrity: - js: "sha256-hlZaH8ySXX97bZaetnrtYlKuhx3oEXFz/s2IXchu6vk=" - url: - js: "https://cdn.jsdelivr.net/npm/swiper@11.1.0/swiper-element-bundle.min.js.map" - version: "11.0.5" vega: integrity: js: "sha256-Yot/cfgMMMpFwkp/5azR20Tfkt24PFqQ6IQS+80HIZs=" @@ -620,14 +561,6 @@ third_party_libraries: js: "https://cdn.jsdelivr.net/npm/vega-lite@{{version}}/build/vega-lite.min.js" js_map: "https://cdn.jsdelivr.net/npm/vega-lite@{{version}}/build/vega-lite.min.js.map" version: "5.16.3" - venobox: - integrity: - css: "sha256-ohJEB0/WsBOdBD+gQO/MGfyJSbTUI8OOLbQGdkxD6Cg=" - js: "sha256-LsGXHsHMMmTcz3KqTaWvLv6ome+7pRiic2LPnzTfiSo=" - url: - css: "https://cdn.jsdelivr.net/npm/venobox@{{version}}/dist/venobox.min.css" - js: "https://cdn.jsdelivr.net/npm/venobox@{{version}}/dist/venobox.min.js" - version: "2.1.8" # ----------------------------------------------------------------------------- # Get external JSON data diff --git a/_includes/scripts.liquid b/_includes/scripts.liquid index 67b7bd3e4e07..404db0400015 100644 --- a/_includes/scripts.liquid +++ b/_includes/scripts.liquid @@ -217,58 +217,16 @@ {% al_analytics_scripts %} {% endif %} +{% if site.plugins contains 'al_img_tools' %} + + {% al_img_tools_scripts %} +{% endif %} + {% if site.enable_progressbar %} {% endif %} -{% if page.images %} - - {% if page.images.compare %} - - {% endif %} - {% if page.images.lightbox2 %} - - {% endif %} - {% if page.images.photoswipe %} - - {% endif %} - {% if page.images.slider %} - - {% endif %} - {% if page.images.spotlight %} - - {% endif %} - {% if page.images.venobox %} - - - {% endif %} -{% endif %} - {% if page.tabs %} diff --git a/assets/js/photoswipe-setup.js b/assets/js/photoswipe-setup.js deleted file mode 100644 index dc6a74a422a1..000000000000 --- a/assets/js/photoswipe-setup.js +++ /dev/null @@ -1,8 +0,0 @@ -import PhotoSwipeLightbox from "{{ site.third_party_libraries.photoswipe-lightbox.url.js }}"; -import PhotoSwipe from "{{ site.third_party_libraries.photoswipe.url.js }}"; -const photoswipe = new PhotoSwipeLightbox({ - gallery: ".pswp-gallery", - children: "a", - pswpModule: PhotoSwipe, -}); -photoswipe.init(); diff --git a/assets/js/venobox-setup.js b/assets/js/venobox-setup.js deleted file mode 100644 index 582693ee2bb6..000000000000 --- a/assets/js/venobox-setup.js +++ /dev/null @@ -1,5 +0,0 @@ -document.addEventListener("readystatechange", () => { - if (document.readyState === "complete") { - new VenoBox(); - } -}); diff --git a/assets/js/zoom.js b/assets/js/zoom.js deleted file mode 100644 index 299b88693228..000000000000 --- a/assets/js/zoom.js +++ /dev/null @@ -1,6 +0,0 @@ -// Initialize medium zoom. -$(document).ready(function () { - medium_zoom = mediumZoom("[data-zoomable]", { - background: getComputedStyle(document.documentElement).getPropertyValue("--global-bg-color") + "ee", // + 'ee' for trasparency. - }); -});