Référence API
Astro
global
Titre de la section Astro globalLe global Astro
est disponible dans tous les contextes des fichiers .astro
. Il a les fonctions suivantes :
Astro.glob()
Titre de la section Astro.glob()Astro.glob()
est un moyen de charger de nombreux fichiers locaux dans votre site statique.
.glob()
ne prend qu’un seul paramètre : une URL relative globale des fichiers locaux que vous souhaitez importer. Il est asynchrone et renvoie un tableau des exportations des fichiers correspondants.
.glob()
ne peut pas prendre des variables ou des chaînes qui les interpolent, car elles ne sont pas statiquement analysables. (Voir le guide de dépannage pour une solution de contournement). Ceci est dû au fait que Astro.glob()
est une enveloppe de import.meta.glob()
de Vite.
Vous pouvez également utiliser import.meta.glob()
dans votre projet Astro. Vous pouvez faire cela dans les cas suivants :
- Vous avez besoin de cette fonctionnalité dans un fichier qui n’est pas
.astro
, comme une route d’API.Astro.glob()
n’est disponible que dans les fichiers.astro
, alors queimport.meta.glob()
est disponible n’importe où dans le projet. - Vous ne voulez pas charger chaque fichier immédiatement.
import.meta.glob()
peut retourner des fonctions qui importent le contenu du fichier, plutôt que de retourner le contenu lui-même. Notez que cette importation inclut tous les styles et les scripts pour tous les fichiers importés. Ceux-ci seront regroupés et ajoutés à la page, qu’un fichier soit réellement utilisé ou non, car c’est l’analyse statique qui en décide, et non l’exécution. - Vous voulez avoir accès au chemin de chaque fichier.
import.meta.glob()
renvoie une carte du chemin d’un fichier à son contenu, tandis queAstro.glob()
renvoie une liste de contenu. - Vous voulez passer plusieurs motifs ; par exemple, vous voulez ajouter un “motif négatif” qui filtre certains fichiers.
import.meta.glob()
peut optionnellement prendre un tableau de chaînes globales, plutôt qu’une seule chaîne.
Pour en savoir plus, consultez la documentation de Vite.
Fichiers Markdown
Titre de la section Fichiers MarkdownLes fichiers Markdown chargés avec Astro.glob()
renvoient l’interface MarkdownInstance
suivante :
Vous pouvez optionnellement fournir un type pour la variable frontmatter
en utilisant un générique TypeScript.
Fichiers Astro
Titre de la section Fichiers AstroLes fichiers Astro ont l’interface suivante :
Autres fichiers
Titre de la section Autres fichiersD’autres fichiers peuvent avoir des interfaces différentes, mais Astro.glob()
accepte un générique TypeScript si vous savez exactement ce que contient un type de fichier non reconnu.
Astro.props
Titre de la section Astro.propsAstro.props
est un objet contenant toutes les valeurs qui ont été transmises en tant qu’attributs de composant. Les composants de mise en page pour les fichiers .md
et .mdx
reçoivent les valeurs de frontmatter comme props.
Astro.params
Titre de la section Astro.paramsAstro.params
est un objet contenant les valeurs des segments de routes dynamiques correspondant à cette requête.
Dans les versions statiques, il s’agira des params
renvoyés par getStaticPaths()
utilisés pour le pré-rendu des routes dynamiques.
Dans les versions SSR, il peut s’agir de n’importe quelle valeur correspondant aux segments de chemin dans le modèle de route dynamique.
Voir aussi : params
Astro.request
Titre de la section Astro.requestType : Request
Astro.request
est un objet Request standard. Il peut être utilisé pour obtenir les propriétés url
, headers
, method
, et même le corps de la requête.
Voir aussi : Astro.url
Avec l’option par défaut output: 'static'
, Astro.request.url
ne contient pas de paramètres de recherche, comme ?foo=bar
, car il n’est pas possible de les déterminer à l’avance lors des constructions statiques. Cependant, en mode output: 'server'
, Astro.request.url
contient les paramètres de recherche car ils peuvent être déterminés à partir d’une requête du serveur.
Astro.response
Titre de la section Astro.responseType : ResponseInit & { readonly headers: Headers }
Astro.response
est un objet ResponseInit
standard. Il a la structure suivante.
status
: Le code de statut numérique de la réponse, par exemple200
.statusText
: Le message de statut associé au code de statut, par exemple'OK'
.headers
: Une instanceHeaders
que vous pouvez utiliser pour définir les en-têtes HTTP de la réponse.
Astro.response
est utilisé pour définir le status
, le statusText
et les headers
de la réponse d’une page.
Ou de définir un en-tête :
Astro.cookies
Titre de la section Astro.cookiesType : AstroCookies
astro@1.4.0
Astro.cookies
contient des utilitaires pour lire et manipuler les cookies en mode rendu à la demande.
Type : (key: string, options?: AstroCookieGetOptions) => AstroCookie | undefined
Obtient le cookie sous la forme d’un objet AstroCookie
, qui contient la value
et des fonctions utilitaires pour convertir le cookie en types autres que des chaînes de caractères.
Type : (key: string, options?: AstroCookieGetOptions) => boolean
Détermine si ce cookie existe. Si le cookie a été défini via Astro.cookies.set()
cela retournera true
, sinon cela vérifiera les cookies dans Astro.request
.
Type : (key: string, value: string | object, options?: AstroCookieSetOptions) => void
Fixe le cookie key
à la valeur donnée. Ceci tentera de convertir la valeur du cookie en une chaîne de caractères. Les options permettent de définir les caractéristiques du cookie, comme maxAge
ou httpOnly
.
Type : (key: string, options?: AstroCookieDeleteOptions) => void
Invalide un cookie en fixant la date d’expiration dans le passé (0 en temps Unix).
Une fois qu’un cookie est “supprimé” (expiré), Astro.cookies.has()
retournera false
et Astro.cookies.get()
retournera un AstroCookie
avec une valeur
de undefined
. Les options disponibles lors de la suppression d’un cookie sont : domain
, path
, httpOnly
, sameSite
, et secure
.
Type : (cookies: AstroCookies) => void
Fusionne une nouvelle instance AstroCookies
dans l’instance actuelle. Tous les nouveaux cookies seront ajoutés à l’instance actuelle et tous les cookies portant le même nom remplaceront les valeurs existantes.
headers
Titre de la section headersType : () => Iterator<string>
Obtient les valeurs de l’en-tête Set-Cookie
qui seront envoyées avec la réponse.
AstroCookie
Titre de la section AstroCookieL’obtention d’un cookie via Astro.cookies.get()
renvoie un type AstroCookie
. Il a la structure suivante.
Type : string
La valeur brute de la chaîne du cookie.
Type : () => Record<string, any>
Analyse la valeur du cookie via JSON.parse()
, retournant un objet. Génère une erreur si la valeur du cookie n’est pas un JSON valide.
Type : () => number
Analyse la valeur du cookie en tant que nombre. Renvoie NaN s’il ne s’agit pas d’un nombre valide.
boolean
Titre de la section booleanType : () => boolean
Convertit la valeur du cookie en un booléen.
AstroCookieGetOptions
Titre de la section AstroCookieGetOptions
Ajouté à la version :
astro@4.1.0
L’obtention d’un cookie permet également de spécifier des options via l’interface AstroCookieGetOptions
:
Type : (value: string) => string
Permet de personnaliser la manière dont un cookie est désérialisé en une valeur.
AstroCookieSetOptions
Titre de la section AstroCookieSetOptions
Ajouté à la version :
astro@4.1.0
La définition d’un cookie via Astro.cookies.set()
permet de passer un AstroCookieSetOptions
pour personnaliser la façon dont le cookie est sérialisé.
Type : string
Spécifie le domaine. Si aucun domaine n’est défini, la plupart des clients interpréteront l’application au domaine actuel.
expires
Titre de la section expiresType : Date
Spécifie la date d’expiration du cookie.
httpOnly
Titre de la section httpOnlyType : boolean
Si la valeur est true
, le cookie ne sera pas accessible côté client.
Type : number
Spécifie un nombre, en secondes, pour lequel le cookie est valide.
Type : string
Spécifie un sous-chemin du domaine dans lequel le cookie est appliqué.
sameSite
Titre de la section sameSiteType : boolean | 'lax' | 'none' | 'strict'
Spécifie la valeur de l’en-tête du cookie SameSite.
Type : boolean
Si c’est vrai, le cookie n’est défini que sur les sites https.
Type : (value: string) => string
Permet de personnaliser la façon dont le cookie est sérialisé.
Astro.redirect()
Titre de la section Astro.redirect()Type : (path: string, status?: number) => Response
Permet de rediriger vers une autre page, et optionnellement de fournir un code de réponse avec un statut HTTP comme second paramètre.
Une page (et non un composant enfant) doit retourner le résultat de Astro.redirect()
pour que la redirection ait lieu.
Pour les sites générés statiquement, cela produira une redirection client utilisant une balise <meta http-equiv="refresh">
et ne prend pas en charge les codes d’état.
Lors de l’utilisation d’un mode d’affichage à la demande, les codes d’état sont pris en charge. Astro servira les requêtes redirigées avec un statut de réponse HTTP par défaut de 302
à moins qu’un autre code ne soit spécifié.
L’exemple suivant redirige un utilisateur vers une page de connexion :
Astro.rewrite()
Titre de la section Astro.rewrite()Type : (rewritePayload: string | URL | Request) => Promise<Response>
astro@4.13.0
Permet de servir du contenu à partir d’une URL ou d’un chemin différent sans rediriger le navigateur vers une nouvelle page.
La méthode accepte soit une chaîne de caractères, soit une URL
, soit une Request
pour l’emplacement du chemin.
Utilisez une chaîne de caractères pour fournir un chemin explicite :
Utilisez un type URL
lorsque vous devez construire le chemin de l’URL pour la réécriture. L’exemple suivant affiche le chemin parent d’une page en créant une nouvelle URL à partir du chemin relatif "../"
:
Utilisez un type Request
pour un contrôle complet de la Request
envoyée au serveur pour le nouveau chemin. L’exemple suivant envoie une requête pour afficher la page parent tout en fournissant des en-têtes :
Astro.url
Titre de la section Astro.urlType : URL
astro@1.0.0-rc
Un objet URL construit à partir de la chaîne d’URL courante Astro.request.url
. Utile pour interagir avec les propriétés individuelles de l’URL de la requête, comme le chemin et l’origine.
Equivalent à new URL(Astro.request.url)
.
Astro.url
aura pour valeur localhost
en mode dev pour les sites statiques quand site n’est pas configuré et pour les sites rendus à la demande utilisant la sortie server
ou hybrid
.
Vous pouvez également utiliser Astro.url
pour créer de nouvelles URL en le passant comme argument à [new URL()
] (https://developer.mozilla.org/fr/docs/Web/API/URL).
Astro.clientAddress
Titre de la section Astro.clientAddressType : string
astro@1.0.0-rc
Spécifie l’adresse IP de la requête. Cette propriété n’est disponible que lors de la construction pour SSR (server-side rendering) et ne doit pas être utilisée pour les sites statiques.
Astro.site
Titre de la section Astro.siteType : URL | undefined
Astro.site
retourne une URL
faite à partir de site
dans votre configuration Astro. Si site
n’est pas défini dans votre configuration Astro, Astro.site
ne sera pas défini.
Astro.generator
Titre de la section Astro.generatorType : string
astro@1.0.0
Astro.generator
est un moyen pratique d’ajouter une balise <meta name="generator">
avec votre version actuelle d’Astro. Elle suit le format "Astro v1.x.x"
.
Astro.slots
Titre de la section Astro.slotsAstro.slots
contient des fonctions utilitaires pour modifier les enfants d’un composant Astro.
Astro.slots.has()
Titre de la section Astro.slots.has()Type : (slotName: string) => boolean
Vous pouvez vérifier si le contenu d’un slot spécifique existe avec Astro.slots.has()
. Cela peut être utile lorsque vous voulez envelopper le contenu d’un slot, mais que vous ne voulez afficher les éléments de l’enveloppe que lorsque le slot est utilisé.
Astro.slots.render()
Titre de la section Astro.slots.render()Type : (slotName: string, args?: any[]) => Promise<string>
Vous pouvez afficher de manière asynchrone le contenu d’un slot en une chaîne de caractères HTML en utilisant Astro.slots.render()
.
Ceci est pour les cas d’utilisation avancés ! Dans la plupart des cas, il est plus simple d’afficher le contenu des slots avec l’élément <slot />
.
Astro.slots.render()
accepte optionnellement un second argument : un tableau de paramètres qui sera transmis à tous les enfants de la fonction. Cela peut être utile pour les composants utilitaires personnalisés.
Par exemple, ce composant <Shout />
convertit sa propriété message
en majuscules et le transmet au slot par défaut :
Une fonction de callback passée comme un enfant de <Shout />
recevra le paramètre message
tout en majuscules :
Les fonctions de rappel peuvent être transmises à des emplacements nommés à l’intérieur d’une balise d’élément HTML enveloppante avec un attribut slot
. Cet élément est uniquement utilisé pour transférer la fonction de rappel à un emplacement nommé et ne sera pas rendu sur la page.
Utilisez un élément HTML standard pour la balise d’encapsulation ou toute balise en minuscules (par exemple <fragment>
au lieu de <Fragment />
) qui ne sera pas interprété comme un composant. N’utilisez pas l’élément HTML <slot>
car il sera interprété comme un slot Astro.
Astro.self
Titre de la section Astro.selfAstro.self
permet aux composants Astro d’être appelés de manière récursive. Ce comportement vous permet d’afficher un composant Astro à partir de lui-même en utilisant <Astro.self>
dans le modèle du composant. Cela peut être utile pour itérer sur de grands magasins de données et des structures de données imbriquées.
Ce composant pourrait alors être utilisé comme suit :
Et afficherait le code HTML comme suit :
Astro.locals
Titre de la section Astro.locals
Ajouté à la version :
astro@2.4.0
Astro.locals
est un objet contenant toutes les valeurs de l’objet context.locals
d’un middleware. Utilisez-le pour accéder aux données retournées par le middleware dans vos fichiers .astro
.
Astro.preferredLocale
Titre de la section Astro.preferredLocaleType : string | undefined
astro@3.5.0
Astro.preferredLocale
est une valeur calculée qui représente la locale préférée de l’utilisateur.
Elle est calculée en vérifiant les locales configurées dans votre tableau i18n.locales
et les locales supportées par le navigateur de l’utilisateur via l’en-tête Accept-Language
. Cette valeur est undefined
si aucune correspondance n’existe.
Cette propriété n’est disponible que lors de la construction pour SSR (server-side rendering) et ne devrait pas être utilisée pour les sites statiques.
Astro.preferredLocaleList
Titre de la section Astro.preferredLocaleListType : string[] | undefined
astro@3.5.0
Astro.preferredLocaleList
représente le tableau de toutes les locales qui sont à la fois demandées par le navigateur et supportées par votre site web. Cela produit une liste de toutes les langues compatibles entre votre site et votre visiteur.
Si aucune des langues demandées par le navigateur n’est trouvée dans votre tableau de langues, la valeur est []
: vous ne supportez aucune des langues préférées de votre visiteur.
Si le navigateur ne spécifie aucune langue préférée, alors cette valeur sera i18n.locales
: toutes les langues supportées seront considérées comme préférées par un visiteur qui n’a pas de préférences.
Cette propriété n’est disponible que pour l’affichage côté serveur (SSR) et ne doit pas être utilisée pour les sites statiques.
Astro.currentLocale
Titre de la section Astro.currentLocaleType : string | undefined
astro@3.5.6
La locale calculée à partir de l’URL courante, en utilisant la syntaxe spécifiée dans votre configuration locales
. Si l’URL ne contient pas de préfixe /[locale]/
, alors la valeur sera par défaut i18n.defaultLocale
.
Contexte du point de terminaison
Titre de la section Contexte du point de terminaisonLes fonctions de points de terminaisons reçoivent un objet contextuel comme premier paramètre. Il reflète la plupart des propriétés globales de Astro
.
context.params
Titre de la section context.paramscontext.params
est un objet contenant les valeurs des segments de routes dynamiques correspondant à cette requête.
Dans les versions statiques, il s’agira des params
retournés par getStaticPaths()
utilisés pour le pré-rendement des routes dynamiques.
Dans les versions SSR, il peut s’agir de n’importe quelle valeur correspondant aux segments de chemin dans le modèle de route dynamique.
Voir aussi : params
context.props
Titre de la section context.props
Ajouté à la version :
astro@1.5.0
context.props
est un objet contenant toutes les propriétés (props
) transmises par getStaticPaths()
. Comme getStaticPaths()
n’est pas utilisé lors de la construction pour SSR (rendu côté serveur), context.props
n’est disponible que dans les constructions statiques.
Voir aussi : Transfert de données avec props
context.request
Titre de la section context.requestType : Request
Un objet Request standard. Il peut être utilisé pour obtenir les propriétés url
, headers
, method
, et même le corps de la requête.
Voir aussi : Astro.request
context.cookies
Titre de la section context.cookiesType : AstroCookies
context.cookies
contient des utilitaires pour lire et manipuler les cookies.
Voir aussi : Astro.cookies
context.url
Titre de la section context.urlType : URL
astro@1.5.0
Un objet URL construit à partir de la valeur de la chaîne URL context.request.url
actuelle.
Voir aussi : Astro.url
context.clientAddress
Titre de la section context.clientAddressType : string
astro@1.5.0
Spécifie l’adresse IP de la requête. Cette propriété n’est disponible que lors de la construction pour SSR (rendu côté serveur) et ne doit pas être utilisée pour les sites statiques.
Voir aussi : Astro.clientAddress
context.site
Titre de la section context.siteType : URL | undefined
astro@1.5.0
context.site
renvoie une URL
générée à partir de site
dans votre configuration Astro. Si elle n’est pas définie, elle retournera une URL générée à partir de localhost
.
Voir aussi : Astro.site
context.generator
Titre de la section context.generatorType : string
astro@1.5.0
context.generator
est un moyen pratique d’indiquer la version d’Astro que votre projet utilise. Il suit le format "Astro v1.x.x"
.
Voir aussi : Astro.generator
context.redirect()
Titre de la section context.redirect()Type : (path: string, status?: number) => Response
astro@1.5.0
context.redirect()
renvoie un objet Response qui vous permet de rediriger vers une autre page. Cette fonction n’est disponible que lors de la construction pour SSR (rendu côté serveur) et ne doit pas être utilisée pour les sites statiques.
Voir aussi : Astro.redirect()
context.rewrite()
Titre de la section context.rewrite()Type : (rewritePayload: string | URL | Request) => Promise<Response>
astro@4.13.0
Permet de servir du contenu à partir d’une URL ou d’un chemin différent sans rediriger le navigateur vers une nouvelle page.
La méthode accepte soit une chaîne de caractères, soit une URL
, soit une Request
pour l’emplacement du chemin.
Utilisez une chaîne de caractères pour fournir un chemin explicite :
Utilisez un type URL
lorsque vous devez construire le chemin de l’URL pour la réécriture. L’exemple suivant affiche le chemin parent d’une page en créant une nouvelle URL à partir du chemin relatif "../"
:
Utilisez un type Request
pour un contrôle complet de la Request
envoyée au serveur pour le nouveau chemin. L’exemple suivant envoie une requête pour afficher la page parent tout en fournissant des en-têtes :
Voir aussi : Astro.rewrite()
context.locals
Titre de la section context.locals
Ajouté à la version :
astro@2.4.0
context.locals
est un objet utilisé pour stocker et accéder à des informations arbitraires pendant le cycle de vie d’une requête.
Les fonctions du middleware peuvent lire et écrire les valeurs de context.locals
:
Les points de terminaison de l’API ne peuvent lire que des informations provenant de context.locals
:
Voir aussi : Astro.locals
getStaticPaths()
Titre de la section getStaticPaths()Type : (options: GetStaticPathsOptions) => Promise<GetStaticPathsResult> | GetStaticPathsResult
Si une page utilise des paramètres dynamiques dans le nom de fichier, ce composant devra exporter une fonction getStaticPaths()
.
Cette fonction est nécessaire car Astro est un constructeur de sites statiques. Cela signifie que l’ensemble de votre site est construit à l’avance. Si Astro ne sait pas générer une page au moment de la construction, vos utilisateurs ne la verront pas lorsqu’ils visiteront votre site.
La fonction getStaticPaths()
doit renvoyer un tableau d’objets pour déterminer les chemins qui seront pré-rendus par Astro.
Elle peut également être utilisée dans les points de terminaison de fichiers statiques pour le routage dynamique.
La fonction getStaticPaths()
s’exécute dans sa propre portée isolée une seule fois, avant le chargement de toute page. Par conséquent, vous ne pouvez pas faire référence à quoi que ce soit à partir de sa portée parentale, à l’exception des importations de fichiers. Le compilateur vous avertira si vous ne respectez pas cette exigence.
La clé params
de chaque objet retourné indique à Astro les routes à construire. Les paramètres retournés doivent correspondre aux paramètres dynamiques et aux paramètres de repos définis dans le chemin de fichier de votre composant.
Les params
sont encodés dans l’URL, donc seules les chaînes de caractères sont supportées comme valeurs. La valeur de chaque objet params
doit correspondre aux paramètres utilisés dans le nom de la page.
Par exemple, supposons que vous ayez une page à src/pages/posts/[id].astro
. Si vous exportez getStaticPaths
depuis cette page et que vous renvoyez les chemins suivants :
Astro générera alors statiquement posts/1
, posts/2
, et posts/3
au moment de la construction.
Transfert de données avec props
Titre de la section Transfert de données avec propsPour passer des données supplémentaires à chaque page générée, vous pouvez également définir une valeur props
sur chaque objet path retourné. Contrairement à params
, props
n’est pas encodé dans l’URL et n’est donc pas limité à des chaînes de caractères.
Par exemple, supposons que vous génériez des pages basées sur des données récupérées à partir d’une API distante. Vous pouvez passer l’objet de données complet au composant page à l’intérieur de getStaticPaths
:
Vous pouvez également passer un tableau régulier, ce qui peut être utile pour générer ou créer une liste connue d’itinéraires.
Astro va alors générer statiquement posts/1
et posts/2
au moment de la construction en utilisant le composant page dans pages/posts/[id].astro
. La page peut référencer ces données en utilisant Astro.props
:
paginate()
Titre de la section paginate()La pagination est un cas d’utilisation courant pour les sites web qu’Astro supporte nativement via la fonction paginate()
. La fonction paginate()
génère automatiquement le tableau à renvoyer par getStaticPaths()
qui crée une URL pour chaque page de la collection paginée. Le numéro de page sera passé en tant que paramètre, et les données de la page seront passées en tant que propriété page
.
paginate()
suppose un nom de fichier [page].astro
ou [...page].astro
. Le paramètre page
devient le numéro de page dans votre URL :
/posts/[page].astro
générerait les URL suivants/posts/1
,/posts/2
,/posts/3
, etc./posts/[...page].astro
générerait les URL suivants/posts
,/posts/2
,/posts/3
, etc.
paginate()
a les arguments suivants :
pageSize
- Nombre d’éléments affichés par page (10
par défaut)params
- Envoi de paramètres supplémentaires pour la création de routes dynamiquesprops
- Envoi de propriétés supplémentaires pour qu’elles soient disponibles sur chaque page
La propriété page
de pagination
Titre de la section La propriété page de paginationLa pagination va passer une propriété page
à chaque page affichée qui représente une seule page de données dans la collection paginée. Cela inclut les données que vous avez paginées (page.data
) ainsi que les métadonnées de la page (page.url
, page.start
, page.end
, page.total
, etc). Ces métadonnées sont utiles pour des choses comme un bouton « Page suivante » ou un message « Pages 1-10 sur 100 ».
page.data
Titre de la section page.dataType : Array
Tableau des données renvoyées par data()
pour la page en cours.
page.start
Titre de la section page.startType : number
Index du premier élément de la page courante, en commençant par 0
. (par exemple, si pageSize : 25
, ce sera 0
sur la page 1, 25
sur la page 2, etc.)
page.end
Titre de la section page.endType : number
Index du dernier élément de la page en cours.
page.size
Titre de la section page.sizeType : number
Par défaut : 10
Nombre d’éléments par page.
page.total
Titre de la section page.totalType : number
Le nombre total d’éléments sur toutes les pages.
page.currentPage
Titre de la section page.currentPageType : number
Le numéro de la page actuelle, en commençant par 1
.
page.lastPage
Titre de la section page.lastPageType : number
Le nombre total de pages.
page.url.current
Titre de la section page.url.currentType : string
Obtenir l’URL de la page actuelle (utile pour les URL canoniques).
page.url.prev
Titre de la section page.url.prevType : string | undefined
Récupère l’URL de la page précédente (sera undefined
si à la page 1). Si une valeur est définie pour base
, le chemin de la base est ajouté à l’URL.
page.url.next
Titre de la section page.url.nextType : string | undefined
Récupère l’URL de la page suivante (sera undefined
s’il n’y a plus de pages). Si une valeur est définie pour base
, le chemin de la base est ajouté à l’URL.
page.url.first
Titre de la section page.url.firstType : string | undefined
astro@4.12.0
Récupère l’URL de la première page (sera undefined
si c’est la page 1). Si une valeur est définie pour base
, le chemin de la base est ajouté à l’URL.
page.url.last
Titre de la section page.url.lastType : string | undefined
astro@4.12.0
Récupère l’URL de la dernière page (sera undefined
s’il n’y a plus de pages). Si une valeur est définie pour base
, le chemin de la base est ajouté à l’URL.
import.meta
Titre de la section import.metaTous les modules ESM incluent une propriété import.meta
. Astro ajoute import.meta.env
via Vite.
import.meta.env.SSR
peut être utilisée pour identifier si le rendu se fait côté serveur. Parfois, vous souhaiterez peut-être une logique différente, comme un composant qui ne doit être restitué que dans le client :
Images (astro:assets
)
Titre de la section Images (astro:assets)getImage()
Titre de la section getImage()Type : (options: UnresolvedImageTransform) => Promise<GetImageResult>
getImage()
s’appuie sur des API serveur uniquement et interrompt la construction lorsqu’il est utilisé sur le client.
La fonction getImage()
est prévue pour générer des images destinées à être utilisées ailleurs que directement en HTML, par exemple dans une route d’API. Elle vous permet également de créer votre propre composant <Image />
personnalisé.
getImage()
prend un objet d’options avec les mêmes propriétés que le composant Image (à l’exception de alt
).
Il renvoie un objet avec le type suivant :
Collections de contenu (astro:content
)
Titre de la section Collections de contenu (astro:content)
Ajouté à la version :
astro@2.0.0
Les collections de contenu proposent des API pour configurer et interroger vos documents Markdown ou MDX dans src/content/
. Pour connaître les fonctionnalités et les exemples d’utilisation, consultez notre guide sur les collections de contenu.
defineCollection()
Titre de la section defineCollection()Type : (input: CollectionConfig) => CollectionConfig
defineCollection()
est un utilitaire pour configurer une collection dans un fichier src/content/config.*
.
Cette fonction accepte les propriétés suivantes :
Type : 'content' | 'data'
Par défaut : 'content'
astro@2.5.0
type
est une chaîne de caractères qui définit le type d’entrées stockées dans une collection :
'content'
- pour les formats de création de contenu comme Markdown (.md
), MDX (.mdx
) ou Markdoc (.mdoc
)'data'
- pour les formats de données uniquement comme JSON (.json
) ou YAML (.yaml
)
Cela signifie que les collections ne peuvent pas stocker un mélange de contenus et de formats de données. Vous devez diviser ces entrées en collections distinctes par type.
Type : ZodType | (context: SchemaContext) => ZodType
schema
est un objet Zod facultatif pour configurer le type et la forme du document pour une collection. Chaque valeur doit utiliser un validateur Zod.
Consultez le guide Collections de contenu pour un exemple d’utilisation.
reference()
Titre de la section reference()Type : (collection: string) => ZodEffects<ZodString, { collection, id: string } | { collection, slug: string }>
astro@2.5.0
La fonction reference()
est utilisée dans la configuration du contenu pour définir une relation, ou une « référence », entre une collection et une autre. Elle accepte un nom de collection et valide le ou les identifiants d’entrée spécifiés dans le frontmatter de votre contenu ou dans votre fichier de données.
Cet exemple définit les références d’un auteur de blog à la collection authors
et un tableau d’articles associés à la même collection blog
:
Consultez le guide Collections de contenu pour un exemple d’utilisation.
getCollection()
Titre de la section getCollection()Type : (collection: string, filter?: (entry: CollectionEntry<collection>) => boolean) => CollectionEntry<collection>[]
getCollection()
est une fonction qui récupère une liste d’entrées de collection de contenu par nom de collection.
Il renvoie tous les éléments de la collection par défaut et accepte une fonction facultative filter
pour affiner les propriétés d’entrée. Cela vous permet d’interroger uniquement certains éléments d’une collection en fonction de id
, slug
ou des valeurs du frontmatter via l’objet data
.
Consultez le guide Collections de contenu pour un exemple d’utilisation.
getEntry()
Titre de la section getEntry()
Ajouté à la version :
astro@2.5.0
Types :
(collection: string, contentSlugOrDataId: string) => CollectionEntry<collection>
({ collection: string, id: string }) => CollectionEntry<collection>
({ collection: string, slug: string }) => CollectionEntry<collection>
getEntry()
est une fonction qui récupère une seule entrée de collection en utilisant le nom de la collection et soit l’entrée id
(pour les collections utilisant type: 'data'
) soit l’entrée slug
(pour les collections utilisant type: 'content'
). getEntry()
peut également être utilisée pour obtenir des entrées référencées pour accéder aux propriétés data
, body
ou render()
:
Consultez le guide Collections de contenu pour des exemples d’interrogation des entrées de collection.
getEntries()
Titre de la section getEntries()
Ajouté à la version :
astro@2.5.0
Types :
(Array<{ collection: string, id: string }>) => Array<CollectionEntry<collection>>
(Array<{ collection: string, slug: string }>) => Array<CollectionEntry<collection>>
getEntries()
est une fonction qui récupère plusieurs entrées dans une même collection. Ceci est utile pour renvoyer un tableau d’entrées référencées pour accéder à leurs propriétés data
, body
et render()
associées.
getEntryBySlug()
Titre de la section getEntryBySlug()Type : (collection: string, slug: string) => Promise<CollectionEntry<collection>>
Utilisez la fonction getEntry()
pour interroger les entrées de contenu. Elle accepte les mêmes arguments que getEntryBySlug()
et prend en charge les requêtes par id
pour les collections JSON ou YAML.
getEntryBySlug()
est une fonction qui récupère une seule entrée de collection en utilisant le nom de la collection et le slug
d’une entrée.
Consultez le guide Collections de contenu pour un exemple d’utilisation.
getDataEntryById()
Titre de la section getDataEntryById()Type : (collection: string, id: string) => Promise<CollectionEntry<collection>>
astro@2.5.0
Utilisez la fonction getEntry()
pour interroger les entrées de données. Cela accepte les mêmes arguments que getDataEntryById()
et prend en charge l’interrogation par slug
pour les formats de création de contenu comme Markdown.
getDataEntryById()
est une fonction qui récupère une seule entrée de collection par nom de collection et par id
d’entrée.
Type des entrées de collection
Titre de la section Type des entrées de collectionLes fonctions de requête, notamment getCollection()
, getEntry()
et getEntries()
renvoient chacune des entrées avec le type CollectionEntry
. Ce type est disponible en tant qu’utilitaire depuis astro:content
:
Le type CollectionEntry<TCollectionName>
est un objet avec les valeurs suivantes. TCollectionName
est le nom de la collection que vous interrogez (par exemple CollectionEntry<'blog'>
).
Disponible pour : les collections utilisant type: 'content'
ou type: 'data'
Exemple de types :
- collections de contenu :
'entry-1.md' | 'entry-2.md' | ...
- collections de données :
'author-1' | 'author-2' | ...
Un identifiant unique utilisant le chemin du fichier relatif à src/content/[collection]
. Énumère toutes les valeurs de chaîne de caractères possibles en fonction des chemins d’accès au fichier d’entrée de collection. Notez que les collections définies comme type: 'content'
incluent l’extension de fichier dans leur ID, contrairement aux collections définies comme type: 'data'
.
collection
Titre de la section collectionDisponible pour : les collections utilisant type: 'content'
ou type: 'data'
Exemple de type : 'blog' | 'authors' | ...
Le nom d’un dossier placé à la racine de src/content/
et dans lequel se trouvent les entrées. Il s’agit du nom utilisé pour référencer la collection dans votre schéma et dans les fonctions de requête.
Disponible pour : les collections utilisant type: 'content'
ou type: 'data'
Type : CollectionSchema<TCollectionName>
Un objet de propriétés provenant du frontmatter et déduit de votre schéma de collection (voir la référence defineCollection()
). La valeur par défaut est any
si aucun schéma n’est configuré.
Disponible pour : les collections utilisant type: 'content'
seulement
Exemple de type : 'entry-1' | 'entry-2' | ...
Un slug d’URL préparé pour les documents Markdown ou MDX. La valeur par défaut est id
sans l’extension de fichier, mais peut être remplacée en définissant la propriété slug
dans le frontmatter d’un fichier.
Disponible pour : les collections utilisant type: 'content'
seulement
Type : string
Une chaîne de caractères contenant le corps brut et non compilé du document Markdown ou MDX.
render()
Titre de la section render()Disponible pour : les collections utilisant type: 'content'
seulement
Type : () => Promise<RenderedEntry>
Une fonction pour compiler un document Markdown ou MDX donné à afficher. Cela renvoie les propriétés suivantes :
<Content />
- Un composant utilisé pour restituer le contenu du document dans un fichier Astro.headings
- Une liste générée de titres, reflétant l’utilitairegetHeadings()
d’Astro sur les importations Markdown et MDX.remarkPluginFrontmatter
- L’objet frontmatter modifié après l’application de plugins Remark or Rehype. Définit sur le typeany
.
Consultez le guide Collections de contenu pour un exemple d’utilisation.
Autres types associés aux collections de contenu
Titre de la section Autres types associés aux collections de contenuLe module astro:content
exporte également les types suivants pour les utiliser dans votre projet Astro :
CollectionKey
Titre de la section CollectionKey
Ajouté à la version :
astro@3.1.0
Une union de chaînes de caractères de tous les noms de collections définis dans votre fichier src/content/config.*
. Ce type peut être utile lors de la définition d’une fonction générique qui accepte n’importe quel nom de collection.
ContentCollectionKey
Titre de la section ContentCollectionKey
Ajouté à la version :
astro@3.1.0
Une union de chaînes de caractères de tous les noms des collections type: 'content'
définies dans votre fichier src/content/config.*
.
DataCollectionKey
Titre de la section DataCollectionKey
Ajouté à la version :
astro@3.1.0
Une union de chaînes de caractères de tous les noms de la collection type: 'data'
définie dans votre fichier src/content/config.*
.
SchemaContext
Titre de la section SchemaContextL’objet context
que defineCollection
utilise pour la forme de fonction du schema
. Ce type peut être utile lors de la création de schémas réutilisables pour plusieurs collections.
Cela inclut la propriété suivante :
image
- L’assistant de schémaimage()
qui vous permet d’utiliser des images locales dans les collections de contenu
Middleware (astro:middleware
)
Titre de la section Middleware (astro:middleware)
Ajouté à la version :
astro@2.6.0
Le middleware vous permet d’intercepter les requêtes et les réponses et d’injecter des comportements de manière dynamique chaque fois qu’une page ou un point de terminaison est sur le point d’être rendu. Pour les fonctionnalités et les exemples d’utilisation, consultez notre guide Middleware.
onRequest()
Titre de la section onRequest()Type : (context: APIContext, next: MiddlewareNext) => Promise<Response> | Response | Promise<void> | void
Une fonction exportée requise depuis src/middleware.js
qui sera appelée avant le rendu de chaque page ou route API. Elle reçoit deux arguments : context et next(). onRequest()
doit renvoyer une réponse (Response
) : soit directement, soit en appelant next()
.
context
Titre de la section contextType : APIContext
Le premier argument de onRequest()
est un objet de contexte. Il reflète de nombreuses propriétés globales d’Astro
.
Type : (rewritePayload?: string | URL | Request) => Promise<Response>
Le deuxième argument de onRequest()
est une fonction qui appelle tous les middlewares suivants de la chaîne et renvoie une Response
. Par exemple, un autre middleware pourrait modifier le corps HTML d’une réponse et attendre le résultat de next()
permettrait à votre middleware de répondre à ces modifications.
Depuis Astro v4.13.0, next()
accepte un paramètre de chemin d’URL facultatif sous la forme d’une chaîne de caractères, d’une URL
ou d’un objet Request
pour réécrire la requête actuelle sans déclencher une nouvelle phase de rendu.
sequence()
Titre de la section sequence()Type : (...handlers: MiddlewareHandler[]) => MiddlewareHandler
Une fonction qui accepte les fonctions middleware comme arguments et les exécutera dans l’ordre dans lequel elles sont transmises.
createContext()
Titre de la section createContext()Type : (context: CreateContext) => APIContext
astro@2.8.0
Une API de bas niveau pour créer un objet APIContext
à transmettre à une fonction onRequest()
du middleware Astro.
Cette fonction peut être utilisée par les intégrations/adaptateurs pour exécuter par programmation le middleware Astro.
trySerializeLocals()
Titre de la section trySerializeLocals()Type : (value: unknown) => string
astro@2.8.0
Une API de bas niveau qui prend n’importe quelle valeur et tente d’en renvoyer une version sérialisée (une chaîne de caractères). Si la valeur ne peut pas être sérialisée, la fonction générera une erreur d’exécution.
Internationalisation (astro:i18n
)
Titre de la section Internationalisation (astro:i18n)
Ajouté à la version :
astro@3.5.0
Ce module fournit des fonctions pour vous aider à créer des URL à l’aide des paramètres régionaux configurés de votre projet.
La création de routes pour votre projet avec le routeur i18n dépendra de certaines valeurs de configuration que vous avez définies et qui affectent les routes de vos pages. Lorsque vous créez des routes avec ces fonctions, veillez à prendre en compte vos paramètres individuels pour :
Notez également que les URL renvoyées créées par ces fonctions pour votre defaultLocale
refléteront votre configuration i18n.routing
.
Pour les fonctionnalités et les exemples d’utilisation, consultez notre guide de routage i18n.
getRelativeLocaleUrl()
Titre de la section getRelativeLocaleUrl()Type : (locale: string, path?: string, options?: GetLocaleOptions) => string
Utilisez cette fonction pour récupérer un chemin relatif pour des paramètres régionaux. Si les paramètres régionaux n’existent pas, Astro renvoie une erreur.
getAbsoluteLocaleUrl()
Titre de la section getAbsoluteLocaleUrl()Type : (locale: string, path: string, options?: GetLocaleOptions) => string
Utilisez cette fonction pour récupérer un chemin absolu pour des paramètres régionaux lorsque [site
] a une valeur. Si [site
] n’est pas configuré, la fonction renvoie une URL relative. Si les paramètres régionaux n’existent pas, Astro renvoie une erreur.
getRelativeLocaleUrlList()
Titre de la section getRelativeLocaleUrlList()Type : (path?: string, options?: GetLocaleOptions) => string[]
Utilisez cette fonction de la même manière que getRelativeLocaleUrl
pour renvoyer une liste de chemins relatifs pour tous les paramètres régionaux.
getAbsoluteLocaleUrlList()
Titre de la section getAbsoluteLocaleUrlList()Type : (path?: string, options?: GetLocaleOptions) => string[]
Utilisez cette fonction de la même manière que getAbsoluteLocaleUrl
pour renvoyer une liste de chemins absolus pour tous les paramètres régionaux.
getPathByLocale()
Titre de la section getPathByLocale()Type : (locale: string) => string
Une fonction qui renvoie le chemin (path
) associé à un ou plusieurs codes
lorsque les chemins de paramètres régionaux personnalisés sont configurés.
getLocaleByPath()
Titre de la section getLocaleByPath()Type : (path: string) => string
Une fonction qui renvoie le code
associé à un chemin (path
) de paramètres régionaux.
redirectToDefaultLocale()
Titre de la section redirectToDefaultLocale()Type : (context: APIContext, statusCode?: ValidRedirectStatus) => Promise<Response>
astro@4.6.0
Disponible uniquement lorsque i18n.routing
est défini sur "manual"
Une fonction qui renvoie une Response
qui redirige vers les paramètres régionaux utilisés par défaut (defaultLocale
). Il accepte un code d’état de redirection valide facultatif.
redirectToFallback()
Titre de la section redirectToFallback()Type : (context: APIContext, response: Response) => Promise<Response>
astro@4.6.0
Disponible uniquement lorsque i18n.routing
est défini sur "manual"
Une fonction qui vous permet d’utiliser votre configuration i18n.fallback
dans votre propre middleware.
notFound()
Titre de la section notFound()Type : (context: APIContext, response?: Response) => Promise<Response> | undefined
astro@4.6.0
Disponible uniquement lorsque i18n.routing
est défini sur "manual"
Utilisez cette fonction dans votre middleware de routage pour renvoyer une 404 lorsque :
- le chemin actuel n’est pas une racine, par exemple
/
ou/<base>
- l’URL ne contient pas de paramètres régionaux
Lorsqu’une Response
est transmise, la nouvelle Response
émise par cette fonction contiendra les mêmes en-têtes que la réponse d’origine.
middleware()
Titre de la section middleware()Type : (options: { prefixDefaultLocale: boolean, redirectToDefaultLocale: boolean }) => MiddlewareHandler
astro@4.6.0
Disponible uniquement lorsque i18n.routing
est défini sur "manual"
Une fonction qui vous permet de créer par programmation le middleware i18n d’Astro.
Ceci est utile lorsque vous souhaitez utiliser la logique i18n par défaut tout en ajoutant quelques exceptions pour votre site.
requestHasLocale()
Titre de la section requestHasLocale()Type : (context: APIContext) => boolean
astro@4.6.0
Disponible uniquement lorsque i18n.routing
est défini sur "manual"
Vérifie si l’URL actuelle contient des paramètres régionaux configurés. En interne, cette fonction utilisera APIContext#url.pathname
.
Composants intégrés
Titre de la section Composants intégrésAstro comprend plusieurs composants intégrés que vous pouvez utiliser dans vos projets. Tous les composants intégrés sont disponibles dans les fichiers .astro
via import {} from 'astro:components';
.
Vous pouvez référencer les Props
de ces composants à l’aide de l’utilitaire ComponentProp
.
Ce composant fournit une coloration syntaxique pour les blocs de code au moment de la construction (aucun JavaScript côté client n’est inclus). Le composant est alimenté en interne par Shiki et prend en charge tous les thèmes et langues populaires. De plus, vous pouvez ajouter vos thèmes, langues, transformateurs et couleurs par défaut personnalisés en les transmettant respectivement aux attributs theme
, lang
, transformers
et defaultColor
.
Ce composant n’hérite pas des paramètres de votre configuration Shiki. Vous devrez les définir à l’aide des propriétés du composant.
Transformateurs
Titre de la section Transformateurs
Ajouté à la version :
astro@4.11.0
Les Transformateurs de Shiki peuvent éventuellement être appliqués au code en les transmettant via la propriété transformers
sous forme de tableau. Depuis Astro v4.14.0, vous pouvez également fournir une chaîne de caractères à l’attribut meta
de Shiki pour transmettre des options aux transformateurs.
Notez que transformers
n’applique que les classes et vous devez fournir vos propres règles CSS pour cibler les éléments de votre bloc de code.
<Fragment />
Titre de la section <Fragment />Un composant utilisé avec les directives set:*
pour restituer le contenu HTML sans aucun élément d’habillage supplémentaire :
En savoir plus sur l’utilisation de fragments dans la syntaxe Astro.
<Prism />
Titre de la section <Prism />Pour utiliser le composant de coloration Prism
, installez d’abord le package @astrojs/prism
:
Ce composant fournit une coloration syntaxique spécifique au langage pour les blocs de code en appliquant les classes CSS de Prism. Notez que vous devez fournir une feuille de style CSS Prism (ou apporter la vôtre) pour que la coloration syntaxique apparaisse ! Consultez la section Configuration de Prism pour plus de détails.
Consultez la liste des langues supportées par Prism où vous pouvez trouver l’alias correspondant à une langue. Et vous pouvez également afficher vos blocs de code Astro avec lang="astro"
!
<Image />
Titre de la section <Image />Propriétés
Titre de la section Propriétés- src (requis)
- alt (requis)
- width et height (requis pour les images dans
public/
et celles distantes) - format
- quality
- densities
- widths
En plus des propriétés ci-dessus, le composant <Image />
accepte toutes les propriétés acceptées par la balise HTML <img>
.
Pour en savoir plus, consultez le Guide des images.
<Picture />
Titre de la section <Picture />
Ajouté à la version :
astro@3.3.0
Utilisez le composant Astro intégré <Picture />
pour afficher une image réactive avec plusieurs formats et/ou tailles.
Pour en savoir plus, consultez le Guide des images.
Propriétés
Titre de la section Propriétés<Picture />
accepte toutes les propriétés du composant <Image />
en plus des suivantes :
formats
Titre de la section formatsUn tableau de formats d’image à utiliser pour les balises <source>
. Par défaut, ceci est défini sur ['webp']
.
fallbackFormat
Titre de la section fallbackFormatFormat à utiliser comme valeur de repli pour la balise <img>
. La valeur par défaut est .png
pour les images statiques, .gif
pour les images animées et .svg
pour les fichiers SVG.
pictureAttributes
Titre de la section pictureAttributesUn objet d’attributs à ajouter à la balise <picture>
. Utilisez cette propriété pour appliquer des attributs à l’élément externe <picture>
lui-même. Les attributs appliqués directement au composant <Picture />
s’appliqueront à l’élément interne <img>
, à l’exception de ceux utilisés pour la transformation d’image.
<Content />
Titre de la section <Content />Un composant générique utilisé pour restituer le contenu d’une entrée de collection de contenu.
Tout d’abord, interrogez une ou plusieurs entrées en utilisant getCollection()
ou getEntry()
. Ensuite, la fonction entry.render()
peut renvoyer le composant <Content />
à utiliser dans un modèle de fichier .astro
.
<ViewTransitions />
Titre de la section <ViewTransitions />
Ajouté à la version :
astro@2.9.0
Choisissez d’utiliser les transitions de vue sur des pages individuelles en important et en ajoutant le composant de routage <ViewTransitions />
à la balise <head>
sur chaque page souhaitée.
Découvrez comment contrôler le routeur et ajouter des directives de transition aux éléments et composants de la page.
<Debug />
Titre de la section <Debug />Ce composant fournit un moyen d’inspecter les valeurs côté client, sans aucun JavaScript.
Reference