nextui/apps/docs/next-redirect.js
2023-05-28 19:42:34 -03:00

103 lines
2.3 KiB
JavaScript

const path = require("path");
const shell = require("shelljs");
const rootDir = path.join(__dirname, ".");
const contentDir = path.join(rootDir, "content");
const docsDir = path.join(contentDir, "docs");
const componentsDocsDir = path.join(docsDir, "components");
const getComponentsName = () => {
const names = shell
.ls("-R", componentsDocsDir)
.map((file) => path.join(process.cwd(), componentsDocsDir, file))
.filter((file) => file.endsWith(".mdx"))
.map((file) => path.basename(file, ".mdx"));
return names;
};
const getComponentsRoute = (names = []) => {
return names.map((name) => {
return {
source: `/${name}`,
destination: `/docs/components/${name}`,
permanent: true,
};
});
};
async function redirect() {
const componentsName = getComponentsName();
return [
...getComponentsRoute(componentsName),
{
source: "/docs",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/docs/intro",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/intro",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/docs/installation",
destination: "/docs/guide/installation",
permanent: true,
},
{
source: "/docs/getting-started",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/docs/introduction",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/guide",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/learn",
destination: "/docs/guide/introduction",
permanent: true,
},
{
source: "/theme",
destination: "/docs/theme/default-theme",
permanent: true,
},
{
source: "/docs/theme",
destination: "/docs/theme/default-theme",
permanent: true,
},
{
source: "/components/:path*",
permanent: true,
destination: "/docs/components/:path*",
},
{
source: "/docs/components",
destination: "/docs/components/button",
permanent: true,
},
{
source: "/components",
destination: "/docs/components/button",
permanent: true,
},
];
}
module.exports = redirect;