diff --git a/jus-ia-start-kit/src/public/favicon.svg b/jus-ia-start-kit/src/public/favicon.svg new file mode 100644 index 000000000..57b1ec0f7 --- /dev/null +++ b/jus-ia-start-kit/src/public/favicon.svg @@ -0,0 +1,4 @@ + + + J + diff --git a/jus-ia-start-kit/src/public/robots.txt b/jus-ia-start-kit/src/public/robots.txt new file mode 100644 index 000000000..3146e8cfb --- /dev/null +++ b/jus-ia-start-kit/src/public/robots.txt @@ -0,0 +1,5 @@ +User-agent: * +Allow: / +Disallow: /health + +Sitemap: https://jus-ia.com/sitemap.xml diff --git a/jus-ia-start-kit/src/routes/home.ts b/jus-ia-start-kit/src/routes/home.ts index 111662f3b..3ea10f648 100644 --- a/jus-ia-start-kit/src/routes/home.ts +++ b/jus-ia-start-kit/src/routes/home.ts @@ -1,9 +1,32 @@ import type { FastifyInstance } from "fastify"; -import { getAreas, getTiposTarefa } from "../config/flows.js"; +import { getAreas, getTiposTarefa, getAllFlows } from "../config/flows.js"; import { trabalhistaArea } from "../flows/trabalhista/index.js"; import { civelArea } from "../flows/civel/index.js"; +const SITE_URL = process.env.SITE_URL || "https://jus-ia.com"; + export async function homeRoutes(app: FastifyInstance): Promise { + // GET /sitemap.xml — Dynamic sitemap + app.get("/sitemap.xml", async (_request, reply) => { + const flows = getAllFlows(); + const today = new Date().toISOString().split("T")[0]; + + const urls = [ + ` ${SITE_URL}/weekly1.0${today}`, + ...flows.map( + (f) => + ` ${SITE_URL}/${f.area}/${f.subtipo}monthly0.8`, + ), + ]; + + const xml = ` + +${urls.join("\n")} +`; + + return reply.type("application/xml").send(xml); + }); + // GET / — Landing page app.get("/", async (_request, reply) => { return reply.view("pages/home.njk", { diff --git a/jus-ia-start-kit/src/templates/layouts/base.njk b/jus-ia-start-kit/src/templates/layouts/base.njk index 8893b978f..a8c936c11 100644 --- a/jus-ia-start-kit/src/templates/layouts/base.njk +++ b/jus-ia-start-kit/src/templates/layouts/base.njk @@ -5,15 +5,24 @@ {% block title %}Jus IA Start Kit{% endblock %} + {% block metaDescription %} + + {% endblock %} + + {% block robots %}{% endblock %} + + {% block canonical %}{% endblock %} + {% block ogTags %} + {% endblock %} - +
diff --git a/jus-ia-start-kit/src/templates/pages/error.njk b/jus-ia-start-kit/src/templates/pages/error.njk index 95b3bc38e..b48083ee7 100644 --- a/jus-ia-start-kit/src/templates/pages/error.njk +++ b/jus-ia-start-kit/src/templates/pages/error.njk @@ -1,6 +1,8 @@ {% extends "layouts/base.njk" %} {% block title %}Erro — Jus IA Start Kit{% endblock %} +{% block robots %}{% endblock %} +{% block metaDescription %}{% endblock %} {% block content %}
diff --git a/jus-ia-start-kit/src/templates/pages/flow-step.njk b/jus-ia-start-kit/src/templates/pages/flow-step.njk index 6b6a7994d..665c6c5a3 100644 --- a/jus-ia-start-kit/src/templates/pages/flow-step.njk +++ b/jus-ia-start-kit/src/templates/pages/flow-step.njk @@ -1,6 +1,8 @@ {% extends "layouts/base.njk" %} {% block title %}{{ stepTitle }} — Jus IA Start Kit{% endblock %} +{% block robots %}{% endblock %} +{% block metaDescription %}{% endblock %} {% block content %} {% set backUrl = backHref %} diff --git a/jus-ia-start-kit/src/templates/pages/not-available.njk b/jus-ia-start-kit/src/templates/pages/not-available.njk index 89c248af9..bfcc4c38c 100644 --- a/jus-ia-start-kit/src/templates/pages/not-available.njk +++ b/jus-ia-start-kit/src/templates/pages/not-available.njk @@ -1,6 +1,8 @@ {% extends "layouts/base.njk" %} {% block title %}Fluxo não disponível — Jus IA Start Kit{% endblock %} +{% block robots %}{% endblock %} +{% block metaDescription %}{% endblock %} {% block content %} {% set backUrl = "/" %} diff --git a/jus-ia-start-kit/src/templates/pages/preview.njk b/jus-ia-start-kit/src/templates/pages/preview.njk index f19f13fc9..d3010b52a 100644 --- a/jus-ia-start-kit/src/templates/pages/preview.njk +++ b/jus-ia-start-kit/src/templates/pages/preview.njk @@ -1,6 +1,8 @@ {% extends "layouts/base.njk" %} {% block title %}Seu pedido está pronto — Jus IA Start Kit{% endblock %} +{% block robots %}{% endblock %} +{% block metaDescription %}{% endblock %} {% block content %}