diff --git a/docs/generated/manifests/plugins.json b/docs/generated/manifests/extending-nx.json similarity index 75% rename from docs/generated/manifests/plugins.json rename to docs/generated/manifests/extending-nx.json index b64378ab90..99489bc160 100644 --- a/docs/generated/manifests/plugins.json +++ b/docs/generated/manifests/extending-nx.json @@ -1,5 +1,5 @@ { - "/plugins/intro": { + "/extending-nx/intro": { "id": "intro", "name": "Intro", "description": "Learn about plugins.", @@ -12,7 +12,7 @@ "file": "shared/plugins/intro", "itemList": [], "isExternal": false, - "path": "/plugins/intro/getting-started", + "path": "/extending-nx/intro/getting-started", "tags": [] }, { @@ -22,35 +22,35 @@ "file": "", "itemList": [], "isExternal": false, - "path": "/plugins/registry", + "path": "/extending-nx/registry", "tags": [] } ], "isExternal": false, - "path": "/plugins/intro", + "path": "/extending-nx/intro", "tags": [] }, - "/plugins/intro/getting-started": { + "/extending-nx/intro/getting-started": { "id": "getting-started", "name": "Getting Started with Plugins", "description": "Learn how to extend Nx by creating and releasing your own Nx plugin.", "file": "shared/plugins/intro", "itemList": [], "isExternal": false, - "path": "/plugins/intro/getting-started", + "path": "/extending-nx/intro/getting-started", "tags": [] }, - "/plugins/registry": { + "/extending-nx/registry": { "id": "registry", "name": "Plugin Registry", "description": "Browse official and community plugins", "file": "", "itemList": [], "isExternal": false, - "path": "/plugins/registry", + "path": "/extending-nx/registry", "tags": [] }, - "/plugins/tutorials": { + "/extending-nx/tutorials": { "id": "tutorials", "name": "5 Min Tutorials", "description": "Get started with plugins", @@ -63,7 +63,7 @@ "file": "shared/plugins/create-plugin", "itemList": [], "isExternal": false, - "path": "/plugins/tutorials/create-plugin", + "path": "/extending-nx/tutorials/create-plugin", "tags": [] }, { @@ -73,35 +73,35 @@ "file": "shared/plugins/maintain-published-plugin", "itemList": [], "isExternal": false, - "path": "/plugins/tutorials/publish-plugin", + "path": "/extending-nx/tutorials/publish-plugin", "tags": [] } ], "isExternal": false, - "path": "/plugins/tutorials", + "path": "/extending-nx/tutorials", "tags": [] }, - "/plugins/tutorials/create-plugin": { + "/extending-nx/tutorials/create-plugin": { "id": "create-plugin", "name": "Create a Local Plugin", "description": "", "file": "shared/plugins/create-plugin", "itemList": [], "isExternal": false, - "path": "/plugins/tutorials/create-plugin", + "path": "/extending-nx/tutorials/create-plugin", "tags": [] }, - "/plugins/tutorials/publish-plugin": { + "/extending-nx/tutorials/publish-plugin": { "id": "publish-plugin", "name": "Maintain a Published Plugin", "description": "", "file": "shared/plugins/maintain-published-plugin", "itemList": [], "isExternal": false, - "path": "/plugins/tutorials/publish-plugin", + "path": "/extending-nx/tutorials/publish-plugin", "tags": [] }, - "/plugins/recipes": { + "/extending-nx/recipes": { "id": "recipes", "name": "Recipes", "description": "Focused instructions to complete a specific task", @@ -114,7 +114,7 @@ "file": "shared/recipes/plugins/local-executors", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/local-executors", + "path": "/extending-nx/recipes/local-executors", "tags": ["use-task-executors"] }, { @@ -124,7 +124,7 @@ "file": "shared/recipes/plugins/compose-executors", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/compose-executors", + "path": "/extending-nx/recipes/compose-executors", "tags": ["use-task-executors"] }, { @@ -134,7 +134,7 @@ "file": "shared/recipes/generators/local-generators", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/local-generators", + "path": "/extending-nx/recipes/local-generators", "tags": ["use-code-generators"] }, { @@ -144,7 +144,7 @@ "file": "shared/recipes/generators/composing-generators", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/composing-generators", + "path": "/extending-nx/recipes/composing-generators", "tags": ["use-code-generators"] }, { @@ -154,7 +154,7 @@ "file": "shared/recipes/generators/generator-options", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/generator-options", + "path": "/extending-nx/recipes/generator-options", "tags": ["use-code-generators"] }, { @@ -164,7 +164,7 @@ "file": "shared/recipes/generators/creating-files", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/creating-files", + "path": "/extending-nx/recipes/creating-files", "tags": ["use-code-generators"] }, { @@ -174,7 +174,7 @@ "file": "shared/recipes/generators/modifying-files", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/modifying-files", + "path": "/extending-nx/recipes/modifying-files", "tags": ["use-code-generators"] }, { @@ -184,7 +184,7 @@ "file": "shared/recipes/plugins/migration-generators", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/migration-generators", + "path": "/extending-nx/recipes/migration-generators", "tags": ["create-your-own-plugin"] }, { @@ -194,7 +194,7 @@ "file": "shared/recipes/plugins/create-preset", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/create-preset", + "path": "/extending-nx/recipes/create-preset", "tags": ["create-your-own-plugin"] }, { @@ -204,7 +204,7 @@ "file": "shared/recipes/plugins/project-graph-plugins", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/project-graph-plugins", + "path": "/extending-nx/recipes/project-graph-plugins", "tags": ["create-your-own-plugin", "explore-graph"] }, { @@ -214,122 +214,122 @@ "file": "shared/recipes/plugins/project-inference-plugins", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/project-inference-plugins", + "path": "/extending-nx/recipes/project-inference-plugins", "tags": ["create-your-own-plugin"] } ], "isExternal": false, - "path": "/plugins/recipes", + "path": "/extending-nx/recipes", "tags": [] }, - "/plugins/recipes/local-executors": { + "/extending-nx/recipes/local-executors": { "id": "local-executors", "name": "Write a Simple Executor", "description": "", "file": "shared/recipes/plugins/local-executors", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/local-executors", + "path": "/extending-nx/recipes/local-executors", "tags": ["use-task-executors"] }, - "/plugins/recipes/compose-executors": { + "/extending-nx/recipes/compose-executors": { "id": "compose-executors", "name": "Compose Executors", "description": "", "file": "shared/recipes/plugins/compose-executors", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/compose-executors", + "path": "/extending-nx/recipes/compose-executors", "tags": ["use-task-executors"] }, - "/plugins/recipes/local-generators": { + "/extending-nx/recipes/local-generators": { "id": "local-generators", "name": "Write a Simple Generator", "description": "", "file": "shared/recipes/generators/local-generators", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/local-generators", + "path": "/extending-nx/recipes/local-generators", "tags": ["use-code-generators"] }, - "/plugins/recipes/composing-generators": { + "/extending-nx/recipes/composing-generators": { "id": "composing-generators", "name": "Compose Generators", "description": "", "file": "shared/recipes/generators/composing-generators", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/composing-generators", + "path": "/extending-nx/recipes/composing-generators", "tags": ["use-code-generators"] }, - "/plugins/recipes/generator-options": { + "/extending-nx/recipes/generator-options": { "id": "generator-options", "name": "Provide Options for Generators", "description": "", "file": "shared/recipes/generators/generator-options", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/generator-options", + "path": "/extending-nx/recipes/generator-options", "tags": ["use-code-generators"] }, - "/plugins/recipes/creating-files": { + "/extending-nx/recipes/creating-files": { "id": "creating-files", "name": "Create Files", "description": "", "file": "shared/recipes/generators/creating-files", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/creating-files", + "path": "/extending-nx/recipes/creating-files", "tags": ["use-code-generators"] }, - "/plugins/recipes/modifying-files": { + "/extending-nx/recipes/modifying-files": { "id": "modifying-files", "name": "Modify Files", "description": "", "file": "shared/recipes/generators/modifying-files", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/modifying-files", + "path": "/extending-nx/recipes/modifying-files", "tags": ["use-code-generators"] }, - "/plugins/recipes/migration-generators": { + "/extending-nx/recipes/migration-generators": { "id": "migration-generators", "name": "Write a Migration", "description": "", "file": "shared/recipes/plugins/migration-generators", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/migration-generators", + "path": "/extending-nx/recipes/migration-generators", "tags": ["create-your-own-plugin"] }, - "/plugins/recipes/create-preset": { + "/extending-nx/recipes/create-preset": { "id": "create-preset", "name": "Create a Preset", "description": "", "file": "shared/recipes/plugins/create-preset", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/create-preset", + "path": "/extending-nx/recipes/create-preset", "tags": ["create-your-own-plugin"] }, - "/plugins/recipes/project-graph-plugins": { + "/extending-nx/recipes/project-graph-plugins": { "id": "project-graph-plugins", "name": "Modify the Project Graph", "description": "", "file": "shared/recipes/plugins/project-graph-plugins", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/project-graph-plugins", + "path": "/extending-nx/recipes/project-graph-plugins", "tags": ["create-your-own-plugin", "explore-graph"] }, - "/plugins/recipes/project-inference-plugins": { + "/extending-nx/recipes/project-inference-plugins": { "id": "project-inference-plugins", "name": "Identify Custom Projects", "description": "", "file": "shared/recipes/plugins/project-inference-plugins", "itemList": [], "isExternal": false, - "path": "/plugins/recipes/project-inference-plugins", + "path": "/extending-nx/recipes/project-inference-plugins", "tags": ["create-your-own-plugin"] } } diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index ab8069a673..a747225c71 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -3685,17 +3685,17 @@ ] }, { - "id": "plugins", + "id": "extending-nx", "menu": [ { "name": "Intro", - "path": "/plugins/intro", + "path": "/extending-nx/intro", "id": "intro", "isExternal": false, "children": [ { "name": "Getting Started with Plugins", - "path": "/plugins/intro/getting-started", + "path": "/extending-nx/intro/getting-started", "id": "getting-started", "isExternal": false, "children": [], @@ -3703,7 +3703,7 @@ }, { "name": "Plugin Registry", - "path": "/plugins/registry", + "path": "/extending-nx/registry", "id": "registry", "isExternal": false, "children": [], @@ -3714,7 +3714,7 @@ }, { "name": "Getting Started with Plugins", - "path": "/plugins/intro/getting-started", + "path": "/extending-nx/intro/getting-started", "id": "getting-started", "isExternal": false, "children": [], @@ -3722,7 +3722,7 @@ }, { "name": "Plugin Registry", - "path": "/plugins/registry", + "path": "/extending-nx/registry", "id": "registry", "isExternal": false, "children": [], @@ -3730,13 +3730,13 @@ }, { "name": "5 Min Tutorials", - "path": "/plugins/tutorials", + "path": "/extending-nx/tutorials", "id": "tutorials", "isExternal": false, "children": [ { "name": "Create a Local Plugin", - "path": "/plugins/tutorials/create-plugin", + "path": "/extending-nx/tutorials/create-plugin", "id": "create-plugin", "isExternal": false, "children": [], @@ -3744,7 +3744,7 @@ }, { "name": "Maintain a Published Plugin", - "path": "/plugins/tutorials/publish-plugin", + "path": "/extending-nx/tutorials/publish-plugin", "id": "publish-plugin", "isExternal": false, "children": [], @@ -3755,7 +3755,7 @@ }, { "name": "Create a Local Plugin", - "path": "/plugins/tutorials/create-plugin", + "path": "/extending-nx/tutorials/create-plugin", "id": "create-plugin", "isExternal": false, "children": [], @@ -3763,7 +3763,7 @@ }, { "name": "Maintain a Published Plugin", - "path": "/plugins/tutorials/publish-plugin", + "path": "/extending-nx/tutorials/publish-plugin", "id": "publish-plugin", "isExternal": false, "children": [], @@ -3771,13 +3771,13 @@ }, { "name": "Recipes", - "path": "/plugins/recipes", + "path": "/extending-nx/recipes", "id": "recipes", "isExternal": false, "children": [ { "name": "Write a Simple Executor", - "path": "/plugins/recipes/local-executors", + "path": "/extending-nx/recipes/local-executors", "id": "local-executors", "isExternal": false, "children": [], @@ -3785,7 +3785,7 @@ }, { "name": "Compose Executors", - "path": "/plugins/recipes/compose-executors", + "path": "/extending-nx/recipes/compose-executors", "id": "compose-executors", "isExternal": false, "children": [], @@ -3793,7 +3793,7 @@ }, { "name": "Write a Simple Generator", - "path": "/plugins/recipes/local-generators", + "path": "/extending-nx/recipes/local-generators", "id": "local-generators", "isExternal": false, "children": [], @@ -3801,7 +3801,7 @@ }, { "name": "Compose Generators", - "path": "/plugins/recipes/composing-generators", + "path": "/extending-nx/recipes/composing-generators", "id": "composing-generators", "isExternal": false, "children": [], @@ -3809,7 +3809,7 @@ }, { "name": "Provide Options for Generators", - "path": "/plugins/recipes/generator-options", + "path": "/extending-nx/recipes/generator-options", "id": "generator-options", "isExternal": false, "children": [], @@ -3817,7 +3817,7 @@ }, { "name": "Create Files", - "path": "/plugins/recipes/creating-files", + "path": "/extending-nx/recipes/creating-files", "id": "creating-files", "isExternal": false, "children": [], @@ -3825,7 +3825,7 @@ }, { "name": "Modify Files", - "path": "/plugins/recipes/modifying-files", + "path": "/extending-nx/recipes/modifying-files", "id": "modifying-files", "isExternal": false, "children": [], @@ -3833,7 +3833,7 @@ }, { "name": "Write a Migration", - "path": "/plugins/recipes/migration-generators", + "path": "/extending-nx/recipes/migration-generators", "id": "migration-generators", "isExternal": false, "children": [], @@ -3841,7 +3841,7 @@ }, { "name": "Create a Preset", - "path": "/plugins/recipes/create-preset", + "path": "/extending-nx/recipes/create-preset", "id": "create-preset", "isExternal": false, "children": [], @@ -3849,7 +3849,7 @@ }, { "name": "Modify the Project Graph", - "path": "/plugins/recipes/project-graph-plugins", + "path": "/extending-nx/recipes/project-graph-plugins", "id": "project-graph-plugins", "isExternal": false, "children": [], @@ -3857,7 +3857,7 @@ }, { "name": "Identify Custom Projects", - "path": "/plugins/recipes/project-inference-plugins", + "path": "/extending-nx/recipes/project-inference-plugins", "id": "project-inference-plugins", "isExternal": false, "children": [], @@ -3868,7 +3868,7 @@ }, { "name": "Write a Simple Executor", - "path": "/plugins/recipes/local-executors", + "path": "/extending-nx/recipes/local-executors", "id": "local-executors", "isExternal": false, "children": [], @@ -3876,7 +3876,7 @@ }, { "name": "Compose Executors", - "path": "/plugins/recipes/compose-executors", + "path": "/extending-nx/recipes/compose-executors", "id": "compose-executors", "isExternal": false, "children": [], @@ -3884,7 +3884,7 @@ }, { "name": "Write a Simple Generator", - "path": "/plugins/recipes/local-generators", + "path": "/extending-nx/recipes/local-generators", "id": "local-generators", "isExternal": false, "children": [], @@ -3892,7 +3892,7 @@ }, { "name": "Compose Generators", - "path": "/plugins/recipes/composing-generators", + "path": "/extending-nx/recipes/composing-generators", "id": "composing-generators", "isExternal": false, "children": [], @@ -3900,7 +3900,7 @@ }, { "name": "Provide Options for Generators", - "path": "/plugins/recipes/generator-options", + "path": "/extending-nx/recipes/generator-options", "id": "generator-options", "isExternal": false, "children": [], @@ -3908,7 +3908,7 @@ }, { "name": "Create Files", - "path": "/plugins/recipes/creating-files", + "path": "/extending-nx/recipes/creating-files", "id": "creating-files", "isExternal": false, "children": [], @@ -3916,7 +3916,7 @@ }, { "name": "Modify Files", - "path": "/plugins/recipes/modifying-files", + "path": "/extending-nx/recipes/modifying-files", "id": "modifying-files", "isExternal": false, "children": [], @@ -3924,7 +3924,7 @@ }, { "name": "Write a Migration", - "path": "/plugins/recipes/migration-generators", + "path": "/extending-nx/recipes/migration-generators", "id": "migration-generators", "isExternal": false, "children": [], @@ -3932,7 +3932,7 @@ }, { "name": "Create a Preset", - "path": "/plugins/recipes/create-preset", + "path": "/extending-nx/recipes/create-preset", "id": "create-preset", "isExternal": false, "children": [], @@ -3940,7 +3940,7 @@ }, { "name": "Modify the Project Graph", - "path": "/plugins/recipes/project-graph-plugins", + "path": "/extending-nx/recipes/project-graph-plugins", "id": "project-graph-plugins", "isExternal": false, "children": [], @@ -3948,7 +3948,7 @@ }, { "name": "Identify Custom Projects", - "path": "/plugins/recipes/project-inference-plugins", + "path": "/extending-nx/recipes/project-inference-plugins", "id": "project-inference-plugins", "isExternal": false, "children": [], diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index 19c2d1c1e7..04db1f0877 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -186,7 +186,7 @@ "file": "shared/recipes/plugins/project-graph-plugins", "id": "project-graph-plugins", "name": "Modify the Project Graph", - "path": "/plugins/recipes/project-graph-plugins" + "path": "/extending-nx/recipes/project-graph-plugins" }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", @@ -504,14 +504,14 @@ "file": "shared/recipes/plugins/local-executors", "id": "local-executors", "name": "Write a Simple Executor", - "path": "/plugins/recipes/local-executors" + "path": "/extending-nx/recipes/local-executors" }, { "description": "", "file": "shared/recipes/plugins/compose-executors", "id": "compose-executors", "name": "Compose Executors", - "path": "/plugins/recipes/compose-executors" + "path": "/extending-nx/recipes/compose-executors" }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", @@ -562,35 +562,35 @@ "file": "shared/recipes/generators/local-generators", "id": "local-generators", "name": "Write a Simple Generator", - "path": "/plugins/recipes/local-generators" + "path": "/extending-nx/recipes/local-generators" }, { "description": "", "file": "shared/recipes/generators/composing-generators", "id": "composing-generators", "name": "Compose Generators", - "path": "/plugins/recipes/composing-generators" + "path": "/extending-nx/recipes/composing-generators" }, { "description": "", "file": "shared/recipes/generators/generator-options", "id": "generator-options", "name": "Provide Options for Generators", - "path": "/plugins/recipes/generator-options" + "path": "/extending-nx/recipes/generator-options" }, { "description": "", "file": "shared/recipes/generators/creating-files", "id": "creating-files", "name": "Create Files", - "path": "/plugins/recipes/creating-files" + "path": "/extending-nx/recipes/creating-files" }, { "description": "", "file": "shared/recipes/generators/modifying-files", "id": "modifying-files", "name": "Modify Files", - "path": "/plugins/recipes/modifying-files" + "path": "/extending-nx/recipes/modifying-files" }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", @@ -645,28 +645,28 @@ "file": "shared/recipes/plugins/migration-generators", "id": "migration-generators", "name": "Write a Migration", - "path": "/plugins/recipes/migration-generators" + "path": "/extending-nx/recipes/migration-generators" }, { "description": "", "file": "shared/recipes/plugins/create-preset", "id": "create-preset", "name": "Create a Preset", - "path": "/plugins/recipes/create-preset" + "path": "/extending-nx/recipes/create-preset" }, { "description": "", "file": "shared/recipes/plugins/project-graph-plugins", "id": "project-graph-plugins", "name": "Modify the Project Graph", - "path": "/plugins/recipes/project-graph-plugins" + "path": "/extending-nx/recipes/project-graph-plugins" }, { "description": "", "file": "shared/recipes/plugins/project-inference-plugins", "id": "project-inference-plugins", "name": "Identify Custom Projects", - "path": "/plugins/recipes/project-inference-plugins" + "path": "/extending-nx/recipes/project-inference-plugins" } ], "environment-variables": [ diff --git a/docs/generated/packages/plugin/documents/overview.md b/docs/generated/packages/plugin/documents/overview.md index dc4ee5977b..459807ba2e 100644 --- a/docs/generated/packages/plugin/documents/overview.md +++ b/docs/generated/packages/plugin/documents/overview.md @@ -2,4 +2,4 @@ Nx plugins are npm packages that contain [generators](/core-features/plugin-feat This package contains tooling to help plugin authors create and maintain plugins. -For more information, see the [plugins](/plugins/intro/getting-started) section of docs. +For more information, see the [plugins](/extending-nx/intro/getting-started) section of docs. diff --git a/docs/generated/packages/workspace/documents/overview.md b/docs/generated/packages/workspace/documents/overview.md index f4eada5dfb..84518542c6 100644 --- a/docs/generated/packages/workspace/documents/overview.md +++ b/docs/generated/packages/workspace/documents/overview.md @@ -4,7 +4,7 @@ The workspace plugin contains executors and generators that are useful for any N Codifying your organization's best practices into local generators is a great way to ensure that the best practices are easy to follow and implement. Running `nx g @nx/plugin:plugin feature` will create a local plugin with a generator which is written the same way generators are written for Nx plugins. -> See more about [local generators](/plugins/recipes/local-generators) +> See more about [local generators](/extending-nx/recipes/local-generators) ## Reorganizing Projects diff --git a/docs/map.json b/docs/map.json index 1b241a4e5a..bbe3162573 100644 --- a/docs/map.json +++ b/docs/map.json @@ -732,8 +732,8 @@ ] }, { - "name": "Plugins", - "id": "plugins", + "name": "Extending Nx", + "id": "extending-nx", "description": "Learn more about creating your own plugin, extending Nx.", "itemList": [ { @@ -752,7 +752,7 @@ "description": "Browse official and community plugins", "id": "registry", "file": "", - "path": "/plugins/registry", + "path": "/extending-nx/registry", "isExternal": false } ] diff --git a/docs/shared/angular-standalone-tutorial/angular-standalone.md b/docs/shared/angular-standalone-tutorial/angular-standalone.md index a435414fc0..2ed47a68b8 100644 --- a/docs/shared/angular-standalone-tutorial/angular-standalone.md +++ b/docs/shared/angular-standalone-tutorial/angular-standalone.md @@ -176,7 +176,7 @@ Each target contains a configuration object that tells Nx how to run that target The most critical parts are: -- `executor` - This corresponds to the `builder` property in an Angular CLI workspace. You can use Angular builders or executors from [Nx plugins](/plugins/intro/getting-started). +- `executor` - This corresponds to the `builder` property in an Angular CLI workspace. You can use Angular builders or executors from [Nx plugins](/extending-nx/intro/getting-started). - `options` - these are additional properties and flags passed to the executor function to customize it Learn more about how to [run tasks with Nx](/core-features/run-tasks). diff --git a/docs/shared/deprecated/workspace-executors.md b/docs/shared/deprecated/workspace-executors.md index 872772eb86..bce0270ee4 100644 --- a/docs/shared/deprecated/workspace-executors.md +++ b/docs/shared/deprecated/workspace-executors.md @@ -1,6 +1,6 @@ # Workspace Executors -In Nx 13.10+, local nx plugins can contain executors that are used in the workspace. When creating a custom executor for your workspace, look into the [local executor guide](/plugins/recipes/local-executors) to simplify the build process. +In Nx 13.10+, local nx plugins can contain executors that are used in the workspace. When creating a custom executor for your workspace, look into the [local executor guide](/extending-nx/recipes/local-executors) to simplify the build process. ## Converting workspace executors to local executors diff --git a/docs/shared/deprecated/workspace-generators.md b/docs/shared/deprecated/workspace-generators.md index cdb3ee4c59..c8ca4149ac 100644 --- a/docs/shared/deprecated/workspace-generators.md +++ b/docs/shared/deprecated/workspace-generators.md @@ -4,7 +4,7 @@ In Nx 13.10, we introduced the ability to run generators from Nx plugins in the By using a "local" plugin, you can set the plugin as your workspace's default collection and get several other affordances that are not provided to workspace generators. This is the preferred method for "workspace generators", and existing generators will eventually be transitioned to use a local plugin. -Check the [local generator guide](/plugins/recipes/local-generators) for information on creating a new plugin. +Check the [local generator guide](/extending-nx/recipes/local-generators) for information on creating a new plugin. ## Converting workspace generators to local generators diff --git a/docs/shared/deprecated/workspace-json.md b/docs/shared/deprecated/workspace-json.md index d726c24891..b03ece4a3c 100644 --- a/docs/shared/deprecated/workspace-json.md +++ b/docs/shared/deprecated/workspace-json.md @@ -5,7 +5,7 @@ Nx used to have a `workspace.json` file at the root of the repo that at various 1. Identified the locations of all project in the repo 2. Contained the target configuration for all projects -Identifying the locations of projects is now done automatically through project inference. You can even customize how projects are inferred with a [project inference plugin](/plugins/recipes/project-inference-plugins). +Identifying the locations of projects is now done automatically through project inference. You can even customize how projects are inferred with a [project inference plugin](/extending-nx/recipes/project-inference-plugins). The target configuration for each project is now stored in individual `project.json` files or `package.json` files. diff --git a/docs/shared/getting-started/why-nx.md b/docs/shared/getting-started/why-nx.md index fd140ff504..94c638cc20 100644 --- a/docs/shared/getting-started/why-nx.md +++ b/docs/shared/getting-started/why-nx.md @@ -23,7 +23,7 @@ Nx is built in a modular fashion to let you only use the features you need. ![High-level Nx architecture](/shared/images/nx-architecture.svg) - The **Nx** package provides fundamental technology-agnostic capabilities such as: [workspace analysis](/core-features/explore-graph), [task running](/core-features/run-tasks), [caching](/core-features/cache-task-results), [distribution](/core-features/distribute-task-execution), [code generation](/core-features/plugin-features/use-code-generators) and [automated code migrations](/core-features/automate-updating-dependencies). -- **Plugins** are NPM packages that built on top of the fundamental capabilities provided by the Nx package. Nx plugins contain [code generators](/core-features/plugin-features/use-code-generators), [executors](/core-features/plugin-features/use-task-executors) (to abstract lower-level build tooling) and automated code migrations for keeping your tools up to date. Contrary to the Nx package, which works the same way with any JS or non-JS project, plugins are usually technology specific. For instance, `@nx/react` adds support for building React apps and libs, `@nx/cypress` adds e2e testing capabilities with Cypress. Plugins make developers more productive by removing any friction of integrating different tools with each other and by providing utilities to keep them up to date. The Nx team maintains plugins for React, Next, Remix, Angular, Jest, Cypress, Storybook and more. You can use the `@nx/plugin` package to easily [scaffold a new plugin](/plugins/intro/getting-started) or even just [automate your local workspace](/plugins/recipes/local-generators). There are also more than 80 [community plugins](/plugins/registry). -- **Devkit** is a set of utilities for [building Nx plugins](/plugins/intro/getting-started). +- **Plugins** are NPM packages that built on top of the fundamental capabilities provided by the Nx package. Nx plugins contain [code generators](/core-features/plugin-features/use-code-generators), [executors](/core-features/plugin-features/use-task-executors) (to abstract lower-level build tooling) and automated code migrations for keeping your tools up to date. Contrary to the Nx package, which works the same way with any JS or non-JS project, plugins are usually technology specific. For instance, `@nx/react` adds support for building React apps and libs, `@nx/cypress` adds e2e testing capabilities with Cypress. Plugins make developers more productive by removing any friction of integrating different tools with each other and by providing utilities to keep them up to date. The Nx team maintains plugins for React, Next, Remix, Angular, Jest, Cypress, Storybook and more. You can use the `@nx/plugin` package to easily [scaffold a new plugin](/extending-nx/intro/getting-started) or even just [automate your local workspace](/extending-nx/recipes/local-generators). There are also more than 80 [community plugins](/extending-nx/registry). +- **Devkit** is a set of utilities for [building Nx plugins](/extending-nx/intro/getting-started). - **Nx Cloud** helps scale your project on CI by [adding remote caching](/concepts/how-caching-works) and [distributed task execution](/concepts/more-concepts/illustrated-dte). It also improves developer ergonomics by integrating with GitHub, GitLab and BitBucket and providing searchable structured logs. Learn more at [nx.app](https://nx.app). - **Nx Console** is an extension for **VSCode, IntelliJ and VIM**. It provides code autocompletion, interactive generators, workspace visualizations, powerful refactorings and more. You can [install it here](/core-features/integrate-with-editors). diff --git a/docs/shared/guides/integrated-repo-folder-structure.md b/docs/shared/guides/integrated-repo-folder-structure.md index 1859835e8d..061f9f7423 100644 --- a/docs/shared/guides/integrated-repo-folder-structure.md +++ b/docs/shared/guides/integrated-repo-folder-structure.md @@ -16,7 +16,7 @@ myorg/ `/libs/` contains the library projects. There are many kinds of libraries, and each library defines its own external API so that boundaries between libraries remain clear. -`/tools/` contains scripts that act on your code base. This could be database scripts, [local executors](/plugins/recipes/local-executors), or [local generators](/plugins/recipes/local-generators). +`/tools/` contains scripts that act on your code base. This could be database scripts, [local executors](/extending-nx/recipes/local-executors), or [local generators](/extending-nx/recipes/local-generators). `/nx.json` configures the Nx CLI itself. It tells Nx what needs to be cached, how to run tasks etc. diff --git a/docs/shared/packages/plugin/plugin.md b/docs/shared/packages/plugin/plugin.md index dc4ee5977b..459807ba2e 100644 --- a/docs/shared/packages/plugin/plugin.md +++ b/docs/shared/packages/plugin/plugin.md @@ -2,4 +2,4 @@ Nx plugins are npm packages that contain [generators](/core-features/plugin-feat This package contains tooling to help plugin authors create and maintain plugins. -For more information, see the [plugins](/plugins/intro/getting-started) section of docs. +For more information, see the [plugins](/extending-nx/intro/getting-started) section of docs. diff --git a/docs/shared/packages/workspace/workspace-plugin.md b/docs/shared/packages/workspace/workspace-plugin.md index f4eada5dfb..84518542c6 100644 --- a/docs/shared/packages/workspace/workspace-plugin.md +++ b/docs/shared/packages/workspace/workspace-plugin.md @@ -4,7 +4,7 @@ The workspace plugin contains executors and generators that are useful for any N Codifying your organization's best practices into local generators is a great way to ensure that the best practices are easy to follow and implement. Running `nx g @nx/plugin:plugin feature` will create a local plugin with a generator which is written the same way generators are written for Nx plugins. -> See more about [local generators](/plugins/recipes/local-generators) +> See more about [local generators](/extending-nx/recipes/local-generators) ## Reorganizing Projects diff --git a/docs/shared/plugin-features/use-code-generators.md b/docs/shared/plugin-features/use-code-generators.md index 5a9c721df1..4c088b275e 100644 --- a/docs/shared/plugin-features/use-code-generators.md +++ b/docs/shared/plugin-features/use-code-generators.md @@ -7,7 +7,7 @@ Generators provide a way to automate many tasks you regularly perform as part of There are three main types of generators: 1. **Plugin Generators** are available when an Nx plugin has been installed in your workspace. -2. **Local Generators** are generators that you can create for your own workspace. [Local generators](/plugins/recipes/local-generators) allow you to codify the processes that are unique to your own organization. +2. **Local Generators** are generators that you can create for your own workspace. [Local generators](/extending-nx/recipes/local-generators) allow you to codify the processes that are unique to your own organization. 3. **Update Generators** are invoked by Nx plugins when you [update Nx](/recipes/adopting-nx) to keep your config files in sync with the latest versions of third party tools. ## Invoking Plugin Generators diff --git a/docs/shared/plugins/create-plugin.md b/docs/shared/plugins/create-plugin.md index ebeaddda89..54a424ab98 100644 --- a/docs/shared/plugins/create-plugin.md +++ b/docs/shared/plugins/create-plugin.md @@ -20,7 +20,7 @@ nx generate @nx/plugin:generator my-generator --project=my-plugin The new generator is located in `/src/generators/my-generator`. The `my-generator.ts` file contains the code that runs the generator. This generator creates a new project using a folder of template files. -For more information about this sample generator, read the [simple generator recipe](/plugins/recipes/local-generators). +For more information about this sample generator, read the [simple generator recipe](/extending-nx/recipes/local-generators). ### Generator options @@ -48,7 +48,7 @@ nx generate @nx/plugin:executor my-executor --project=my-plugin The new executor is located in `/src/executors/my-executor`. The `my-executor.ts` file contains the code that runs the executor. This executor emits a console log, but executors can compile code, deploy an app, publish to NPM and much more. -For more information about this sample executor, read the [simple executor recipe](/plugins/recipes/local-executors). +For more information about this sample executor, read the [simple executor recipe](/extending-nx/recipes/local-executors). ### Executor testing diff --git a/docs/shared/plugins/intro.md b/docs/shared/plugins/intro.md index 6cf0c88727..9f5836ab3d 100644 --- a/docs/shared/plugins/intro.md +++ b/docs/shared/plugins/intro.md @@ -17,10 +17,9 @@ Nx plugins help you scaffold new projects, pre-configure tooling, follow best pr {% cards cols="2" %} -{% card title="Browse Existing Plugins" description="Find a plugin to use" url="/plugins/registry" /%} +{% card title="Browse Existing Plugins" description="Find a plugin to use" url="/extending-nx/registry" /%} {% card title="Use Task Executors" description="Run operations on your code" url="/core-features/plugin-features/use-task-executors" /%} {% card title="Use Code Generators" description="Create or modify code" url="/core-features/plugin-features/use-code-generators" /%} -{% card title="Automate Updating Dependencies" description="Keep code up to date with package breaking changes" url="/core-features/automate-updating-dependencies" /%} {% /cards %} @@ -30,9 +29,9 @@ Local plugins allow you to automate repository specific tasks and enforce best p {% cards cols="3" %} -{% card title="Create a Plugin" description="Set up a new plugin" url="/plugins/tutorials/create-plugin" /%} -{% card title="Local Generators" description="Add a generator to your plugin" url="/plugins/recipes/local-generators" /%} -{% card title="Local Executors" description="Add an executor to your plugin" url="/plugins/recipes/local-executors" /%} +{% card title="Create a Plugin" description="Set up a new plugin" url="/extending-nx/tutorials/create-plugin" /%} +{% card title="Local Generators" description="Add a generator to your plugin" url="/extending-nx/recipes/local-generators" /%} +{% card title="Local Executors" description="Add an executor to your plugin" url="/extending-nx/recipes/local-executors" /%} {% /cards %} @@ -42,8 +41,8 @@ If your plugin has functionality that would be useful in more than just your rep {% cards cols="2" %} -{% card title="Share Your Plugin" description="Submit your plugin to the Nx plugin registry" url="/plugins/tutorials/publish-plugin" /%} -{% card title="Migration Generators" description="Update repos when you introduce breaking changes" url="/plugins/recipes/migration-generators" /%} +{% card title="Share Your Plugin" description="Submit your plugin to the Nx plugin registry" url="/extending-nx/tutorials/publish-plugin" /%} +{% card title="Migration Generators" description="Update repos when you introduce breaking changes" url="/extending-nx/recipes/migration-generators" /%} {% /cards %} @@ -53,8 +52,8 @@ You can also hook into the way Nx works and modify it to suit your needs {% cards cols="3" %} -{% card title="Scaffold a New Workspace" description="Set up a new repo" url="/plugins/recipes/create-preset" /%} -{% card title="Project Inference Plugins" description="Modify how Nx identifies projects" url="/plugins/recipes/project-inference-plugins" /%} -{% card title="Project Graph Plugins" description="Modify the Nx graph" url="/plugins/recipes/project-graph-plugins" /%} +{% card title="Scaffold a New Workspace" description="Set up a new repo" url="/extending-nx/recipes/create-preset" /%} +{% card title="Project Inference Plugins" description="Modify how Nx identifies projects" url="/extending-nx/recipes/project-inference-plugins" /%} +{% card title="Project Graph Plugins" description="Modify the Nx graph" url="/extending-nx/recipes/project-graph-plugins" /%} {% /cards %} diff --git a/docs/shared/plugins/maintain-published-plugin.md b/docs/shared/plugins/maintain-published-plugin.md index 4219b44e5f..0bd0b5419c 100644 --- a/docs/shared/plugins/maintain-published-plugin.md +++ b/docs/shared/plugins/maintain-published-plugin.md @@ -1,6 +1,6 @@ # Maintain a Published Plugins -To create a plugin, see the [create a local plugin tutorial](/plugins/tutorials/create-plugin). +To create a plugin, see the [create a local plugin tutorial](/extending-nx/tutorials/create-plugin). ## Publish your Nx Plugin @@ -32,4 +32,4 @@ We will then verify the plugin, offer suggestions or merge the pull request! ## Write Migrations -Once other repos are using your plugin, it would help them if you write migrations to automatically update their configuration files whenever you make breaking changes. Read the [migration generators guide](/plugins/recipes/migration-generators) to find out how. +Once other repos are using your plugin, it would help them if you write migrations to automatically update their configuration files whenever you make breaking changes. Read the [migration generators guide](/extending-nx/recipes/migration-generators) to find out how. diff --git a/docs/shared/react-standalone-tutorial/react-standalone.md b/docs/shared/react-standalone-tutorial/react-standalone.md index a9420d5358..ff5bcb4be7 100644 --- a/docs/shared/react-standalone-tutorial/react-standalone.md +++ b/docs/shared/react-standalone-tutorial/react-standalone.md @@ -163,7 +163,7 @@ Each target contains a configuration object that tells Nx how to run that target The most critical parts are: -- `executor` - this is of the syntax `:`, where the `plugin` is an NPM package containing an [Nx Plugin](/plugins/intro/getting-started) and `` points to a function that runs the task. In this case, the `@nx/vite` plugin contains the `dev-server` executor which serves the React app using Vite. +- `executor` - this is of the syntax `:`, where the `plugin` is an NPM package containing an [Nx Plugin](/extending-nx/intro/getting-started) and `` points to a function that runs the task. In this case, the `@nx/vite` plugin contains the `dev-server` executor which serves the React app using Vite. - `options` - these are additional properties and flags passed to the executor function to customize it Learn more about how to [run tasks with Nx](/core-features/run-tasks). diff --git a/docs/shared/recipes/generators/modifying-files.md b/docs/shared/recipes/generators/modifying-files.md index 5d0f25c35c..83d3504a28 100644 --- a/docs/shared/recipes/generators/modifying-files.md +++ b/docs/shared/recipes/generators/modifying-files.md @@ -4,7 +4,7 @@ Modifying existing files is an order of magnitude harder than creating new files ## Compose Existing Generators -If you can compose together existing generators to modify the files you need, you should take that approach. See [Composing Generators](/plugins/recipes/composing-generators) for more information. +If you can compose together existing generators to modify the files you need, you should take that approach. See [Composing Generators](/extending-nx/recipes/composing-generators) for more information. ## Modify JSON Files diff --git a/docs/shared/recipes/plugins/create-preset.md b/docs/shared/recipes/plugins/create-preset.md index 51f50e2eee..b975ca50f2 100644 --- a/docs/shared/recipes/plugins/create-preset.md +++ b/docs/shared/recipes/plugins/create-preset.md @@ -13,7 +13,7 @@ width="100%" /%} At its core, a preset is a special [generator](/core-features/plugin-features/use-code-generators) that is shipped as part of an Nx Plugin package. -All first-party Nx presets are built into Nx itself, but you can [create your own plugin](/plugins/intro/getting-started) and create a generator with the magic name: `preset`. Once you've [published your plugin](/plugins/tutorials/publish-plugin) on npm, you can now run the `create-nx-workspace` command with the preset option set to the name of your published package. +All first-party Nx presets are built into Nx itself, but you can [create your own plugin](/extending-nx/intro/getting-started) and create a generator with the magic name: `preset`. Once you've [published your plugin](/extending-nx/tutorials/publish-plugin) on npm, you can now run the `create-nx-workspace` command with the preset option set to the name of your published package. To use a concrete example, let's look at the [`qwik-nx`](https://www.npmjs.com/package/qwik-nx) Nx community plugin. They include a [preset generator](https://github.com/qwikifiers/qwik-nx/tree/main/packages/qwik-nx/src/generators/preset) that you can use to create a new Nx workspace with Qwik support. @@ -90,7 +90,7 @@ export default async function (tree: Tree, options: PresetGeneratorSchema) { } ``` -To get an in-depth guide on customizing/running or debugging your generator see [local generators](/plugins/recipes/local-generators). +To get an in-depth guide on customizing/running or debugging your generator see [local generators](/extending-nx/recipes/local-generators). ## Usage diff --git a/docs/shared/reference/glossary.md b/docs/shared/reference/glossary.md index b3b3cbffd4..56a0e42a9b 100644 --- a/docs/shared/reference/glossary.md +++ b/docs/shared/reference/glossary.md @@ -136,7 +136,7 @@ A repository using Nx without [plugins](#plugin) that prioritizes the independen A set of [executors](#executor), [generators](#generator) and other code that extends the functionality of Nx. May be installed from a package manager like NPM or developed directly in the repository. -> See: [Create Your Own Plugin](/plugins/intro/getting-started) +> See: [Create Your Own Plugin](/extending-nx/intro/getting-started) ### Polyrepo diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 2ae27faf33..bdb5550127 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -222,26 +222,26 @@ - [Standalone NgRx APIs](/recipes/other/standalone-ngrx-apis) - [Unknown Local Cache Error](/recipes/other/unknown-local-cache) -- Plugins +- Extending-nx - - [Intro](/plugins/intro) - - [Getting Started with Plugins](/plugins/intro/getting-started) - - [Plugin Registry](/plugins/registry) - - [5 Min Tutorials](/plugins/tutorials) - - [Create a Local Plugin](/plugins/tutorials/create-plugin) - - [Maintain a Published Plugin](/plugins/tutorials/publish-plugin) - - [Recipes](/plugins/recipes) - - [Write a Simple Executor](/plugins/recipes/local-executors) - - [Compose Executors](/plugins/recipes/compose-executors) - - [Write a Simple Generator](/plugins/recipes/local-generators) - - [Compose Generators](/plugins/recipes/composing-generators) - - [Provide Options for Generators](/plugins/recipes/generator-options) - - [Create Files](/plugins/recipes/creating-files) - - [Modify Files](/plugins/recipes/modifying-files) - - [Write a Migration](/plugins/recipes/migration-generators) - - [Create a Preset](/plugins/recipes/create-preset) - - [Modify the Project Graph](/plugins/recipes/project-graph-plugins) - - [Identify Custom Projects](/plugins/recipes/project-inference-plugins) + - [Intro](/extending-nx/intro) + - [Getting Started with Plugins](/extending-nx/intro/getting-started) + - [Plugin Registry](/extending-nx/registry) + - [5 Min Tutorials](/extending-nx/tutorials) + - [Create a Local Plugin](/extending-nx/tutorials/create-plugin) + - [Maintain a Published Plugin](/extending-nx/tutorials/publish-plugin) + - [Recipes](/extending-nx/recipes) + - [Write a Simple Executor](/extending-nx/recipes/local-executors) + - [Compose Executors](/extending-nx/recipes/compose-executors) + - [Write a Simple Generator](/extending-nx/recipes/local-generators) + - [Compose Generators](/extending-nx/recipes/composing-generators) + - [Provide Options for Generators](/extending-nx/recipes/generator-options) + - [Create Files](/extending-nx/recipes/creating-files) + - [Modify Files](/extending-nx/recipes/modifying-files) + - [Write a Migration](/extending-nx/recipes/migration-generators) + - [Create a Preset](/extending-nx/recipes/create-preset) + - [Modify the Project Graph](/extending-nx/recipes/project-graph-plugins) + - [Identify Custom Projects](/extending-nx/recipes/project-inference-plugins) - Cloud diff --git a/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx b/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx index 5e6bc95651..2188ffeded 100644 --- a/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx +++ b/nx-dev/feature-doc-viewer/src/lib/doc-viewer.tsx @@ -22,7 +22,7 @@ export function DocViewer({ const router = useRouter(); const hideTableOfContent = router.asPath.includes('/getting-started/intro') || - router.asPath.includes('/plugins/intro/getting-started') || + router.asPath.includes('/extending-nx/intro/getting-started') || router.asPath.includes('/packages/devkit') || router.asPath.includes('/reference/glossary'); const ref = useRef(null); diff --git a/nx-dev/nx-dev/lib/plugins.api.ts b/nx-dev/nx-dev/lib/plugins.api.ts index a969352b72..c4c3e11d8c 100644 --- a/nx-dev/nx-dev/lib/plugins.api.ts +++ b/nx-dev/nx-dev/lib/plugins.api.ts @@ -1,9 +1,9 @@ import { DocumentsApi } from '@nx/nx-dev/data-access-documents/node-only'; -import documents from '../public/documentation/generated/manifests/plugins.json'; +import documents from '../public/documentation/generated/manifests/extending-nx.json'; import { tagsApi } from './tags.api'; export const nxPluginsApi = new DocumentsApi({ - id: 'plugins', + id: 'extending-nx', manifest: documents, prefix: '', publicDocsRoot: 'public/documentation', diff --git a/nx-dev/nx-dev/pages/plugins/[...segments].tsx b/nx-dev/nx-dev/pages/extending-nx/[...segments].tsx similarity index 94% rename from nx-dev/nx-dev/pages/plugins/[...segments].tsx rename to nx-dev/nx-dev/pages/extending-nx/[...segments].tsx index df2a65da9e..3e9c375f69 100644 --- a/nx-dev/nx-dev/pages/plugins/[...segments].tsx +++ b/nx-dev/nx-dev/pages/extending-nx/[...segments].tsx @@ -83,7 +83,7 @@ export const getStaticPaths: GetStaticPaths = () => { return { paths: nxPluginsApi .getSlugsStaticDocumentPaths() - .filter((v) => v !== '/plugins/registry'), + .filter((v) => v !== '/extending-nx/registry'), fallback: 'blocking', }; }; @@ -93,7 +93,7 @@ export const getStaticProps: GetStaticProps = async ({ params: { segments: string[] }; }) => { try { - const segments = ['plugins', ...params.segments]; + const segments = ['extending-nx', ...params.segments]; const document = nxPluginsApi.getDocument(segments); return { props: { @@ -101,7 +101,7 @@ export const getStaticProps: GetStaticProps = async ({ relatedDocuments: tagsApi .getAssociatedItemsFromTags(document.tags) .filter((item) => item.path !== '/' + segments.join('/')), // Remove currently displayed item - menu: menusApi.getMenu('plugins', ''), + menu: menusApi.getMenu('extending-nx', ''), }, }; } catch (e) { diff --git a/nx-dev/nx-dev/pages/plugins/index.tsx b/nx-dev/nx-dev/pages/extending-nx/index.tsx similarity index 94% rename from nx-dev/nx-dev/pages/plugins/index.tsx rename to nx-dev/nx-dev/pages/extending-nx/index.tsx index 3c82d5c314..1ace8563b1 100644 --- a/nx-dev/nx-dev/pages/plugins/index.tsx +++ b/nx-dev/nx-dev/pages/extending-nx/index.tsx @@ -81,13 +81,13 @@ export default function PluginsRoot({ export const getStaticProps: GetStaticProps = async () => { const document = nxPluginsApi.generateRootDocumentIndex({ - name: 'Plugins', - description: 'Learn quickly how to do things with Nx.', + name: 'Extending Nx', + description: 'Learn more about creating your own plugin, extending Nx.', }); return { props: { document, - menu: menusApi.getMenu('plugins', ''), + menu: menusApi.getMenu('extending-nx', ''), relatedDocuments: document.tags .map((t) => tagsApi.getAssociatedItems(t)) .flat(), diff --git a/nx-dev/nx-dev/pages/plugins/registry.tsx b/nx-dev/nx-dev/pages/extending-nx/registry.tsx similarity index 98% rename from nx-dev/nx-dev/pages/plugins/registry.tsx rename to nx-dev/nx-dev/pages/extending-nx/registry.tsx index 01f5352dc3..1d215e3617 100644 --- a/nx-dev/nx-dev/pages/plugins/registry.tsx +++ b/nx-dev/nx-dev/pages/extending-nx/registry.tsx @@ -71,7 +71,7 @@ export default function Browse(props: BrowseProps): JSX.Element { menu: Menu; } = { menu: { - sections: [getBasicPluginsSection(menusApi.getMenu('plugins', ''))], + sections: [getBasicPluginsSection(menusApi.getMenu('extending-nx', ''))], }, }; diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index 6510561a16..bdf6424edd 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -213,7 +213,7 @@ const diataxis = { '/using-nx/updating-nx': '/core-features/automate-updating-dependencies', '/using-nx/nx-nodejs-typescript-version-matrix': '/workspace/nx-nodejs-typescript-version-matrix', - '/extending-nx/nx-devkit': '/plugins/intro/getting-started', + '/extending-nx/nx-devkit': '/extending-nx/intro/getting-started', '/extending-nx/project-inference-plugins': '/recipes/advanced-plugins/project-inference-plugins', '/extending-nx/project-graph-plugins': @@ -654,27 +654,33 @@ const nested5minuteTutorialUrls = { }; const pluginUrls = { - '/plugin-features/create-your-own-plugin': '/plugins/tutorials/create-plugin', - '/recipes/advanced-plugins': '/plugins/recipes', - '/recipes/advanced-plugins/create-preset': '/plugins/recipes/create-preset', + '/plugin-features/create-your-own-plugin': + '/extending-nx/tutorials/create-plugin', + '/recipes/advanced-plugins': '/extending-nx/recipes', + '/recipes/advanced-plugins/create-preset': + '/extending-nx/recipes/create-preset', '/recipes/advanced-plugins/migration-generators': - '/plugins/recipes/migration-generators', + '/extending-nx/recipes/migration-generators', '/recipes/advanced-plugins/project-graph-plugins': - '/plugins/recipes/project-graph-plugins', + '/extending-nx/recipes/project-graph-plugins', '/recipes/advanced-plugins/project-inference-plugins': - '/plugins/recipes/project-inference-plugins', + '/extending-nx/recipes/project-inference-plugins', '/recipes/advanced-plugins/share-your-plugin': - '/plugins/tutorials/maintain-published-plugin', - '/recipes/executors/compose-executors': '/plugins/recipes/compose-executors', + '/extending-nx/tutorials/maintain-published-plugin', + '/recipes/executors/compose-executors': + '/extending-nx/recipes/compose-executors', '/recipes/executors/creating-custom-executors': - '/plugins/recipes/local-executors', - '/recipes/generators': '/plugins/recipes', + '/extending-nx/recipes/local-executors', + '/recipes/generators': '/extending-nx/recipes', '/recipes/generators/composing-generators': - '/plugins/recipes/composing-generators', - '/recipes/generators/creating-files': '/plugins/recipes/creating-files', - '/recipes/generators/generator-options': '/plugins/recipes/generator-options', - '/recipes/generators/local-generators': '/plugins/recipes/local-generators', - '/recipes/generators/modifying-files': '/plugins/recipes/modifying-files', + '/extending-nx/recipes/composing-generators', + '/recipes/generators/creating-files': '/extending-nx/recipes/creating-files', + '/recipes/generators/generator-options': + '/extending-nx/recipes/generator-options', + '/recipes/generators/local-generators': + '/extending-nx/recipes/local-generators', + '/recipes/generators/modifying-files': + '/extending-nx/recipes/modifying-files', }; const referenceUrls = { @@ -709,6 +715,11 @@ const makeMoreConceptsSubmenu = { '/more-concepts/:path*': '/concepts/more-concepts/:path*', }; +const pluginsToExtendNx = { + '/plugins': '/extending-nx', + '/plugins/:path*': '/extending-nx/:path*', +}; + /** * Public export API */ @@ -731,4 +742,5 @@ module.exports = { missingAndCatchAllRedirects, movePluginFeaturesToCore, makeMoreConceptsSubmenu, + pluginsToExtendNx, }; diff --git a/nx-dev/ui-common/src/lib/documentation-header.tsx b/nx-dev/ui-common/src/lib/documentation-header.tsx index d27eabab35..aaf123d2ba 100644 --- a/nx-dev/ui-common/src/lib/documentation-header.tsx +++ b/nx-dev/ui-common/src/lib/documentation-header.tsx @@ -40,7 +40,7 @@ export function DocumentationHeader({ const router = useRouter(); const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud'); const isPackages: boolean = router.asPath.startsWith('/packages'); - const isPlugins: boolean = router.asPath.startsWith('/plugins'); + const isPlugins: boolean = router.asPath.startsWith('/extending-nx'); const isRecipes: boolean = router.asPath.startsWith('/recipes'); const isChangelog: boolean = router.asPath.startsWith('/changelog'); const isNx: boolean = @@ -53,16 +53,16 @@ export function DocumentationHeader({ href: '/nx-cloud/intro/what-is-nx-cloud', current: isNxCloud, }, + { + name: 'Extending Nx', + href: '/extending-nx/intro/getting-started', + current: isPlugins, + }, { name: 'Packages', href: '/packages', current: isPackages, }, - { - name: 'Plugins', - href: '/plugins/intro/getting-started', - current: isPlugins, - }, { name: 'Recipes', href: '/recipes', diff --git a/nx-dev/ui-common/src/lib/header.tsx b/nx-dev/ui-common/src/lib/header.tsx index 4dd814f34d..c00432624f 100644 --- a/nx-dev/ui-common/src/lib/header.tsx +++ b/nx-dev/ui-common/src/lib/header.tsx @@ -68,9 +68,9 @@ export function Header(): JSX.Element { href: '/community', }, { - name: 'Plugins', + name: 'Extending Nx', description: 'Add capabilities to your workspace with plugins.', - href: '/plugins/intro/getting-started', + href: '/extending-nx/intro/getting-started', }, { name: 'Nx Conf', @@ -186,7 +186,7 @@ export function Header(): JSX.Element { Community diff --git a/nx-dev/ui-common/src/lib/sidebar.tsx b/nx-dev/ui-common/src/lib/sidebar.tsx index 4a54e840e2..26ba8bfeef 100644 --- a/nx-dev/ui-common/src/lib/sidebar.tsx +++ b/nx-dev/ui-common/src/lib/sidebar.tsx @@ -179,7 +179,7 @@ export function SidebarMobile({ const router = useRouter(); const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud'); const isPackages: boolean = router.asPath.startsWith('/packages'); - const isPlugins: boolean = router.asPath.startsWith('/plugins'); + const isPlugins: boolean = router.asPath.startsWith('/extending-nx'); const isRecipes: boolean = router.asPath.startsWith('/recipes'); const isNx: boolean = !isNxCloud && !isPackages && !isPlugins && !isRecipes; @@ -197,8 +197,8 @@ export function SidebarMobile({ current: isPackages, }, { - name: 'Plugins', - href: '/plugins/intro/getting-started', + name: 'Extending Nx', + href: '/extending-nx/intro/getting-started', current: isPlugins, }, { diff --git a/nx-dev/ui-community/src/lib/connect-with-us.tsx b/nx-dev/ui-community/src/lib/connect-with-us.tsx index 987ebd697a..7bd57ccee2 100644 --- a/nx-dev/ui-community/src/lib/connect-with-us.tsx +++ b/nx-dev/ui-community/src/lib/connect-with-us.tsx @@ -18,7 +18,10 @@ export function ConnectWithUs(): JSX.Element {

Looking for community plugins? Find them listed in the{' '} - + plugin registry . diff --git a/nx-dev/ui-home/src/lib/monorepo-styles.tsx b/nx-dev/ui-home/src/lib/monorepo-styles.tsx index 881624f39c..b74b7749d3 100644 --- a/nx-dev/ui-home/src/lib/monorepo-styles.tsx +++ b/nx-dev/ui-home/src/lib/monorepo-styles.tsx @@ -38,7 +38,7 @@ export function MonorepoStyles(): JSX.Element { let Nx do the heavy lifting{' '} with its set of{' '} diff --git a/scripts/documentation/generators/generate-manifests.ts b/scripts/documentation/generators/generate-manifests.ts index cbe2a27dd9..9a0d9ee779 100644 --- a/scripts/documentation/generators/generate-manifests.ts +++ b/scripts/documentation/generators/generate-manifests.ts @@ -368,10 +368,10 @@ function createDocumentSections( prefix: 'recipes', }, { - name: 'plugins', - content: documents.find((x) => x.id === 'plugins')! + name: 'extending-nx', + content: documents.find((x) => x.id === 'extending-nx')! .itemList as Partial[], - prefix: 'plugins', + prefix: 'extending-nx', }, { name: 'cloud',