From 1694e9277b078f09b14698526bd8596ec0917587 Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Tue, 8 Oct 2024 17:33:43 -0400 Subject: [PATCH] Generate preview images for each page (#59) * Generate preview images for each page * remove book icon --- docusaurus.config.ts | 12 +- package.json | 1 + src/renderer/image-renderers.ts | 134 ++++++++++++ yarn.lock | 355 +++++++++++++++++++++++++++++++- 4 files changed, 491 insertions(+), 11 deletions(-) create mode 100644 src/renderer/image-renderers.ts diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 9e12a5c..bb2bdf8 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,4 +1,5 @@ import type { Config } from "@docusaurus/types"; +import { docOgRenderer } from "./src/renderer/image-renderers"; const baseUrl = process.env.EMBEDDED ? "/docsite/" : "/"; @@ -47,7 +48,16 @@ const config: Config = { filename: "sitemap.xml", }, ], - ], + !process.env.EMBEDDED && [ + "@waveterm/docusaurus-og", + { + path: "./preview-images", // relative to the build directory + imageRenderers: { + "docusaurus-plugin-content-docs": docOgRenderer, + }, + }, + ], + ].filter((v) => v), themes: [ ["classic", { customCss: "src/css/custom.css" }], !process.env.EMBEDDED && "@docusaurus/theme-search-algolia", diff --git a/package.json b/package.json index 60be6b0..13b569a 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@docusaurus/theme-classic": "^3.5.2", "@docusaurus/theme-search-algolia": "^3.5.2", "@mdx-js/react": "^3.0.0", + "@waveterm/docusaurus-og": "https://github.com/wavetermdev/docusaurus-og", "clsx": "^2.1.1", "prism-react-renderer": "^2.3.0", "react": "^18.0.0", diff --git a/src/renderer/image-renderers.ts b/src/renderer/image-renderers.ts new file mode 100644 index 0000000..bed6a2d --- /dev/null +++ b/src/renderer/image-renderers.ts @@ -0,0 +1,134 @@ +import type { DocsPageData, ImageGeneratorOptions, ImageRenderer } from "@waveterm/docusaurus-og"; +import { readFileSync } from "fs"; +import { join } from "path"; +import React, { ReactNode } from "react"; + +const waveLogo = join(__dirname, "../../static/img/logo/wave-dark.png"); +const waveLogoBase64 = `data:image/png;base64,${readFileSync(waveLogo).toString("base64")}`; + +const titleElement = ({ children }) => + React.createElement( + "label", + { + style: { + fontSize: 72, + fontWeight: 800, + letterSpacing: 1, + margin: "25px 225px 10px 0px", + color: "#e3e3e3", + wordBreak: "break-word", + }, + }, + children + ); + +const waveLogoElement = React.createElement("img", { + src: waveLogoBase64, + style: { + position: "absolute", + top: 20, + right: 20, + width: 300, + }, +}); + +const headerElement = (header: string, svg: ReactNode) => + React.createElement( + "div", + { + style: { + display: "flex", + alignItems: "center", + position: "absolute", + top: 20, + left: 40, + }, + }, + svg, + React.createElement( + "label", + { + style: { + fontSize: 50, + fontWeight: 600, + letterSpacing: 1, + color: "#e3e3e3", + }, + }, + header + ) + ); + +const rootDivStyle: React.CSSProperties = { + display: "flex", + flexDirection: "column", + height: "100%", + width: "100%", + padding: "10px 40px", + justifyContent: "center", + fontFamily: "Roboto", + fontSize: 32, + fontWeight: 400, + backgroundColor: "#1b1b1d", + color: "#e3e3e3", + borderBottom: "2rem solid #58c142", +}; + +export const docOgRenderer: ImageRenderer = async (data, context) => { + const element = React.createElement( + "div", + { style: rootDivStyle }, + React.createElement(titleElement, null, data.metadata.title), + React.createElement("div", null, data.metadata.description.replace("—", "-")), + waveLogoElement, + headerElement(context.siteConfig.title, null) + ); + + return [element, await imageGeneratorOptions()]; +}; + +const imageGeneratorOptions = async (): Promise => { + return { + width: 1200, + height: 600, + fonts: [ + { + name: "Roboto", + data: await getTtfFont("Roboto", ["ital", "wght"], [0, 400]), + weight: 400, + style: "normal", + }, + ], + }; +}; + +function docSectionPath(slug: string, title: string) { + let section = slug.split("/")[1].toString(); + + // Override some sections by slug + switch (section) { + case "api": + section = "REST APIs"; + break; + } + + section = section.charAt(0).toUpperCase() + section.slice(1); + + return `${title} / ${section}`; +} + +async function getTtfFont(family: string, axes: string[], value: number[]): Promise { + const familyParam = axes.join(",") + "@" + value.join(","); + + // Get css style sheet with user agent Mozilla/5.0 Firefox/1.0 to ensure TTF is returned + const cssCall = await fetch(`https://fonts.googleapis.com/css2?family=${family}:${familyParam}&display=swap`, { + headers: { + "User-Agent": "Mozilla/5.0 Firefox/1.0", + }, + }); + + const css = await cssCall.text(); + const ttfUrl = css.match(/url\(([^)]+)\)/)?.[1]; + + return await fetch(ttfUrl).then((res) => res.arrayBuffer()); +} diff --git a/yarn.lock b/yarn.lock index 02c69b2..0eb5edd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1722,7 +1722,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/core@npm:3.5.2": +"@docusaurus/core@npm:3.5.2, @docusaurus/core@npm:^3.4.0": version: 3.5.2 resolution: "@docusaurus/core@npm:3.5.2" dependencies: @@ -1874,7 +1874,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/module-type-aliases@npm:3.5.2": +"@docusaurus/module-type-aliases@npm:3.5.2, @docusaurus/module-type-aliases@npm:^3.4.0": version: 3.5.2 resolution: "@docusaurus/module-type-aliases@npm:3.5.2" dependencies: @@ -2153,7 +2153,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/types@npm:3.5.2": +"@docusaurus/types@npm:3.5.2, @docusaurus/types@npm:^3.4.0": version: 3.5.2 resolution: "@docusaurus/types@npm:3.5.2" dependencies: @@ -2173,7 +2173,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/utils-common@npm:3.5.2": +"@docusaurus/utils-common@npm:3.5.2, @docusaurus/utils-common@npm:^3.4.0": version: 3.5.2 resolution: "@docusaurus/utils-common@npm:3.5.2" dependencies: @@ -2187,7 +2187,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/utils-validation@npm:3.5.2": +"@docusaurus/utils-validation@npm:3.5.2, @docusaurus/utils-validation@npm:^3.4.0": version: 3.5.2 resolution: "@docusaurus/utils-validation@npm:3.5.2" dependencies: @@ -2203,7 +2203,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/utils@npm:3.5.2": +"@docusaurus/utils@npm:3.5.2, @docusaurus/utils@npm:^3.4.0": version: 3.5.2 resolution: "@docusaurus/utils@npm:3.5.2" dependencies: @@ -2690,6 +2690,147 @@ __metadata: languageName: node linkType: hard +"@resvg/resvg-js-android-arm-eabi@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-android-arm-eabi@npm:2.6.2" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@resvg/resvg-js-android-arm64@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-android-arm64@npm:2.6.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@resvg/resvg-js-darwin-arm64@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-darwin-arm64@npm:2.6.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@resvg/resvg-js-darwin-x64@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-darwin-x64@npm:2.6.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@resvg/resvg-js-linux-arm-gnueabihf@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-linux-arm-gnueabihf@npm:2.6.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@resvg/resvg-js-linux-arm64-gnu@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-linux-arm64-gnu@npm:2.6.2" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@resvg/resvg-js-linux-arm64-musl@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-linux-arm64-musl@npm:2.6.2" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@resvg/resvg-js-linux-x64-gnu@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-linux-x64-gnu@npm:2.6.2" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@resvg/resvg-js-linux-x64-musl@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-linux-x64-musl@npm:2.6.2" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@resvg/resvg-js-win32-arm64-msvc@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-win32-arm64-msvc@npm:2.6.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@resvg/resvg-js-win32-ia32-msvc@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-win32-ia32-msvc@npm:2.6.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@resvg/resvg-js-win32-x64-msvc@npm:2.6.2": + version: 2.6.2 + resolution: "@resvg/resvg-js-win32-x64-msvc@npm:2.6.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@resvg/resvg-js@npm:^2.6.0": + version: 2.6.2 + resolution: "@resvg/resvg-js@npm:2.6.2" + dependencies: + "@resvg/resvg-js-android-arm-eabi": "npm:2.6.2" + "@resvg/resvg-js-android-arm64": "npm:2.6.2" + "@resvg/resvg-js-darwin-arm64": "npm:2.6.2" + "@resvg/resvg-js-darwin-x64": "npm:2.6.2" + "@resvg/resvg-js-linux-arm-gnueabihf": "npm:2.6.2" + "@resvg/resvg-js-linux-arm64-gnu": "npm:2.6.2" + "@resvg/resvg-js-linux-arm64-musl": "npm:2.6.2" + "@resvg/resvg-js-linux-x64-gnu": "npm:2.6.2" + "@resvg/resvg-js-linux-x64-musl": "npm:2.6.2" + "@resvg/resvg-js-win32-arm64-msvc": "npm:2.6.2" + "@resvg/resvg-js-win32-ia32-msvc": "npm:2.6.2" + "@resvg/resvg-js-win32-x64-msvc": "npm:2.6.2" + dependenciesMeta: + "@resvg/resvg-js-android-arm-eabi": + optional: true + "@resvg/resvg-js-android-arm64": + optional: true + "@resvg/resvg-js-darwin-arm64": + optional: true + "@resvg/resvg-js-darwin-x64": + optional: true + "@resvg/resvg-js-linux-arm-gnueabihf": + optional: true + "@resvg/resvg-js-linux-arm64-gnu": + optional: true + "@resvg/resvg-js-linux-arm64-musl": + optional: true + "@resvg/resvg-js-linux-x64-gnu": + optional: true + "@resvg/resvg-js-linux-x64-musl": + optional: true + "@resvg/resvg-js-win32-arm64-msvc": + optional: true + "@resvg/resvg-js-win32-ia32-msvc": + optional: true + "@resvg/resvg-js-win32-x64-msvc": + optional: true + checksum: 10c0/f04192e98d7ead730f9474f07e81aa9d9b28dc18218028f2a15c808e1ab0de511f07d8a77e01d058534e78f0ef7e9f33201f15f052e28bbaabaf159c68698a5e + languageName: node + linkType: hard + +"@shuding/opentype.js@npm:1.4.0-beta.0": + version: 1.4.0-beta.0 + resolution: "@shuding/opentype.js@npm:1.4.0-beta.0" + dependencies: + fflate: "npm:^0.7.3" + string.prototype.codepointat: "npm:^0.2.1" + bin: + ot: bin/ot + checksum: 10c0/4827ce9268c1628b35f55adde7de19ed3656bd8a79f6b6467ea2b089724061056a58fe58ecd477cd65d46998194920c1f93042beeeb3dd29bfb9b4e078fde20e + languageName: node + linkType: hard + "@sideway/address@npm:^4.1.5": version: 4.1.5 resolution: "@sideway/address@npm:4.1.5" @@ -3562,6 +3703,28 @@ __metadata: languageName: node linkType: hard +"@waveterm/docusaurus-og@https://github.com/wavetermdev/docusaurus-og": + version: 1.0.0-alpha.132 + resolution: "@waveterm/docusaurus-og@https://github.com/wavetermdev/docusaurus-og.git#commit=a0acc8a835ad0f0fe6d65fb101f09692955ca955" + dependencies: + "@docusaurus/core": "npm:^3.4.0" + "@docusaurus/module-type-aliases": "npm:^3.4.0" + "@docusaurus/types": "npm:^3.4.0" + "@docusaurus/utils": "npm:^3.4.0" + "@docusaurus/utils-common": "npm:^3.4.0" + "@docusaurus/utils-validation": "npm:^3.4.0" + "@resvg/resvg-js": "npm:^2.6.0" + chalk: "npm:^4.1.2" + cli-progress: "npm:^3.12.0" + figures: "npm:^3.2.0" + lodash: "npm:^4.17.21" + node-html-parser: "npm:^6.1.5" + object-hash: "npm:^3.0.0" + satori: "npm:^0.10.13" + checksum: 10c0/7ffecc039c88652d95803945e6a2e155787f3e9116e22aa0eafb61fbc0920735167bf91647b83e229554de6382a1dba3f4c5e61474b3ef07f3c85e661c16c24a + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": version: 1.12.1 resolution: "@webassemblyjs/ast@npm:1.12.1" @@ -4159,6 +4322,13 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:0.0.8": + version: 0.0.8 + resolution: "base64-js@npm:0.0.8" + checksum: 10c0/60f02a9fdbbbb251c0a1064834d4062f5a3c4237edd9f0313282d75980a80ce303316795f7a80c8e240e524169644d88445ec0697b03f81ab9f4458090979375 + languageName: node + linkType: hard + "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -4433,6 +4603,13 @@ __metadata: languageName: node linkType: hard +"camelize@npm:^1.0.0": + version: 1.0.1 + resolution: "camelize@npm:1.0.1" + checksum: 10c0/4c9ac55efd356d37ac483bad3093758236ab686192751d1c9daa43188cc5a07b09bd431eb7458a4efd9ca22424bba23253e7b353feb35d7c749ba040de2385fb + languageName: node + linkType: hard + "caniuse-api@npm:^3.0.0": version: 3.0.0 resolution: "caniuse-api@npm:3.0.0" @@ -4649,6 +4826,15 @@ __metadata: languageName: node linkType: hard +"cli-progress@npm:^3.12.0": + version: 3.12.0 + resolution: "cli-progress@npm:3.12.0" + dependencies: + string-width: "npm:^4.2.3" + checksum: 10c0/f464cb19ebde2f3880620a2adfaeeefaec6cb15c8e610c8a659ca1047ee90d69f3bf2fdabbb1fe33ac408678e882e3e0eecdb84ab5df0edf930b269b8a72682d + languageName: node + linkType: hard + "cli-table3@npm:^0.6.3": version: 0.6.5 resolution: "cli-table3@npm:0.6.5" @@ -4712,7 +4898,7 @@ __metadata: languageName: node linkType: hard -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": +"color-name@npm:^1.0.0, color-name@npm:^1.1.4, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 @@ -5050,6 +5236,27 @@ __metadata: languageName: node linkType: hard +"css-background-parser@npm:^0.1.0": + version: 0.1.0 + resolution: "css-background-parser@npm:0.1.0" + checksum: 10c0/1065f975b766db95a81599e4e0559abb6c2ddbeb57eeff0de92851cd7e614a832185e81acb92115279c2bd437e8095d7b3cd07d0e1178ddc85f46418cf40a53f + languageName: node + linkType: hard + +"css-box-shadow@npm:1.0.0-3": + version: 1.0.0-3 + resolution: "css-box-shadow@npm:1.0.0-3" + checksum: 10c0/320e90230d66cad98b4a9858b5704765f7eecfe4e7dc8198903634653384ba182fbe2d2ce689ed574812d4107c9f7f0ec68b3d58074bd9450dc5d5c81105c170 + languageName: node + linkType: hard + +"css-color-keywords@npm:^1.0.0": + version: 1.0.0 + resolution: "css-color-keywords@npm:1.0.0" + checksum: 10c0/af205a86c68e0051846ed91eb3e30b4517e1904aac040013ff1d742019b3f9369ba5658ba40901dbbc121186fc4bf0e75a814321cc3e3182fbb2feb81c6d9cb7 + languageName: node + linkType: hard + "css-declaration-sorter@npm:^7.2.0": version: 7.2.0 resolution: "css-declaration-sorter@npm:7.2.0" @@ -5138,6 +5345,17 @@ __metadata: languageName: node linkType: hard +"css-to-react-native@npm:^3.0.0": + version: 3.2.0 + resolution: "css-to-react-native@npm:3.2.0" + dependencies: + camelize: "npm:^1.0.0" + css-color-keywords: "npm:^1.0.0" + postcss-value-parser: "npm:^4.0.2" + checksum: 10c0/fde850a511d5d3d7c55a1e9b8ed26b69a8ad4868b3487e36ebfbfc0b96fc34bc977d9cd1d61a289d0c74d3f9a662d8cee297da53d4433bf2e27d6acdff8e1003 + languageName: node + linkType: hard + "css-tree@npm:^2.3.1": version: 2.3.1 resolution: "css-tree@npm:2.3.1" @@ -6314,6 +6532,22 @@ __metadata: languageName: node linkType: hard +"fflate@npm:^0.7.3": + version: 0.7.4 + resolution: "fflate@npm:0.7.4" + checksum: 10c0/5e749eb3a6ed61a0f6c55756abf9f4258f06f60505db689e22d18503dd252ca5af656d32668e4b7b20714adf8b313febf695d23863a8352f23e325baee0f672d + languageName: node + linkType: hard + +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/9c421646ede432829a50bc4e55c7a4eb4bcb7cc07b5bab2f471ef1ab9a344595bbebb6c5c21470093fbb730cd81bbca119624c40473a125293f656f49cb47629 + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -7038,7 +7272,7 @@ __metadata: languageName: node linkType: hard -"he@npm:^1.2.0": +"he@npm:1.2.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" bin: @@ -7047,6 +7281,13 @@ __metadata: languageName: node linkType: hard +"hex-rgb@npm:^4.1.0": + version: 4.3.0 + resolution: "hex-rgb@npm:4.3.0" + checksum: 10c0/ce2c2ff260d9e0686bead74e3318c1684d8a2da856da30ed90535442f705fb4f5cd93ffe70274e2534a7319a99cda6a6617f23d4f163b72867f406e25ea30cb4 + languageName: node + linkType: hard + "history@npm:^4.9.0": version: 4.10.1 resolution: "history@npm:4.10.1" @@ -8098,6 +8339,16 @@ __metadata: languageName: node linkType: hard +"linebreak@npm:^1.1.0": + version: 1.1.0 + resolution: "linebreak@npm:1.1.0" + dependencies: + base64-js: "npm:0.0.8" + unicode-trie: "npm:^2.0.0" + checksum: 10c0/b350c90d7b10db30345ed56cdb869548110ce73ccdc4337100eaee50755eed78e9823490e6f2d7ed0adde14f7ed2a12d8583015e072c54f34dc70b316fde133d + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -9527,6 +9778,16 @@ __metadata: languageName: node linkType: hard +"node-html-parser@npm:^6.1.5": + version: 6.1.13 + resolution: "node-html-parser@npm:6.1.13" + dependencies: + css-select: "npm:^5.1.0" + he: "npm:1.2.0" + checksum: 10c0/ca36290507da8ec0fa131a0fd67ba62e300365c3950b5a6058b0e32b71b520ff43a5661b19e98a5c9797dbe3428b08db788b602f1f8aa62f2db5bb66e1d80782 + languageName: node + linkType: hard + "node-releases@npm:^2.0.18": version: 2.0.18 resolution: "node-releases@npm:2.0.18" @@ -9649,6 +9910,13 @@ __metadata: languageName: node linkType: hard +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 10c0/a06844537107b960c1c8b96cd2ac8592a265186bfa0f6ccafe0d34eabdb526f6fa81da1f37c43df7ed13b12a4ae3457a16071603bcd39d8beddb5f08c37b0f47 + languageName: node + linkType: hard + "object-inspect@npm:^1.13.1": version: 1.13.2 resolution: "object-inspect@npm:1.13.2" @@ -9856,6 +10124,13 @@ __metadata: languageName: node linkType: hard +"pako@npm:^0.2.5": + version: 0.2.9 + resolution: "pako@npm:0.2.9" + checksum: 10c0/79c1806ebcf325b60ae599e4d7227c2e346d7b829dc20f5cf24cef07c934079dc3a61c5b3c8278a2f7a190c4a613e343ea11e5302dbe252efd11712df4b6b041 + languageName: node + linkType: hard + "param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" @@ -9875,6 +10150,16 @@ __metadata: languageName: node linkType: hard +"parse-css-color@npm:^0.2.1": + version: 0.2.1 + resolution: "parse-css-color@npm:0.2.1" + dependencies: + color-name: "npm:^1.1.4" + hex-rgb: "npm:^4.1.0" + checksum: 10c0/558f1d9874295a618717b88633fb15343fd4d2952c21b274c77503f251c1ed18086df6cec422b6ca67c8f8f0511baf327fae232d4ed12d55cf116695346161d3 + languageName: node + linkType: hard + "parse-entities@npm:^2.0.0": version: 2.0.0 resolution: "parse-entities@npm:2.0.0" @@ -10536,7 +10821,7 @@ __metadata: languageName: node linkType: hard -"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": +"postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 @@ -11959,6 +12244,24 @@ __metadata: languageName: node linkType: hard +"satori@npm:^0.10.13": + version: 0.10.14 + resolution: "satori@npm:0.10.14" + dependencies: + "@shuding/opentype.js": "npm:1.4.0-beta.0" + css-background-parser: "npm:^0.1.0" + css-box-shadow: "npm:1.0.0-3" + css-to-react-native: "npm:^3.0.0" + emoji-regex: "npm:^10.2.1" + escape-html: "npm:^1.0.3" + linebreak: "npm:^1.1.0" + parse-css-color: "npm:^0.2.1" + postcss-value-parser: "npm:^4.2.0" + yoga-wasm-web: "npm:^0.3.3" + checksum: 10c0/874e7c869bf33e4d2337fc15a47a3ff97dc592370c2a599e0ad08ac87ba6b4b2800549adae81bbd7c12b773a5cf91ca726be543b7c43a132cab173d0e49e85c2 + languageName: node + linkType: hard + "sax@npm:^1.2.4": version: 1.4.1 resolution: "sax@npm:1.4.1" @@ -12562,7 +12865,7 @@ __metadata: languageName: node linkType: hard -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -12595,6 +12898,13 @@ __metadata: languageName: node linkType: hard +"string.prototype.codepointat@npm:^0.2.1": + version: 0.2.1 + resolution: "string.prototype.codepointat@npm:0.2.1" + checksum: 10c0/83c4d2f83b6f3f8f377e0b36628b74a9efcaf5a725e6fb6354f15f30f0399c8f4b08956df883877b2b0f50dd2e644ed7e8b1f6d45bdee2dc5b3f4248796607fa + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -12925,6 +13235,13 @@ __metadata: languageName: node linkType: hard +"tiny-inflate@npm:^1.0.0": + version: 1.0.3 + resolution: "tiny-inflate@npm:1.0.3" + checksum: 10c0/fab687537254f6ec44c9a2e880048fe70da3542aba28f73cda3e74c95cabf342a339372f2a6c032e322324f01accc03ca26c04ba2bad9b3eb8cf3ee99bba7f9b + languageName: node + linkType: hard + "tiny-invariant@npm:^1.0.2": version: 1.3.3 resolution: "tiny-invariant@npm:1.3.3" @@ -13143,6 +13460,16 @@ __metadata: languageName: node linkType: hard +"unicode-trie@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-trie@npm:2.0.0" + dependencies: + pako: "npm:^0.2.5" + tiny-inflate: "npm:^1.0.0" + checksum: 10c0/2422368645249f315640a1c9e9506046aa7738fc9c5d59e15c207cdd6ec66101c35b0b9f75dc3ac28fe7be19aaf1efc898bbea074fa1e8e295ef736aeb7904bb + languageName: node + linkType: hard + "unified-args@npm:^11.0.0": version: 11.0.1 resolution: "unified-args@npm:11.0.1" @@ -13642,6 +13969,7 @@ __metadata: "@mdx-js/typescript-plugin": "npm:^0.0.6" "@types/eslint": "npm:^9.6.1" "@types/eslint-config-prettier": "npm:^6.11.3" + "@waveterm/docusaurus-og": "https://github.com/wavetermdev/docusaurus-og" clsx: "npm:^2.1.1" eslint: "npm:^9.11.1" eslint-config-prettier: "npm:^9.1.0" @@ -14039,6 +14367,13 @@ __metadata: languageName: node linkType: hard +"yoga-wasm-web@npm:^0.3.3": + version: 0.3.3 + resolution: "yoga-wasm-web@npm:0.3.3" + checksum: 10c0/d46ae3a436409e89eb0ea3b8c7624dafaf2c846d9038fdf8aa0cc839f73a2577b679bdc22997596177de74c580a6cdc3206c98fd2acd91b66f85462d9d9d260a + languageName: node + linkType: hard + "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4"