From f6c0e639eaf0c71284e121cb883d84ef6a5ea8b3 Mon Sep 17 00:00:00 2001 From: LitoMore Date: Wed, 8 May 2024 21:40:03 +0800 Subject: [PATCH] refactor: use shields.io built-in JSR logo for badges (#487) The JSR logo has been added to Simple Icons since https://github.com/simple-icons/simple-icons/pull/10794. I used the `logoSize` parameter to make the logo fit the badge. The feature was introduced at https://github.com/badges/shields/pull/9191. Currently, we can't use `logoSize` in the response due to https://github.com/badges/shields/pull/10132. So I passed these parameters with search parameters instead. --- frontend/routes/badges/package.ts | 8 +++----- frontend/routes/badges/package_score.ts | 8 +++----- frontend/routes/badges/scope.ts | 8 +++----- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/frontend/routes/badges/package.ts b/frontend/routes/badges/package.ts index 2006e0fb..ee18f3a0 100644 --- a/frontend/routes/badges/package.ts +++ b/frontend/routes/badges/package.ts @@ -25,14 +25,9 @@ export const handler: Handlers = { return Response.json({ schemaVersion: 1, label: "", - // namedLogo: "jsr", TODO: add icon to shields.io or simple-icons. temporary solution below. - logoSvg: await Deno.readTextFile( - new URL("../../static/logo.svg", import.meta.url), - ), message: packageResp.data.latestVersion, labelColor: "rgb(247,223,30)", color: "rgb(8,51,68)", - logoWidth: "25", }); } } else { @@ -42,6 +37,9 @@ export const handler: Handlers = { const shieldsUrl = new URL("https://img.shields.io/endpoint"); shieldsUrl.search = url.search; shieldsUrl.searchParams.set("url", url.href); + shieldsUrl.searchParams.set("logo", "jsr"); + shieldsUrl.searchParams.set("logoColor", "rgb(8,51,68)"); + shieldsUrl.searchParams.set("logoSize", "auto"); const res = await fetch(shieldsUrl); diff --git a/frontend/routes/badges/package_score.ts b/frontend/routes/badges/package_score.ts index 7697e66e..0526f3e2 100644 --- a/frontend/routes/badges/package_score.ts +++ b/frontend/routes/badges/package_score.ts @@ -29,14 +29,9 @@ export const handler: Handlers = { return Response.json({ schemaVersion: 1, label: "", - // namedLogo: "jsr", TODO: add icon to shields.io or simple-icons. temporary solution below. - logoSvg: await Deno.readTextFile( - new URL("../../static/logo.svg", import.meta.url), - ), message: `${packageResp.data.score}%`, labelColor: "rgb(247,223,30)", color: "rgb(8,51,68)", - logoWidth: "25", }); } } else { @@ -46,6 +41,9 @@ export const handler: Handlers = { const shieldsUrl = new URL("https://img.shields.io/endpoint"); shieldsUrl.search = url.search; shieldsUrl.searchParams.set("url", url.href); + shieldsUrl.searchParams.set("logo", "jsr"); + shieldsUrl.searchParams.set("logoColor", "rgb(8,51,68)"); + shieldsUrl.searchParams.set("logoSize", "auto"); const res = await fetch(shieldsUrl); diff --git a/frontend/routes/badges/scope.ts b/frontend/routes/badges/scope.ts index 4141b171..30381770 100644 --- a/frontend/routes/badges/scope.ts +++ b/frontend/routes/badges/scope.ts @@ -25,14 +25,9 @@ export const handler: Handlers = { return Response.json({ schemaVersion: 1, label: "", - // namedLogo: "jsr", TODO: add icon to shields.io or simple-icons. temporary solution below. - logoSvg: await Deno.readTextFile( - new URL("../../static/logo.svg", import.meta.url), - ), message: `@${scopeResp.data.scope}`, labelColor: "rgb(247,223,30)", color: "rgb(8,51,68)", - logoWidth: "25", }); } } else { @@ -42,6 +37,9 @@ export const handler: Handlers = { const shieldsUrl = new URL("https://img.shields.io/endpoint"); shieldsUrl.search = url.search; shieldsUrl.searchParams.set("url", url.href); + shieldsUrl.searchParams.set("logo", "jsr"); + shieldsUrl.searchParams.set("logoColor", "rgb(8,51,68)"); + shieldsUrl.searchParams.set("logoSize", "auto"); const res = await fetch(shieldsUrl);