mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-11 08:07:26 +02:00
fix(v2): remove buggy routesLoaded + deprecate routesLoaded lifecycle (#3141)
* remove bad deletion of docs / if conflicting with a page * deprecate routesLoaded
This commit is contained in:
parent
ac757e9dff
commit
d25d4b08f6
4 changed files with 10 additions and 30 deletions
|
@ -68,9 +68,6 @@ export default function pluginContentDocs(
|
||||||
context: LoadContext,
|
context: LoadContext,
|
||||||
options: PluginOptions,
|
options: PluginOptions,
|
||||||
): Plugin<LoadedContent | null, typeof PluginOptionSchema> {
|
): Plugin<LoadedContent | null, typeof PluginOptionSchema> {
|
||||||
const homePageDocsRoutePath =
|
|
||||||
options.routeBasePath === '' ? '/' : options.routeBasePath;
|
|
||||||
|
|
||||||
if (options.admonitions) {
|
if (options.admonitions) {
|
||||||
options.remarkPlugins = options.remarkPlugins.concat([
|
options.remarkPlugins = options.remarkPlugins.concat([
|
||||||
[admonitions, options.admonitions],
|
[admonitions, options.admonitions],
|
||||||
|
@ -487,23 +484,6 @@ Available document ids=
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
async routesLoaded(routes) {
|
|
||||||
const homeDocsRoutes = routes.filter(
|
|
||||||
(routeConfig) => routeConfig.path === homePageDocsRoutePath,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Remove the route for docs home page if there is a page with the same path (i.e. docs).
|
|
||||||
if (homeDocsRoutes.length > 1) {
|
|
||||||
const docsHomePageRouteIndex = routes.findIndex(
|
|
||||||
(route) =>
|
|
||||||
route.component === options.docLayoutComponent &&
|
|
||||||
route.path === homePageDocsRoutePath,
|
|
||||||
);
|
|
||||||
|
|
||||||
delete routes[docsHomePageRouteIndex!];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
configureWebpack(_config, isServer, utils) {
|
configureWebpack(_config, isServer, utils) {
|
||||||
const {getBabelLoader, getCacheLoader} = utils;
|
const {getBabelLoader, getCacheLoader} = utils;
|
||||||
const {rehypePlugins, remarkPlugins} = options;
|
const {rehypePlugins, remarkPlugins} = options;
|
||||||
|
|
2
packages/docusaurus-types/src/index.d.ts
vendored
2
packages/docusaurus-types/src/index.d.ts
vendored
|
@ -138,7 +138,7 @@ export interface Plugin<T, U = unknown> {
|
||||||
content: T;
|
content: T;
|
||||||
actions: PluginContentLoadedActions;
|
actions: PluginContentLoadedActions;
|
||||||
}): void;
|
}): void;
|
||||||
routesLoaded?(routes: RouteConfig[]): void;
|
routesLoaded?(routes: RouteConfig[]): void; // TODO remove soon, deprecated (alpha-60)
|
||||||
postBuild?(props: Props): void;
|
postBuild?(props: Props): void;
|
||||||
postStart?(props: Props): void;
|
postStart?(props: Props): void;
|
||||||
configureWebpack?(
|
configureWebpack?(
|
||||||
|
|
|
@ -15,6 +15,7 @@ import {
|
||||||
RouteConfig,
|
RouteConfig,
|
||||||
} from '@docusaurus/types';
|
} from '@docusaurus/types';
|
||||||
import initPlugins, {InitPlugin} from './init';
|
import initPlugins, {InitPlugin} from './init';
|
||||||
|
import chalk from 'chalk';
|
||||||
|
|
||||||
const DefaultPluginId = 'default';
|
const DefaultPluginId = 'default';
|
||||||
|
|
||||||
|
@ -144,6 +145,14 @@ export async function loadPlugins({
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO remove this deprecated lifecycle soon
|
||||||
|
// deprecated since alpha-60
|
||||||
|
console.error(
|
||||||
|
chalk.red(
|
||||||
|
'plugin routesLoaded lifecycle is deprecated. If you think we should keep this lifecycle, please open a Github issue with your usecase',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
return plugin.routesLoaded(pluginsRouteConfigs);
|
return plugin.routesLoaded(pluginsRouteConfigs);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
|
@ -275,10 +275,6 @@ export default function friendsPlugin(context, options) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## `async routesLoaded(routes)`
|
|
||||||
|
|
||||||
Plugins can modify the routes that were generated by all plugins. `routesLoaded` is called after `contentLoaded` hook.
|
|
||||||
|
|
||||||
## `configureWebpack(config, isServer, utils)`
|
## `configureWebpack(config, isServer, utils)`
|
||||||
|
|
||||||
Modifies the internal webpack config. If the return value is a JavaScript object, it will be merged into the final config using [`webpack-merge`](https://github.com/survivejs/webpack-merge). If it is a function, it will be called and receive `config` as the first argument and an `isServer` flag as the argument argument.
|
Modifies the internal webpack config. If the return value is a JavaScript object, it will be merged into the final config using [`webpack-merge`](https://github.com/survivejs/webpack-merge). If it is a function, it will be called and receive `config` as the first argument and an `isServer` flag as the argument argument.
|
||||||
|
@ -574,11 +570,6 @@ module.exports = function (context, opts) {
|
||||||
// `actions` are set of functional API provided by Docusaurus (e.g. addRoute)
|
// `actions` are set of functional API provided by Docusaurus (e.g. addRoute)
|
||||||
},
|
},
|
||||||
|
|
||||||
async routesLoaded(routes) {
|
|
||||||
// The routesLoaded hook is done after contentLoaded hook is done.
|
|
||||||
// This can be useful if you need to change any route.
|
|
||||||
},
|
|
||||||
|
|
||||||
async postBuild(props) {
|
async postBuild(props) {
|
||||||
// After docusaurus <build> finish.
|
// After docusaurus <build> finish.
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue