π¦ plugin-client-redirects
ν΄λΌμ΄μΈνΈ 리λ€μ΄λ νΈλ₯Ό μ²λ¦¬νκΈ° μν λνμ¬μ°λ£¨μ€ νλ¬κ·ΈμΈμ λλ€.
νλ¬κ·ΈμΈμμλ μλ°μ€ν¬λ¦½νΈλ‘ λ§λ λνμ¬μ°λ£¨μ€ νμ΄μ§λ‘ 리λ€μ΄λ νΈν μ μλλ‘ μ¬λ¬λΆμ μ μ μΈ μ¬μ΄νΈμ HTML νμ΄μ§λ₯Ό μΆκ°λ‘ λ§λλλ€.
ν΄λΉ νλ¬κ·ΈμΈμ λΉλ μ°μΆλ¬Όμμλ§ μλνκΈ° λλ¬Έμ κ°λ° μ€μλ λΉνμ±νλκ³ μ ν λΉλ μμλ§ νμ±νλ©λλ€.
κ°λ₯νλ€λ©΄ μλ² μΈ‘ 리λ€μ΄λ νΈλ₯Ό μ¬μ©νλ κ²μ κΆμ₯ν©λλ€.
νλ¬κ·ΈμΈμ μ¬μ©νκΈ° μ μ μ¬λ¬λΆμ νΈμ€νΈ μλΉμ€ μ μ²΄κ² μ΄ κΈ°λ₯μ μ§μνμ§ μλμ§ λ¨Όμ νμΈν΄λ³΄μΈμ.
μ€μΉβ
- npm
- Yarn
- pnpm
npm install --save @docusaurus/plugin-client-redirects
yarn add @docusaurus/plugin-client-redirects
pnpm add @docusaurus/plugin-client-redirects
μ€μ β
μ€μ ν μ μλ νλ
μ΅μ | νμ | κΈ°λ³Έκ° | μ€λͺ |
---|---|---|---|
fromExtensions | string[] | [] | 리λ€μ΄λ νΈ ν κ²½λ‘μμ μ κ±°ν νμ₯μμ λλ€. |
toExtensions | string[] | [] | 리λ€μ΄λ νΈ ν κ²½λ‘μ μΆκ°ν νμ₯μμ λλ€. |
redirects | RedirectRule[] | [] | 리λ€μ΄λ νΈ κ·μΉ λͺ©λ‘μ λλ€. |
createRedirects | CreateRedirectsFn | undefined | 리λ€μ΄λ νΈ κ·μΉμ λ§λ€κΈ° μν μ½λ°±μ λλ€. λνμ¬μ°λ£¨μ€λ μμ±ν λͺ¨λ κ²½λ‘μ λν΄ μ½λ°±μ μμ²νκ³ λ°νκ°μ μ¬μ©ν΄ λ λ§μ κ²½λ‘λ₯Ό μΆλ ₯ν©λλ€. |
νλ¬κ·ΈμΈμμ siteConfig.onDuplicateRoutes
μ€μ μ νμΈνκ³ μ¬λ¬ νμΌμ κ°μ μμΉλ‘ λ΄λ³΄λΌ λ λ‘κΉ
μμ€μ μ‘°μ ν©λλ€.
νμ β
RedirectRule
β
type RedirectRule = {
to: string;
from: string | string[];
};
"from"κ³Ό "to"μ κ°λ μ μ΄ νλ¬κ·ΈμΈμ ν΅μ¬μ λλ€. "From"μ μμ±_νλ €λ κ²½λ‘, μ¦ μμ±λ μΆκ° HTML νμΌμ μλ―Έν©λλ€. "to"λ 리λ€μ΄λ νΈ_νλ €λ κ²½λ‘λ₯Ό μλ―Ένλ©° μΌλ°μ μΌλ‘ λνμ¬μ°λ£¨μ€κ° μ΄λ―Έ μκ³ μλ κ²½λ‘μ λλ€.
μ΄ λλ¬Έμ κ°μ "to"μ λν΄ μ¬λ¬ κ°μ "from"μ κ°μ§ μ μμ΅λλ€. λͺ¨λ κ°μ λͺ©μ μ§λ‘ 리λ€μ΄λ νΈλλ μ¬λ¬ κ°μ HTML νμΌμ μμ±ν©λλ€. λ°λ©΄μ "from"μ νλλ³΄λ€ λ§μ "to"λ₯Ό κ°μ§ μ μμ΅λλ€. μμ±λ HTML νμΌμ λͺ νν λͺ©μ μ§κ° μμ΄μΌ ν©λλ€.
CreateRedirectsFn
β
// `path` 맀κ°λ³μλ λνμ¬μ°λ£¨μ€κ° μ΄λ―Έ μμ±ν λΌμ°νΈμ
λλ€. μΌλ°μ μΌλ‘ "to"μ΄λ©°
// λ°νκ°μ "from"μ΄ λ©λλ€. κ±°μ§ κ°μ λ°ννλ©΄
// νΉμ κ²½λ‘μ λν 리λ€μ΄λ νΈ νμ΄μ§κ° μμ±λμ§ μμ΅λλ€.
type CreateRedirectsFn = (path: string) => string[] | string | null | undefined;
μ€μ μμβ
λ€μμ μ€μ μμμ λλ€:
module.exports = {
plugins: [
[
'@docusaurus/plugin-client-redirects',
{
fromExtensions: ['html', 'htm'], // /myPage.html -> /myPage
toExtensions: ['exe', 'zip'], // /myAsset -> /myAsset.zip (νμκ° μλ κ²½μ°)
redirects: [
// /docs/oldDoc -> /docs/newDoc
{
to: '/docs/newDoc',
from: '/docs/oldDoc',
},
// μ¬λ¬κ°μ μ΄μ κ²½λ‘μμ μλ‘μ΄ κ²½λ‘λ‘ λ¦¬λ€μ΄λ νΈ
{
to: '/docs/newDoc2',
from: ['/docs/oldDocFrom2019', '/docs/legacyDocFrom2016'],
},
],
createRedirects(existingPath) {
if (existingPath.includes('/community')) {
// /docs/team/Xμμ /community/Xλ‘ κ·Έλ¦¬κ³ /docs/support/Xμμ /community/Xλ‘ λ¦¬λ€μ΄λ νΈ
return [
existingPath.replace('/community', '/docs/team'),
existingPath.replace('/community', '/docs/support'),
];
}
return undefined; // μλͺ»λ κ° λ°ν: 리λ€μ΄λ νΈκ° λ§λ€μ΄μ§μ§ μμ
},
},
],
],
};