diff --git a/app/layout.jsx b/app/layout.jsx index 4a34ae1..28299c7 100644 --- a/app/layout.jsx +++ b/app/layout.jsx @@ -74,11 +74,13 @@ export const metadata = { icons: { icon: [ - { url: "/favicon.ico", sizes: "any" }, - { url: "/icon.svg", type: "image/svg+xml" }, + { url: "/favicon.ico", sizes: "48x48", type: "image/x-icon" }, { url: "/favicon-48x48.png", sizes: "48x48", type: "image/png" }, + { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, + { url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" }, { url: "/icon-192.png", sizes: "192x192", type: "image/png" }, { url: "/icon-512.png", sizes: "512x512", type: "image/png" }, + { url: "/icon.svg", type: "image/svg+xml" }, ], apple: [ { url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" }, diff --git a/lib/seo.js b/lib/seo.js index bcaea07..67dff3f 100644 --- a/lib/seo.js +++ b/lib/seo.js @@ -63,7 +63,21 @@ export const jsonLd = { inLanguage: "pt-BR", description: "Documentação do ecossistema ESP32 em português brasileiro: especificações, pinagem, comparação e seleção de séries.", - publisher: { "@id": `${SITE.url}/#autor` }, + publisher: { "@id": `${SITE.url}/#organizacao` }, + }, + { + "@type": "Organization", + "@id": `${SITE.url}/#organizacao`, + name: "Ciência Embarcada", + url: SITE.blog, + logo: { + "@type": "ImageObject", + url: `${SITE.url}/icon-512.png`, + width: 512, + height: 512, + }, + image: `${SITE.url}/icon-512.png`, + sameAs: [SITE.autorLinkedin, SITE.repositorio, SITE.blog], }, { "@type": "Person", @@ -141,7 +155,9 @@ export const jsonLd = { url: SITE.blog, logo: { "@type": "ImageObject", - url: `${SITE.url}/marca/espdocs-marca.svg`, + url: `${SITE.url}/icon-512.png`, + width: 512, + height: 512, }, }, about: { @@ -179,7 +195,9 @@ export const jsonLd = { url: SITE.blog, logo: { "@type": "ImageObject", - url: `${SITE.url}/marca/espdocs-marca.svg`, + url: `${SITE.url}/icon-512.png`, + width: 512, + height: 512, }, }, about: { @@ -249,7 +267,9 @@ export const jsonLd = { url: SITE.blog, logo: { "@type": "ImageObject", - url: `${SITE.url}/marca/espdocs-marca.svg`, + url: `${SITE.url}/icon-512.png`, + width: 512, + height: 512, }, }, offers: { diff --git a/app/favicon.ico b/public/favicon.ico similarity index 100% rename from app/favicon.ico rename to public/favicon.ico diff --git a/app/icon.svg b/public/icon.svg similarity index 100% rename from app/icon.svg rename to public/icon.svg diff --git a/scripts/generate-favicons.mjs b/scripts/generate-favicons.mjs index b0afe9f..f7d6f50 100644 --- a/scripts/generate-favicons.mjs +++ b/scripts/generate-favicons.mjs @@ -2,7 +2,11 @@ import fs from 'fs'; import path from 'path'; import puppeteer from 'puppeteer'; -const svgPath = path.resolve('app/icon.svg'); +const svgPath = fs.existsSync(path.resolve('public/icon.svg')) + ? path.resolve('public/icon.svg') + : fs.existsSync(path.resolve('app/icon.svg')) + ? path.resolve('app/icon.svg') + : path.resolve('public/marca/espdocs-marca.svg'); const svgContent = fs.readFileSync(svgPath, 'utf8'); function createIco(pngBuffers) { @@ -78,10 +82,9 @@ async function run() { { width: 48, height: 48, buffer: rendered[48] } ]); - // Write favicon.ico to public and app + // Write favicon.ico to public fs.writeFileSync('public/favicon.ico', icoBuffer); - fs.writeFileSync('app/favicon.ico', icoBuffer); - console.log('Saved favicon.ico to public/ and app/'); + console.log('Saved favicon.ico to public/'); // Write PNG favicons to public fs.writeFileSync('public/favicon-48x48.png', rendered[48]);