From 544684669e0301f4c636bc38f6c52bf826132767 Mon Sep 17 00:00:00 2001 From: ArenaDruid <95113209+ArenaDruid@users.noreply.github.com> Date: Wed, 5 Feb 2025 01:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=85=A8=E5=8E=BB=E9=99=A4lightbox?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 41 ++++++++------ package.json | 1 - quartz.config.ts | 7 +-- quartz/plugins/transformers/index.ts | 1 - quartz/plugins/transformers/lightbox.ts | 75 ------------------------- 5 files changed, 25 insertions(+), 100 deletions(-) delete mode 100644 quartz/plugins/transformers/lightbox.ts diff --git a/package-lock.json b/package-lock.json index 14646da02..b4b290fdb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,6 @@ "to-vfile": "^8.0.0", "toml": "^3.0.0", "unified": "^11.0.5", - "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", "workerpool": "^9.2.0", "ws": "^8.18.0", @@ -2102,11 +2101,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -2407,9 +2407,10 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3209,9 +3210,10 @@ "license": "MIT" }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3958,6 +3960,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -4057,9 +4060,9 @@ } }, "node_modules/katex": { - "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", + "version": "0.16.21", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", + "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -5303,11 +5306,12 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -7082,6 +7086,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, diff --git a/package.json b/package.json index 56cfb8d0e..c6c76c535 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,6 @@ "to-vfile": "^8.0.0", "toml": "^3.0.0", "unified": "^11.0.5", - "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", "workerpool": "^9.2.0", "ws": "^8.18.0", diff --git a/quartz.config.ts b/quartz.config.ts index 144ac41d3..10bd1da99 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -19,7 +19,7 @@ const config: QuartzConfig = { defaultDateType: "created", generateSocialImages: { colorScheme: "darkMode", - socialImage: "cover.png", + //image: "cover.png", }, theme: { fontOrigin: "googleFonts", @@ -75,11 +75,8 @@ const config: QuartzConfig = { Plugin.Description(), Plugin.Latex({ renderEngine: "katex" }), // Adds image caption support. Syntax: - // ```md - // ![alt text](image.jpg) - // *caption text* - // ``` Plugin.FigureCaptions(), + // 启动中文斜体转楷体插件 Plugin.ChineseItalic(), // Adds image lightbox support //Plugin.Lightbox(), diff --git a/quartz/plugins/transformers/index.ts b/quartz/plugins/transformers/index.ts index 66a7d8836..d389d1952 100644 --- a/quartz/plugins/transformers/index.ts +++ b/quartz/plugins/transformers/index.ts @@ -12,5 +12,4 @@ export { TableOfContents } from "./toc" export { HardLineBreaks } from "./linebreaks" export { RoamFlavoredMarkdown } from "./roam" export { FigureCaptions } from "./figcaptions" -export { Lightbox } from "./lightbox" export { ChineseItalic } from "./chinese-italic" diff --git a/quartz/plugins/transformers/lightbox.ts b/quartz/plugins/transformers/lightbox.ts deleted file mode 100644 index 2e35fe643..000000000 --- a/quartz/plugins/transformers/lightbox.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { QuartzTransformerPlugin } from "../types" -import { visit } from "unist-util-visit" -import { Root } from "hast" - -// Options supported here should be in sync with what GLightbox supports: -// https://github.com/biati-digital/glightbox -interface Options { - /** Name of the effect on lightbox open. */ - openEffect: "zoom" | "fade" | "none" - /** Name of the effect on lightbox close. */ - closeEffect: "zoom" | "fade" | "none" - /** Name of the effect on slide change. */ - slideEffect: "slide" | "zoom" | "fade" | "none" - /** Show or hide the close button. */ - closeButton: boolean -} - -const defaultOptions: Options = { - openEffect: "zoom", - closeEffect: "zoom", - slideEffect: "slide", - closeButton: true, -} - -export const Lightbox: QuartzTransformerPlugin> = (userOpts) => { - const opts = { ...defaultOptions, ...userOpts } - return { - name: "Lightbox", - htmlPlugins(ctx) { - return [ - () => { - return (tree: Root, file) => { - visit(tree, "element", (node, _index, _parent) => { - if ( - node.tagName === "img" && - node.properties && - typeof node.properties.src === "string" - ) { - // Add Image Lightbox support - const classes = (node.properties.className ?? []) as string[] - classes.push("glightbox") - - node.properties.className = classes - } - }) - } - }, - ] - }, - externalResources() { - return { - css: ["https://cdnjs.cloudflare.com/ajax/libs/glightbox/3.3.0/css/glightbox.min.css"], - js: [ - { - src: "https://cdnjs.cloudflare.com/ajax/libs/glightbox/3.3.0/js/glightbox.min.js", - loadTime: "afterDOMReady", - contentType: "external", - }, - { - contentType: "inline", - loadTime: "afterDOMReady", - // GLightbox needs to be reloaded whenever there's a page content change - // to make sure it loads all the images in the new page content. - // Ref: https://quartz.jzhao.xyz/advanced/creating-components#scripts-and-interactivity - script: ` -document.addEventListener("nav", () => { - const lightbox = GLightbox(${JSON.stringify(opts)}); -}); -`.trim(), - }, - ], - } - }, - } -}