mirror of
https://github.com/facebook/docusaurus.git
synced 2025-12-25 17:22:50 +00:00
Some checks failed
Argos CI / take-screenshots (push) Has been cancelled
Build Hash Router / Build Hash Router (push) Has been cancelled
Canary Release / Publish Canary (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Continuous Releases / Continuous Releases (push) Has been cancelled
E2E Tests / E2E — Yarn v1 (18.0) (push) Has been cancelled
E2E Tests / E2E — Yarn v1 (20) (push) Has been cancelled
E2E Tests / E2E — Yarn v1 (22) (push) Has been cancelled
E2E Tests / E2E — Yarn v1 (24) (push) Has been cancelled
E2E Tests / E2E — Yarn Berry (node-modules, -s) (push) Has been cancelled
E2E Tests / E2E — Yarn Berry (node-modules, -st) (push) Has been cancelled
E2E Tests / E2E — Yarn Berry (pnp, -s) (push) Has been cancelled
E2E Tests / E2E — Yarn Berry (pnp, -st) (push) Has been cancelled
E2E Tests / E2E — npm (push) Has been cancelled
E2E Tests / E2E — pnpm (push) Has been cancelled
178 lines
5.1 KiB
TypeScript
178 lines
5.1 KiB
TypeScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
import path from 'path';
|
|
import RecmaMDXDisplayName from 'recma-mdx-displayname';
|
|
import type {PluginConfig, Plugin} from '@docusaurus/types';
|
|
import type {Options as DocsOptions} from '@docusaurus/plugin-content-docs';
|
|
import type {Options as BlogOptions} from '@docusaurus/plugin-content-blog';
|
|
import type {Options as PageOptions} from '@docusaurus/plugin-content-pages';
|
|
|
|
// By default, we don't want to run "git log" commands on i18n sites
|
|
// This makes localized sites build much slower on Netlify
|
|
// See also https://github.com/facebook/docusaurus/issues/11208
|
|
// TODO duplicated :/
|
|
export const showLastUpdate = process.env.DOCUSAURUS_CURRENT_LOCALE === 'en';
|
|
|
|
export const isArgosBuild = process.env.DOCUSAURUS_ARGOS_BUILD === 'true';
|
|
|
|
if (isArgosBuild) {
|
|
console.warn(
|
|
'Building site for Argos CI - additional dogfooding pages will be preserved in sitemap',
|
|
);
|
|
}
|
|
|
|
export function dogfoodingTransformFrontMatter(frontMatter: {
|
|
[key: string]: unknown;
|
|
}): {[key: string]: unknown} {
|
|
if (frontMatter.force_unlisted_parseFrontMatter_test === true) {
|
|
return {...frontMatter, unlisted: true};
|
|
}
|
|
return frontMatter;
|
|
}
|
|
|
|
export const dogfoodingThemeInstances: PluginConfig[] = [
|
|
function swizzleThemeTests(): Plugin {
|
|
return {
|
|
name: 'swizzle-theme-tests',
|
|
getThemePath: () => './_swizzle_theme_tests/src/theme',
|
|
};
|
|
},
|
|
];
|
|
|
|
export const dogfoodingPluginInstances: PluginConfig[] = [
|
|
[
|
|
'content-docs', // Shorthand
|
|
{
|
|
id: 'docs-tests',
|
|
routeBasePath: '/tests/docs',
|
|
sidebarPath: '_dogfooding/docs-tests-sidebars.js',
|
|
versions: {
|
|
current: {
|
|
noIndex: !isArgosBuild,
|
|
},
|
|
},
|
|
onInlineTags: 'warn',
|
|
tags: 'tags.yml',
|
|
recmaPlugins: [
|
|
[
|
|
RecmaMDXDisplayName,
|
|
(vfile: {path: string}) =>
|
|
`MDXContent(${path.relative(process.cwd(), vfile.path)})`,
|
|
],
|
|
],
|
|
|
|
// Using a _ prefix to test against an edge case regarding MDX partials: https://github.com/facebook/docusaurus/discussions/5181#discussioncomment-1018079
|
|
path: '_dogfooding/_docs tests',
|
|
showLastUpdateTime: showLastUpdate,
|
|
showLastUpdateAuthor: showLastUpdate,
|
|
sidebarItemsGenerator(args) {
|
|
return args.defaultSidebarItemsGenerator({
|
|
...args,
|
|
isCategoryIndex({fileName, directories}) {
|
|
const eligibleDocIndexNames = [
|
|
'index',
|
|
'readme',
|
|
directories[0]!.toLowerCase(),
|
|
'intro',
|
|
];
|
|
return eligibleDocIndexNames.includes(fileName.toLowerCase());
|
|
},
|
|
});
|
|
},
|
|
} satisfies DocsOptions,
|
|
],
|
|
|
|
[
|
|
'@docusaurus/plugin-content-blog', // Longhand
|
|
/** @type {import('@docusaurus/plugin-content-blog').Options} */
|
|
{
|
|
id: 'blog-tests',
|
|
path: '_dogfooding/_blog tests',
|
|
routeBasePath: '/tests/blog',
|
|
editUrl:
|
|
'https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_blog-tests',
|
|
postsPerPage: 3,
|
|
blogSidebarCount: 'ALL',
|
|
feedOptions: {
|
|
type: 'all',
|
|
title: 'Docusaurus Tests Blog',
|
|
copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc.`,
|
|
xslt: {
|
|
rss: 'custom-rss.xsl',
|
|
atom: 'custom-atom.xsl',
|
|
},
|
|
},
|
|
readingTime: ({content, frontMatter, defaultReadingTime}) =>
|
|
frontMatter.hide_reading_time
|
|
? undefined
|
|
: defaultReadingTime({
|
|
content,
|
|
locale: 'en',
|
|
options: {wordsPerMinute: 5},
|
|
}),
|
|
onInlineTags: 'warn',
|
|
onInlineAuthors: 'ignore',
|
|
onUntruncatedBlogPosts: 'ignore',
|
|
tags: 'tags.yml',
|
|
} satisfies BlogOptions,
|
|
],
|
|
|
|
[
|
|
require.resolve('@docusaurus/plugin-content-pages'), // Full path
|
|
{
|
|
id: 'pages-tests',
|
|
path: '_dogfooding/_pages tests',
|
|
routeBasePath: '/tests/pages',
|
|
showLastUpdateTime: showLastUpdate,
|
|
showLastUpdateAuthor: showLastUpdate,
|
|
editUrl: ({pagesPath}) =>
|
|
`https://github.com/facebook/docusaurus/edit/main/website/_dogfooding/_pages tests/${pagesPath}`,
|
|
} satisfies PageOptions,
|
|
],
|
|
|
|
function clientModuleTestPlugin(): Plugin {
|
|
return {
|
|
name: 'client-module-test-plugin',
|
|
getClientModules() {
|
|
return [
|
|
require.resolve('./clientModuleExample.ts'),
|
|
require.resolve('./clientModuleCSS.css'),
|
|
require.resolve('./migrateStorageNamespace.ts'),
|
|
];
|
|
},
|
|
};
|
|
},
|
|
];
|
|
|
|
export const dogfoodingRedirects: {from: string[]; to: string}[] = [
|
|
{
|
|
from: ['/home/'],
|
|
to: '/',
|
|
},
|
|
{
|
|
from: ['/home/qs'],
|
|
to: '/?a=1',
|
|
},
|
|
{
|
|
from: ['/home/anchor'],
|
|
to: '/#anchor',
|
|
},
|
|
{
|
|
from: ['/home/absolute'],
|
|
to: 'https://docusaurus.io/',
|
|
},
|
|
{
|
|
from: ['/home/absolute/qs'],
|
|
to: 'https://docusaurus.io/?a=1',
|
|
},
|
|
{
|
|
from: ['/home/absolute/anchor'],
|
|
to: 'https://docusaurus.io/#anchor',
|
|
},
|
|
];
|