From b74c789849eb25bb9527d181d104837df940bfdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 25 Jul 2025 10:49:52 -0400 Subject: [PATCH] fix: use sharp to convert svg to png, closes #13534 --- install/package.json | 1 - src/categories/icon.js | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/install/package.json b/install/package.json index 4033fe1a27..dbb07c0c20 100644 --- a/install/package.json +++ b/install/package.json @@ -35,7 +35,6 @@ "@isaacs/ttlcache": "1.4.1", "@nodebb/spider-detector": "2.0.3", "@popperjs/core": "2.11.8", - "@resvg/resvg-js": "2.6.2", "@textcomplete/contenteditable": "0.1.13", "@textcomplete/core": "0.1.13", "@textcomplete/textarea": "0.1.13", diff --git a/src/categories/icon.js b/src/categories/icon.js index 93f5614630..7aa94ab802 100644 --- a/src/categories/icon.js +++ b/src/categories/icon.js @@ -5,7 +5,7 @@ const fs = require('fs/promises'); const nconf = require('nconf'); const winston = require('winston'); const { default: satori } = require('satori'); -const { Resvg } = require('@resvg/resvg-js'); +const sharp = require('sharp'); const utils = require('../utils'); @@ -96,9 +96,9 @@ Icons.regenerate = async (cid) => { await fs.writeFile(path.resolve(nconf.get('upload_path'), 'category', `category-${cid}-icon.svg`), svg); // Generate and save PNG - const resvg = new Resvg(Buffer.from(svg)); - const pngData = resvg.render(); - const pngBuffer = pngData.asPng(); + const pngBuffer = await sharp(Buffer.from(svg)) + .png() + .toBuffer(); await fs.writeFile(path.resolve(nconf.get('upload_path'), 'category', `category-${cid}-icon.png`), pngBuffer);