/servicos abre com as 3 ofertas e depois outros serviços; H1 de criação de sites e de engenharia com o nome da oferta; capa de cada serviço pelo assunto (SEV fora do próprio case cai de ~11 para 2 imagens); diagrama de fluxo em SVG nos serviços sem case; cases com o que o cliente passou a poder fazer e contato logo depois de Como ficou; FAQ num componente só; lastmod por rota; ProfessionalService com areaServed.
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import type { MetadataRoute } from "next";
|
|
import {
|
|
caseStudies,
|
|
pageUpdatedAt,
|
|
servicePages,
|
|
siteUrl,
|
|
} from "@/lib/site-content";
|
|
|
|
/**
|
|
* `lastmod` de cada rota: a data de mudança do conteúdo dela (`updatedAt` do serviço ou do case, `pageUpdatedAt` nas
|
|
* páginas fixas), sempre a mesma a cada build. Não vem do relógio nem do git, que mudariam sem o texto mudar.
|
|
* Atualize a data quando o texto da página mudar.
|
|
*/
|
|
function dateOf(day: string) {
|
|
return new Date(`${day}T00:00:00Z`);
|
|
}
|
|
|
|
export default function sitemap(): MetadataRoute.Sitemap {
|
|
return [
|
|
{ url: siteUrl, lastModified: dateOf(pageUpdatedAt.home) },
|
|
{
|
|
url: `${siteUrl}/curriculo`,
|
|
lastModified: dateOf(pageUpdatedAt.curriculo),
|
|
},
|
|
{
|
|
url: `${siteUrl}/privacidade`,
|
|
lastModified: dateOf(pageUpdatedAt.privacidade),
|
|
},
|
|
{
|
|
url: `${siteUrl}/servicos`,
|
|
lastModified: dateOf(pageUpdatedAt.servicos),
|
|
},
|
|
{ url: `${siteUrl}/cases`, lastModified: dateOf(pageUpdatedAt.cases) },
|
|
{ url: `${siteUrl}/ia`, lastModified: dateOf(pageUpdatedAt.ia) },
|
|
...servicePages.map(({ slug, updatedAt }) => ({
|
|
url: `${siteUrl}/servicos/${slug}`,
|
|
lastModified: dateOf(updatedAt),
|
|
})),
|
|
...caseStudies.map(({ id, updatedAt }) => ({
|
|
url: `${siteUrl}/cases/${id}`,
|
|
lastModified: dateOf(updatedAt),
|
|
})),
|
|
];
|
|
}
|