Aller au contenu principal
Version : 2.0.0

📩 plugin-client-redirects

Plugin Docusaurus pour générer les redirections cÎté client.

Ce plugin écrirera des pages HTML supplémentaires sur votre site statique qui redirige l'utilisateur vers vos pages Docusaurus existantes avec JavaScript.

seulement en production

Ce plugin est toujours inactif en développement et uniquement actif en production car il fonctionne sur la sortie de la construction.

attention

Il est préférable d'utiliser les redirections cÎté serveur chaque fois que cela est possible.

Avant d'utiliser ce plugin, vous devez vérifier si votre fournisseur d'hébergement n'offre pas cette fonctionnalité.

Installation​

npm install --save @docusaurus/plugin-client-redirects

Configuration​

Champs acceptés :

OptionTypePar défautDescription
fromExtensionsstring[][]Les extensions Ă  retirer de la route aprĂšs redirection.
toExtensionsstring[][]Les extensions Ă  ajouter Ă  la route aprĂšs redirection.
redirectsRedirectRule[][]La liste des rĂšgles de redirection.
createRedirectsCreateRedirectsFnundefinedUn callback pour créer une rÚgle de redirection. Docusaurus interroge ce callback pour chaque chemin qu'il a créé, et utilise sa valeur de retour pour produire d'autres chemins.
remarque

Ce plugin lira Ă©galement la configuration siteConfig.onDuplicateRoutes pour configurer son niveau de journalisation lorsque plusieurs fichiers seront Ă©mis au mĂȘme endroit.

Types​

RedirectRule​

type RedirectRule = {
to: string;
from: string | string[];
};
remarque

L'idée de "from" et "to" est primordiale dans ce plugin. "From" signifie un chemin que vous voulez créer, c'est-à-dire un fichier HTML supplémentaire qui sera créé, "To" signifie un chemin vers lequel vous voulez rediriger, généralement une route que Docusaurus connaßt déjà.

C'est pourquoi vous pouvez avoir plusieurs "from" pour le mĂȘme "to" : nous allons crĂ©er plusieurs fichiers HTML qui redirigent tous vers la mĂȘme destination. A l'inverse, un "from" ne peut jamais avoir plus d'un "to" : le fichier HTML Ă©crit doit avoir une destination dĂ©terminĂ©e.

CreateRedirectsFn​

// Le paramĂštre `path` est une route que Docusaurus a dĂ©jĂ  crĂ©Ă©e. Il peut ĂȘtre vu
// comme le "to", et votre valeur de retour est le "from". Retourner une valeur falsy
// ne créera aucune page de redirection pour ce chemin particulier.
type CreateRedirectsFn = (path: string) => string[] | string | null | undefined;

Exemple de configuration​

Voici un exemple de configuration :

docusaurus.config.js
module.exports = {
plugins: [
[
'@docusaurus/plugin-client-redirects',
{
fromExtensions: ['html', 'htm'], // /myPage.html -> /myPage
toExtensions: ['exe', 'zip'], // /myAsset -> /myAsset.zip (if latter exists)
redirects: [
// /docs/oldDoc -> /docs/newDoc
{
to: '/docs/newDoc',
from: '/docs/oldDoc',
},
// Redirection depuis plusieurs anciens chemins vers le nouveau chemin
{
to: '/docs/newDoc2',
from: ['/docs/oldDocFrom2019', '/docs/legacyDocFrom2016'],
},
],
createRedirects(existingPath) {
if (existingPath.includes('/community')) {
// Redirection de /docs/team/X vers /community/X et /docs/support/X vers /community/X
return [
existingPath.replace('/community', '/docs/team'),
existingPath.replace('/community', '/docs/support'),
];
}
return undefined; // Renvoie une valeur fausse : pas de redirection créée
},
},
],
],
};