diff --git a/apps/web/app/landing/download.tsx b/apps/web/app/landing/download.tsx new file mode 100644 index 00000000..21052327 --- /dev/null +++ b/apps/web/app/landing/download.tsx @@ -0,0 +1,20 @@ +"use client" +import * as htmlToImage from "html-to-image" + +export function Download({ selector }: { selector: string }) { + const onClick = async () => { + const nodes = document.querySelectorAll(selector) as any + for (const node of nodes) { + const dataUrl = await htmlToImage.toPng(node as HTMLElement) + var img = new Image() + img.src = dataUrl + document.getElementById("out")!.appendChild(img) + } + } + return ( +
+ +
+
+ ) +} diff --git a/apps/web/package.json b/apps/web/package.json index cea779f6..f7bd58a3 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -26,6 +26,7 @@ "diff": "^5.1.0", "dotenv": "^16.4.1", "estree-util-to-js": "^2.0.0", + "html-to-image": "^1.11.11", "lucide-react": "^0.303.0", "next": "14.1.0", "next-docs-mdx": "7.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4606390b..90afdf7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,6 +107,9 @@ importers: estree-util-to-js: specifier: ^2.0.0 version: 2.0.0 + html-to-image: + specifier: ^1.11.11 + version: 1.11.11 lucide-react: specifier: ^0.303.0 version: 0.303.0(react@18.2.0) @@ -2677,6 +2680,9 @@ packages: hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + html-to-image@1.11.11: + resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} + human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -7236,6 +7242,8 @@ snapshots: hosted-git-info@2.8.9: {} + html-to-image@1.11.11: {} + human-id@1.0.2: {} human-id@4.1.1: {}