Ajouter vos pages au sitemap et à llms.txt

Deux fonctions listent vos pages publiées : floconSitemap() pour sitemap.ts et floconLlmsTxt() pour llms.txt. Les deux viennent de @flocon-ai/next et utilisent getAllPages().

Les brouillons ne sont jamais listés. Une page programmée pour plus tard n'est pas listée avant sa date de publication.

Donnez votre règle d'URL

Les deux fonctions prennent une fonction url. Elle reçoit { locale, path } et renvoie l'URL complète de la page sur votre site web.

  • locale est la langue de la page, comme en ou fr.
  • path commence par un slash, comme /guides/seo.
  • Flocon AI n'impose aucune règle d'URL. Construisez l'URL comme le fait votre site web.

sitemap.ts

Créez app/sitemap.ts :

import { floconSitemap } from "@flocon-ai/next"

export const dynamic = "force-dynamic"

export default function sitemap() {
return floconSitemap({
  url: ({ locale, path }) => `https://example.com/${locale}${path}`,
})
}

floconSitemap() renvoie un tableau au format sitemap de Next.js. Chaque entrée contient :

  • url
  • lastModified (le updatedAt de la page)
  • alternates.languages : une URL par langue où la page existe (hreflang)

Pour ajouter vos propres pages, étalez le résultat dans votre tableau.

llms.txt

Créez app/llms.txt/route.ts :

import { floconLlmsTxt } from "@flocon-ai/next"

export const dynamic = "force-dynamic"

export async function GET() {
const text = await floconLlmsTxt({
  url: ({ locale, path }) => `https://example.com/${locale}${path}`,
})
return new Response(text, {
  headers: { "Content-Type": "text/plain; charset=utf-8" },
})
}

floconLlmsTxt() renvoie un texte avec un lien Markdown par page publiée :

- [Titre de la page](https://example.com/fr/guides/seo)
- [Page title](https://example.com/en/guides/seo)

getAllPages()

Utilisez-la quand vous avez besoin de la liste vous-même. Elle renvoie les pages publiées, sans leurs blocs.

import { getAllPages } from "@flocon-ai/next"

const pages = await getAllPages()

Chaque élément contient :

  • locale
  • path
  • title
  • updatedAt
  • alternates : les autres langues où le même chemin est publié, comme ["fr"]

Elle lève une erreur si l'appel à l'API échoue.

Utilisez le rendu dynamique. Les fonctions lisent vos pages à chaque requête. C'est pourquoi les exemples définissent dynamic = "force-dynamic". Sans cela, Next.js peut générer le fichier une seule fois et une nouvelle page n'apparaîtra pas.

Environnement

Ces fonctions s'exécutent côté serveur uniquement. Elles lisent votre token read dans FLOCON_TOKEN.

Mis à jour