diff --git a/docs/contributing/docs-and-blog-components.md b/docs/contributing/docs-and-blog-components.md
index 6dace3dd1257a..2c9274a8ed3cc 100644
--- a/docs/contributing/docs-and-blog-components.md
+++ b/docs/contributing/docs-and-blog-components.md
@@ -354,4 +354,4 @@ plugins: [
]
```
-Line numbers and line highlighting can be added to code blocks as well, and is explained in detail in the [`gatsby-remark-prismjs` README](/packages/gatsby-remark-prismjs/?=remark#optional-add-line-highlighting-styles).
+Line numbers and line highlighting can be added to code blocks as well, and is explained in detail in the [`gatsby-remark-prismjs` README](/plugins/gatsby-remark-prismjs/?=remark#optional-add-line-highlighting-styles).
diff --git a/docs/contributing/gatsby-style-guide.md b/docs/contributing/gatsby-style-guide.md
index b52849e6817c1..c993a1329baeb 100644
--- a/docs/contributing/gatsby-style-guide.md
+++ b/docs/contributing/gatsby-style-guide.md
@@ -29,7 +29,7 @@ examples:
- [Reference guide overviews](/docs/styling/)
- [Recipes](/docs/recipes/)
- [Tutorials](/docs/tutorial/part-one/)
-- [Plugin README](/packages/gatsby-source-filesystem/)
+- [Plugin README](/plugins/gatsby-source-filesystem/)
- [Starter README](https://github.com/gatsbyjs/gatsby-starter-default)
Please see the [Docs templates](/contributing/docs-templates/) for guidelines on how to format the above kinds of documents, as well as tips for different types of guide articles.
diff --git a/docs/contributing/how-to-make-a-reproducible-test-case.md b/docs/contributing/how-to-make-a-reproducible-test-case.md
index c44a335f5a181..defc714664ca9 100644
--- a/docs/contributing/how-to-make-a-reproducible-test-case.md
+++ b/docs/contributing/how-to-make-a-reproducible-test-case.md
@@ -17,7 +17,7 @@ A reproducible test case is a great way to share a specific environment that cau
## Steps to create a reproducible test case
- Create a new Gatsby site with a starter, the official `hello-world` starter is a great 'barebones' starting point here: `gatsby new bug-repro https://github.com/gatsbyjs/gatsby-starter-hello-world`
-- Add any Gatsby plugins that relate to the issue. For example, if you're having problems with Gatsby MDX you should install and configure [`gatsby-plugin-mdx`](/packages/gatsby-plugin-mdx/). Only add plugins that are needed to demonstrate the problem.
+- Add any Gatsby plugins that relate to the issue. For example, if you're having problems with Gatsby MDX you should install and configure [`gatsby-plugin-mdx`](/plugins/gatsby-plugin-mdx/). Only add plugins that are needed to demonstrate the problem.
- Add the code needed to recreate the error you've seen.
- Publish the code (your GitHub account is a good place to do this) and then link to it when [creating an issue](/contributing/how-to-file-an-issue/).
diff --git a/docs/contributing/how-to-write-a-plugin-readme.md b/docs/contributing/how-to-write-a-plugin-readme.md
index 966e334437121..a4c6c70b29c14 100644
--- a/docs/contributing/how-to-write-a-plugin-readme.md
+++ b/docs/contributing/how-to-write-a-plugin-readme.md
@@ -5,7 +5,7 @@ issue: https://github.com/gatsbyjs/gatsby/issues/21599
## Near-perfect example of a plugin README
-[`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/)
+[`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/)
```markdown
## Description
diff --git a/docs/contributing/translation/sync-guide.md b/docs/contributing/translation/sync-guide.md
index 73160e7076b9e..f6f7569ec8cea 100644
--- a/docs/contributing/translation/sync-guide.md
+++ b/docs/contributing/translation/sync-guide.md
@@ -126,7 +126,7 @@ The only necessary change is to ensure the translated content carries over these
These changes involve updating the URL of a link:
```diff
-- Please see our [plugins page](/packages).
+- Please see our [plugins page](/plugins).
+ Please see our [plugins page](/plugins).
```
diff --git a/docs/docs/add-page-metadata.md b/docs/docs/add-page-metadata.md
index a0cb3c3a23ed4..3824ab097cf39 100644
--- a/docs/docs/add-page-metadata.md
+++ b/docs/docs/add-page-metadata.md
@@ -8,7 +8,7 @@ Adding metadata to pages (such as a title or description) is key in helping sear
[React Helmet](https://github.com/nfl/react-helmet) is a package that provides a React component interface for you to manage your [document head](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head).
-Gatsby's [react helmet plugin](/packages/gatsby-plugin-react-helmet/) provides drop-in support for server rendering data added with React Helmet. Using the plugin, attributes you add to React Helmet will be added to the static HTML pages that Gatsby builds.
+Gatsby's [react helmet plugin](/plugins/gatsby-plugin-react-helmet/) provides drop-in support for server rendering data added with React Helmet. Using the plugin, attributes you add to React Helmet will be added to the static HTML pages that Gatsby builds.
## Using `React Helmet` and `gatsby-plugin-react-helmet`
diff --git a/docs/docs/adding-a-shopping-cart-with-snipcart.md b/docs/docs/adding-a-shopping-cart-with-snipcart.md
index c506bf51ad7f1..30d92417961d1 100644
--- a/docs/docs/adding-a-shopping-cart-with-snipcart.md
+++ b/docs/docs/adding-a-shopping-cart-with-snipcart.md
@@ -10,7 +10,7 @@ Combine it with a source of products (like a CMS or an e-commerce platform such
To get started, you'll need to have the following set up:
-- A Gatsby site with [`gatsby-plugin-snipcart`](/packages/gatsby-plugin-snipcart/) installed
+- A Gatsby site with [`gatsby-plugin-snipcart`](/plugins/gatsby-plugin-snipcart/) installed
- A [Snipcart](https://snipcart.com/) account
- A Snipcart test API key
- A list of products to sell
@@ -186,7 +186,7 @@ The following quote is from the Snipcart [payment gateway page](https://app.snip
## Other resources
- [Build an E-commerce Site with Gatsby, DatoCMS, and Snipcart](/tutorial/e-commerce-with-datocms-and-snipcart/) tutorial
-- [`gatsby-plugin-snipcart`](/packages/gatsby-plugin-snipcart/)
+- [`gatsby-plugin-snipcart`](/plugins/gatsby-plugin-snipcart/)
- [OneShopper Gatsby starter](/starters/rohitguptab/OneShopper/)
- Reference guide on [sourcing from Etsy](/docs/sourcing-from-etsy/)
- Reference guide on [processing payments with Stripe](/docs/how-to/adding-common-features/processing-payments-with-stripe/)
diff --git a/docs/docs/adding-search-with-algolia.md b/docs/docs/adding-search-with-algolia.md
index fc4bc45a2ba2d..9d7fefde6cf39 100644
--- a/docs/docs/adding-search-with-algolia.md
+++ b/docs/docs/adding-search-with-algolia.md
@@ -191,7 +191,7 @@ The guide will use the following frameworks:
- [React InstantSearch](https://community.algolia.com/react-instantsearch), a component library provided by Algolia for easily building search interfaces.
- [Algolia Search](https://www.npmjs.com/package/algoliasearch) provides the API client for calling Algolia.
-- [Styled Components](https://styled-components.com) for embedding the CSS in the code, integrated using the [Gatsby styled component plugin](/packages/gatsby-plugin-styled-components/).
+- [Styled Components](https://styled-components.com) for embedding the CSS in the code, integrated using the [Gatsby styled component plugin](/plugins/gatsby-plugin-styled-components/).
- [Styled Icons](https://styled-icons.js.org/) provides the magnifying glass icon for the search bar.
Styled Components can also be replaced by any other CSS solution you prefer.
diff --git a/docs/docs/api-specification.md b/docs/docs/api-specification.md
index 80518bf159ace..c7e874d051f0d 100644
--- a/docs/docs/api-specification.md
+++ b/docs/docs/api-specification.md
@@ -21,13 +21,13 @@ Plugins can extend Gatsby in many ways:
- Adding things to the rendered HTML (e.g. meta tags, analytics JS snippets like Google Analytics)
- Writing out things to build directory based on site data (e.g. service worker, sitemap, RSS feed)
-A single plugin can use multiple APIs to accomplish its purpose. E.g. the plugin for the CSS-in-JS library [Glamor](/packages/gatsby-plugin-glamor/):
+A single plugin can use multiple APIs to accomplish its purpose. E.g. the plugin for the CSS-in-JS library [Glamor](/plugins/gatsby-plugin-glamor/):
1. modifies the webpack config to add its plugin
2. adds a Babel plugin to replace React's default createElement
3. modifies server rendering to extract out the critical CSS for each rendered page and inline the CSS in the `
` of that HTML page.
-Plugins can also depend on other plugins. [The Sharp plugin](/packages/gatsby-plugin-sharp/) exposes a number of high-level APIs for transforming images that several other Gatsby image plugins depend on. [gatsby-transformer-remark](/packages/gatsby-transformer-remark/) does basic markdown->HTML transformation but exposes an API to allow other plugins to intervene in the conversion process e.g. [gatsby-remark-prismjs](/packages/gatsby-remark-prismjs/) which adds highlighting to code blocks.
+Plugins can also depend on other plugins. [The Sharp plugin](/plugins/gatsby-plugin-sharp/) exposes a number of high-level APIs for transforming images that several other Gatsby image plugins depend on. [gatsby-transformer-remark](/plugins/gatsby-transformer-remark/) does basic markdown->HTML transformation but exposes an API to allow other plugins to intervene in the conversion process e.g. [gatsby-remark-prismjs](/plugins/gatsby-remark-prismjs/) which adds highlighting to code blocks.
Transformer plugins are decoupled from source plugins. Transformer plugins look at the media type of new nodes created by source plugins to decide if they can transform it or not. Which means that a markdown transformer plugin can transform markdown from any source without any other configuration e.g. from a file, a code comment, or external service like Trello which supports markdown in some of its data fields.
diff --git a/docs/docs/building-an-e-commerce-site.md b/docs/docs/building-an-e-commerce-site.md
index bf4bc0d56b7b1..410fc1a00cd24 100644
--- a/docs/docs/building-an-e-commerce-site.md
+++ b/docs/docs/building-an-e-commerce-site.md
@@ -2,7 +2,7 @@
title: Building an E-commerce Site
---
-The speed and performance of sites built with Gatsby make it a great tool for building e-commerce sites. There are existing plugins for connecting services like [Shopify](/packages/gatsby-source-shopify/) and [Snipcart](/packages/gatsby-plugin-snipcart/) to Gatsby, and this section contains reference guides to help get things setup.
+The speed and performance of sites built with Gatsby make it a great tool for building e-commerce sites. There are existing plugins for connecting services like [Shopify](/plugins/gatsby-source-shopify/) and [Snipcart](/plugins/gatsby-plugin-snipcart/) to Gatsby, and this section contains reference guides to help get things setup.
To see examples of e-commerce sites built with Gatsby, check out the [showcase](/showcase/?filters%5B0%5D=E-commerce).
diff --git a/docs/docs/building-an-ecommerce-site-with-shopify.md b/docs/docs/building-an-ecommerce-site-with-shopify.md
index 3244cda2d2aa3..7dd11c62648db 100644
--- a/docs/docs/building-an-ecommerce-site-with-shopify.md
+++ b/docs/docs/building-an-ecommerce-site-with-shopify.md
@@ -17,7 +17,7 @@ If you are already comfortable with Gatsby and Shopify, you might want to check
1. If you do not already have one ready, [create a Gatsby site](/docs/quick-start).
-2. Install the [`gatsby-source-shopify`](/packages/gatsby-source-shopify/) plugin and [`shopify-buy`](https://github.com/Shopify/js-buy-sdk) package.
+2. Install the [`gatsby-source-shopify`](/plugins/gatsby-source-shopify/) plugin and [`shopify-buy`](https://github.com/Shopify/js-buy-sdk) package.
```shell
npm install gatsby-source-shopify shopify-buy
diff --git a/docs/docs/caching.md b/docs/docs/caching.md
index 3d7a9a30d2a8f..58a88d24dd564 100644
--- a/docs/docs/caching.md
+++ b/docs/docs/caching.md
@@ -44,7 +44,7 @@ How you setup your caching depends on how you host your site. We encourage peopl
The following plugins have been created:
-- [gatsby-plugin-netlify](/packages/gatsby-plugin-netlify/)
+- [gatsby-plugin-netlify](/plugins/gatsby-plugin-netlify/)
- [gatsby-plugin-s3](https://github.com/jariz/gatsby-plugin-s3)
When deploying with Vercel, follow the instructions in the [Vercel documentation](https://vercel.com/guides/deploying-gatsby-with-vercel#bonus:-cache-your-gatsby-assets).
diff --git a/docs/docs/conceptual/graphql-concepts.md b/docs/docs/conceptual/graphql-concepts.md
index 98f9e0e24e0e6..01e28103dc345 100644
--- a/docs/docs/conceptual/graphql-concepts.md
+++ b/docs/docs/conceptual/graphql-concepts.md
@@ -182,7 +182,7 @@ See the full list of formatting options by viewing our [GraphQL reference page](
### Markdown
-Gatsby has _transformer_ plugins which can transform data from one form to another. A common example is markdown. If you install [`gatsby-transformer-remark`](/packages/gatsby-transformer-remark/), then in your queries, you can specify if you want the transformed HTML version instead of markdown:
+Gatsby has _transformer_ plugins which can transform data from one form to another. A common example is markdown. If you install [`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark/), then in your queries, you can specify if you want the transformed HTML version instead of markdown:
```graphql
markdownRemark {
@@ -192,9 +192,9 @@ markdownRemark {
### Images
-Gatsby has rich support for processing images. Responsive images are a big part of the modern web and typically involve creating 5+ sized thumbnails per photo. With Gatsby's [`gatsby-transformer-sharp`](/packages/gatsby-transformer-sharp/), you can _query_ your images for responsive versions. The query automatically creates all the needed responsive thumbnails and returns `src` and `srcSet` fields to add to your image element.
+Gatsby has rich support for processing images. Responsive images are a big part of the modern web and typically involve creating 5+ sized thumbnails per photo. With Gatsby's [`gatsby-transformer-sharp`](/plugins/gatsby-transformer-sharp/), you can _query_ your images for responsive versions. The query automatically creates all the needed responsive thumbnails and returns `src` and `srcSet` fields to add to your image element.
-Combined with a special Gatsby image component, [gatsby-image](/packages/gatsby-image/), you have a very powerful set of primitives for building sites with images.
+Combined with a special Gatsby image component, [gatsby-image](/plugins/gatsby-image/), you have a very powerful set of primitives for building sites with images.
This is what a component using `gatsby-image` looks like:
diff --git a/docs/docs/conceptual/making-your-site-accessible.md b/docs/docs/conceptual/making-your-site-accessible.md
index 763936fc786d9..56914cb25f290 100644
--- a/docs/docs/conceptual/making-your-site-accessible.md
+++ b/docs/docs/conceptual/making-your-site-accessible.md
@@ -49,7 +49,7 @@ For more on supported rules, check out the docs for [`eslint-plugin-jsx-a11y`](h
}
```
-Note: Including a local `.eslintrc` file will [override](/docs/how-to/custom-configuration/eslint/#configuring-eslint) all of Gatsby's default linting and disable the built-in `eslint-loader`, meaning your tweaked rules won't make it to your browser's developer console or your terminal window but will still be displayed if you have ESLint plugins enabled in your IDE. If you would like to change this behavior and make sure the `eslint-loader` pulls in your customizations, you'll need to enable the loader yourself. One way to do this is by using the Community plugin [`gatsby-plugin-eslint`](/packages/gatsby-plugin-eslint/). Additionally, if you would still like to take advantage of some subset of the default [ESLint config Gatsby ships with](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/utils/eslint-config.ts), you'll need to copy them manually to your local `.eslintrc` file.
+Note: Including a local `.eslintrc` file will [override](/docs/how-to/custom-configuration/eslint/#configuring-eslint) all of Gatsby's default linting and disable the built-in `eslint-loader`, meaning your tweaked rules won't make it to your browser's developer console or your terminal window but will still be displayed if you have ESLint plugins enabled in your IDE. If you would like to change this behavior and make sure the `eslint-loader` pulls in your customizations, you'll need to enable the loader yourself. One way to do this is by using the Community plugin [`gatsby-plugin-eslint`](/plugins/gatsby-plugin-eslint/). Additionally, if you would still like to take advantage of some subset of the default [ESLint config Gatsby ships with](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/utils/eslint-config.ts), you'll need to copy them manually to your local `.eslintrc` file.
This is a start to testing for accessibility: [further recommendations](#how-to-improve-accessibility) can be found below.
diff --git a/docs/docs/conceptual/plugins-themes-and-starters.md b/docs/docs/conceptual/plugins-themes-and-starters.md
index 2f55f0721bb68..28dbe81c31378 100644
--- a/docs/docs/conceptual/plugins-themes-and-starters.md
+++ b/docs/docs/conceptual/plugins-themes-and-starters.md
@@ -92,7 +92,7 @@ Plugins and themes both allow options to be passed in when installed in the plug
Theme [shadowing](/docs/how-to/plugins-and-themes/shadowing/) exists to allow users to override or otherwise extend individual components provided by a theme. For example, a plugin or theme can provide a specific path to `gatsby-config` so the plugin knows where to build pages from, but the user wouldn't be able adjust _how_ those pages are built, only from what path. Theme shadowing allows users to replace a file with their own version of it, allowing them to rewrite that logic to use the path in a different way.
-An example of a plugin that uses shadowing is [`gatsby-plugin-theme-ui`](/packages/gatsby-plugin-theme-ui/?=theme-ui#customizing-the-theme) which allows you to shadow a theme file to use in your own theme.
+An example of a plugin that uses shadowing is [`gatsby-plugin-theme-ui`](/plugins/gatsby-plugin-theme-ui/?=theme-ui#customizing-the-theme) which allows you to shadow a theme file to use in your own theme.
Starters aren't capable of shadowing (and they don't need to be), because a user of a starter can adjust any file by editing it directly.
@@ -104,7 +104,7 @@ Themes are intended to abstract several plugins into one, by making a `gatsby-co
Custom components are most traditionally distributed as packages in the React ecosystem. Components don't need to hook into the Gatsby build system, so if shipped with a plugin they don't need to be included in a `gatsby-config`'s plugin array. This is the case with `gatsby-image` which is a React component. It doesn't need to be included in the plugins array because it is merely a component.
-Some plugins ship with components you can use in a Gatsby site. An example is the [` ` component from `gatsby-plugin-google-analytics`](/packages/gatsby-plugin-google-analytics/?=#outboundlink-component). Other plugins, like [`gatsby-plugin-react-helmet`](/packages/gatsby-plugin-react-helmet), require you to install components from other libraries.
+Some plugins ship with components you can use in a Gatsby site. An example is the [` ` component from `gatsby-plugin-google-analytics`](/plugins/gatsby-plugin-google-analytics/?=#outboundlink-component). Other plugins, like [`gatsby-plugin-react-helmet`](/plugins/gatsby-plugin-react-helmet), require you to install components from other libraries.
Themes by convention are more suited to ship with components that could then be shadowed for customization.
diff --git a/docs/docs/conceptual/security-in-gatsby.md b/docs/docs/conceptual/security-in-gatsby.md
index 5efb0f555c05d..2f735154435a6 100644
--- a/docs/docs/conceptual/security-in-gatsby.md
+++ b/docs/docs/conceptual/security-in-gatsby.md
@@ -148,8 +148,8 @@ Sometimes in your Gatsby website, you will need display sensitive data or handle
Content Security Policy is a security layer added in web applications to detect and prevent attacks, e.g. the XSS attack mentioned above.
-To add it to your Gatsby website, add [gatsby-plugin-csp](/packages/gatsby-plugin-csp/) to your `gatsby-config.js` with the desired configuration. Note that
-currently there is a [compatibility issue](https://github.com/gatsbyjs/gatsby/issues/10890) between [gatsby-plugin-csp](/packages/gatsby-plugin-csp/) and other plugins that generate hashes in inline styles, including [gatsby-image](/packages/gatsby-image).
+To add it to your Gatsby website, add [gatsby-plugin-csp](/plugins/gatsby-plugin-csp/) to your `gatsby-config.js` with the desired configuration. Note that
+currently there is a [compatibility issue](https://github.com/gatsbyjs/gatsby/issues/10890) between [gatsby-plugin-csp](/plugins/gatsby-plugin-csp/) and other plugins that generate hashes in inline styles, including [gatsby-image](/plugins/gatsby-image).
> Note that not all browsers support CSP, check [can-i-use](https://caniuse.com/#feat=mdn-http_headers_csp_content-security-policy) for more information.
diff --git a/docs/docs/creating-a-source-plugin.md b/docs/docs/creating-a-source-plugin.md
index 45e9def00f4f6..7adc803b8677b 100644
--- a/docs/docs/creating-a-source-plugin.md
+++ b/docs/docs/creating-a-source-plugin.md
@@ -305,7 +305,7 @@ This loose coupling between the data source and the transformer plugins allow Ga
#### Sourcing and optimizing images from remote locations
-A common use case for source plugins is pulling images from a remote location and optimizing them for use with [Gatsby Image](/packages/gatsby-image/). An API may return a URL for an image on a CDN, which could be further optimized by Gatsby at build time.
+A common use case for source plugins is pulling images from a remote location and optimizing them for use with [Gatsby Image](/plugins/gatsby-image/). An API may return a URL for an image on a CDN, which could be further optimized by Gatsby at build time.
This can be achieved by the following steps:
diff --git a/docs/docs/creating-and-modifying-pages.md b/docs/docs/creating-and-modifying-pages.md
index 44e639dc014a8..9478bceba8c85 100644
--- a/docs/docs/creating-and-modifying-pages.md
+++ b/docs/docs/creating-and-modifying-pages.md
@@ -207,7 +207,7 @@ trailing slashes.
To do this, in your site's `gatsby-node.js` add code similar to the following:
_Note: There's also a plugin that will remove all trailing slashes from pages automatically:
-[gatsby-plugin-remove-trailing-slashes](/packages/gatsby-plugin-remove-trailing-slashes/)_.
+[gatsby-plugin-remove-trailing-slashes](/plugins/gatsby-plugin-remove-trailing-slashes/)_.
_Note: If you need to perform an asynchronous action within `onCreatePage` you can return a promise or use an `async` function._
diff --git a/docs/docs/creating-prefixed-404-pages-for-different-languages.md b/docs/docs/creating-prefixed-404-pages-for-different-languages.md
index 92cd92fda7e24..84ad1d1432797 100644
--- a/docs/docs/creating-prefixed-404-pages-for-different-languages.md
+++ b/docs/docs/creating-prefixed-404-pages-for-different-languages.md
@@ -58,4 +58,4 @@ exports.onCreatePage = async ({ page, actions }) => {
Now, whenever Gatsby creates a page, it will check if the page is a localized 404 with a path in the format of `/XX/404/`. If this is the case, then it will get the language code, and match all paths starting with this code, apart from other valid paths. This means that whenever you visit a non-existent page on your site, whose path starts with `/en/` or `/de/` (e.g. `/en/this-does-not-exist`), your localized 404 page will be displayed instead.
-For best results, you should configure your server to serve these 404 pages in the same manner - i.e. for `/en/`, your server should serve the page `/en/404/`. Otherwise, you'll briefly see the default 404 page until the Gatsby runtime loads. If you're using Netlify, you can use [`gatsby-plugin-netlify`](/packages/gatsby-plugin-netlify/) to do this automatically. Note that you should still create a default 404 page (usually at `src/pages/404.js`) to handle non-prefixed paths, e.g. `https://example.com/this-does-not-exist`.
+For best results, you should configure your server to serve these 404 pages in the same manner - i.e. for `/en/`, your server should serve the page `/en/404/`. Otherwise, you'll briefly see the default 404 page until the Gatsby runtime loads. If you're using Netlify, you can use [`gatsby-plugin-netlify`](/plugins/gatsby-plugin-netlify/) to do this automatically. Note that you should still create a default 404 page (usually at `src/pages/404.js`) to handle non-prefixed paths, e.g. `https://example.com/this-does-not-exist`.
diff --git a/docs/docs/custom-html.md b/docs/docs/custom-html.md
index 46e9ee5dc5a84..b4a92afb84f62 100644
--- a/docs/docs/custom-html.md
+++ b/docs/docs/custom-html.md
@@ -30,7 +30,7 @@ Note: the various props that are rendered into pages _are_ required e.g.
Anything you render in the `html.js` component will _not_ be made "live" in
the client like other components. If you want to dynamically update your
`` we recommend using
-[React Helmet](/packages/gatsby-plugin-react-helmet/)
+[React Helmet](/plugins/gatsby-plugin-react-helmet/)
## Inserting HTML into the ``
diff --git a/docs/docs/data-fetching.md b/docs/docs/data-fetching.md
index b3df77fbcf558..681c272ecf06a 100644
--- a/docs/docs/data-fetching.md
+++ b/docs/docs/data-fetching.md
@@ -16,7 +16,7 @@ Compiling pages at build time is useful when your website content won't change o
## Combining build time and client runtime data
-To illustrate a combination of build time and client runtime data, this guide uses code from a small [example site]. It uses the [`gatsby-source-graphql`](/packages/gatsby-source-graphql/) plugin to fetch data from GitHub's GraphQL API at build time for static content like the name and URL to a repository, and the [`fetch` API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to retrieve more dynamic data from the GitHub API on the [client-side](/docs/glossary#client-side) like star counts when the page loads in the browser.
+To illustrate a combination of build time and client runtime data, this guide uses code from a small [example site]. It uses the [`gatsby-source-graphql`](/plugins/gatsby-source-graphql/) plugin to fetch data from GitHub's GraphQL API at build time for static content like the name and URL to a repository, and the [`fetch` API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to retrieve more dynamic data from the GitHub API on the [client-side](/docs/glossary#client-side) like star counts when the page loads in the browser.
Reasons to fetch certain data at build time vs. client runtime will vary, but in this example the repo's name and URL are much less likely to change between builds of the site. The repo's star counts, on the other hand, are likely to change often and would benefit from a client-side request to the GitHub API to stay current between static site builds.
> Check out the code from the [full example here](https://github.com/gatsbyjs/gatsby/tree/master/examples/data-fetching).
diff --git a/docs/docs/files-gatsby-looks-for-in-a-plugin.md b/docs/docs/files-gatsby-looks-for-in-a-plugin.md
index 54911a101d04d..a72a9158fad3a 100644
--- a/docs/docs/files-gatsby-looks-for-in-a-plugin.md
+++ b/docs/docs/files-gatsby-looks-for-in-a-plugin.md
@@ -16,7 +16,7 @@ All files are optional unless specifically marked as required.
- if `version` isn’t set, an MD5 hash of the `gatsby-*` file contents is used to invalidate the cache
- omitting the `version` field is recommended for local plugins
- `keywords` is used to make your plugin discoverable
- - plugins published on the npm registry should have `gatsby` and `gatsby-plugin` in the `keywords` field to be added to the [Plugin Library](/packages/)
+ - plugins published on the npm registry should have `gatsby` and `gatsby-plugin` in the `keywords` field to be added to the [Plugin Library](/plugins/)
- `gatsby-browser.js` — usage details are in the [browser API reference](/docs/reference/config-files/gatsby-browser/)
- `gatsby-node.js` — usage details are in the [Node API reference](/docs/reference/config-files/gatsby-node/)
- `gatsby-ssr.js` — usage details are in the [SSR API reference](/docs/reference/config-files/gatsby-ssr/)
diff --git a/docs/docs/gatsby-internals-terminology.md b/docs/docs/gatsby-internals-terminology.md
index 3336cf69e18bd..498160e7dfe78 100644
--- a/docs/docs/gatsby-internals-terminology.md
+++ b/docs/docs/gatsby-internals-terminology.md
@@ -40,9 +40,9 @@ Contains a map of Page [path](#path) -> [Page object](#page-object).
Think of this instead as `client matchPath`. It is ignored when creating pages during the build. But on the frontend, when resolving the page from the path ([find-path.js]()), it is used (via [reach router](https://github.com/reach/router/blob/master/src/lib/utils.js)) to find the matching page. Note that the [pages are sorted](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/internal-plugins/query-runner/pages-writer.js#L38) so that those with matchPaths are at the end, so that explicit paths are matched first.
-This is also used by [gatsby-plugin-create-client-paths](/packages/gatsby-plugin-create-client-paths/?=client). It duplicates pages whose path match some client-only prefix (e.g. `/app/`). The duplicated page has a `matchPath` so that it is resolved first on the frontend.
+This is also used by [gatsby-plugin-create-client-paths](/plugins/gatsby-plugin-create-client-paths/?=client). It duplicates pages whose path match some client-only prefix (e.g. `/app/`). The duplicated page has a `matchPath` so that it is resolved first on the frontend.
-It is also used by [gatsby-plugin-netlify](/packages/gatsby-plugin-netlify/?=netlify) when creating `_redirects`.
+It is also used by [gatsby-plugin-netlify](/plugins/gatsby-plugin-netlify/?=netlify) when creating `_redirects`.
#### jsonName
diff --git a/docs/docs/glossary.md b/docs/docs/glossary.md
index aba883be24945..50fa5a7b1859b 100644
--- a/docs/docs/glossary.md
+++ b/docs/docs/glossary.md
@@ -16,7 +16,7 @@ When you're new to Gatsby there can be a lot of words to learn. This glossary ai
### AST
-Abstract Syntax Tree: A tree representation of the source code that is found during a [compilation](#compiler) step between two languages. For example, [gatsby-transformer-remark](/packages/gatsby-transformer-remark/) will create an AST from [Markdown](#markdown) to describe a Markdown document in a tree structure using the [Remark](#remark) parser.
+Abstract Syntax Tree: A tree representation of the source code that is found during a [compilation](#compiler) step between two languages. For example, [gatsby-transformer-remark](/plugins/gatsby-transformer-remark/) will create an AST from [Markdown](#markdown) to describe a Markdown document in a tree structure using the [Remark](#remark) parser.
### API
diff --git a/docs/docs/glossary/decoupled-drupal.md b/docs/docs/glossary/decoupled-drupal.md
index 06acce3c25093..05ae34b686424 100644
--- a/docs/docs/glossary/decoupled-drupal.md
+++ b/docs/docs/glossary/decoupled-drupal.md
@@ -20,7 +20,7 @@ A decoupled Drupal architecture offers two key advantages over a tightly coupled
- **You can use one content management system to serve multiple frontends** — for example, your Gatsby site, your mobile application, and your smart TV application.
- **You can develop, change, and upgrade the frontend and backend independently of each other.** Upgrading Drupal doesn't require you to modify your site's appearance.
-To use Drupal as a content source for Gatsby, add the [`gatsby-source-drupal`](/packages/gatsby-source-drupal/) plugin to your project. As with Gatsby itself, you install the `gatsby-source-drupal` plugin using [npm](/docs/glossary/#npm).
+To use Drupal as a content source for Gatsby, add the [`gatsby-source-drupal`](/plugins/gatsby-source-drupal/) plugin to your project. As with Gatsby itself, you install the `gatsby-source-drupal` plugin using [npm](/docs/glossary/#npm).
```shell
npm install gatsby-source-drupal
diff --git a/docs/docs/glossary/headless-wordpress.md b/docs/docs/glossary/headless-wordpress.md
index 8b79b586f4801..0f588b1c5af9d 100644
--- a/docs/docs/glossary/headless-wordpress.md
+++ b/docs/docs/glossary/headless-wordpress.md
@@ -15,7 +15,7 @@ Most WordPress installations use _themes_, which are a collection of template fi
The WordPress REST API, on the other hand, returns JSON instead of HTML. Using a content API gives you more flexibility around what kind of frontend you use: vanilla JavaScript, a native mobile application, your Gatsby site, or all of the above.
-Gatsby [supports WordPress](/docs/how-to/sourcing-data/sourcing-from-wordpress/) as a content source with the [`gatsby-source-wordpress`](/packages/gatsby-source-wordpress/) plugin. As with Gatsby, you can install the `gatsby-source-wordpress` plugin using [npm](/docs/glossary/#npm):
+Gatsby [supports WordPress](/docs/how-to/sourcing-data/sourcing-from-wordpress/) as a content source with the [`gatsby-source-wordpress`](/plugins/gatsby-source-wordpress/) plugin. As with Gatsby, you can install the `gatsby-source-wordpress` plugin using [npm](/docs/glossary/#npm):
```shell
npm install gatsby-source-wordpress
diff --git a/docs/docs/glossary/markdown.md b/docs/docs/glossary/markdown.md
index 75f25988b18fd..10d582e9cabfe 100644
--- a/docs/docs/glossary/markdown.md
+++ b/docs/docs/glossary/markdown.md
@@ -47,7 +47,7 @@ When converted to HTML, the preceding Markdown will become the markup below.
```
-You can use Markdown files as a content source for your Gatsby site. To do so, you'll need to install two plugins: [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem) and [`gatsby-transformer-remark`](/packages/gatsby-transformer-remark/). As with Gatsby itself, you can install both using [npm](/docs/glossary/#npm).
+You can use Markdown files as a content source for your Gatsby site. To do so, you'll need to install two plugins: [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem) and [`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark/). As with Gatsby itself, you can install both using [npm](/docs/glossary/#npm).
```shell
npm install gatsby-source-filesystem gatsby-transformer-remark
diff --git a/docs/docs/glossary/mdx.md b/docs/docs/glossary/mdx.md
index b82dfc5ab8fc0..949a4c64ddc89 100644
--- a/docs/docs/glossary/mdx.md
+++ b/docs/docs/glossary/mdx.md
@@ -53,13 +53,13 @@ If you're creating a Gatsby site from scratch, the [gatsby-starter-mdx-basic](ht
gatsby new my-mdx-starter https://github.com/ChristopherBiscardi/gatsby-starter-mdx-basic
```
-To use MDX with an existing Gatsby site, add the [`gatsby-plugin-mdx`](/packages/gatsby-plugin-mdx/?=gatsby-plugin-mdx) plugin. As with Gatsby itself, you can install it using [npm](/docs/glossary/#npm). You'll also need to install MDX itself, and the React implementation of MDX.
+To use MDX with an existing Gatsby site, add the [`gatsby-plugin-mdx`](/plugins/gatsby-plugin-mdx/?=gatsby-plugin-mdx) plugin. As with Gatsby itself, you can install it using [npm](/docs/glossary/#npm). You'll also need to install MDX itself, and the React implementation of MDX.
```shell
npm install gatsby-plugin-mdx @mdx-js/mdx @mdx-js/react
```
-Then add `gatsby-plugin-mdx` to your plugins list in `gatsby-config.js`, and set the [configuration options](/packages/gatsby-plugin-mdx/?=gatsby-plugin-mdx#configuration) you prefer.
+Then add `gatsby-plugin-mdx` to your plugins list in `gatsby-config.js`, and set the [configuration options](/plugins/gatsby-plugin-mdx/?=gatsby-plugin-mdx#configuration) you prefer.
MDX enhances Markdown's capabilities so that you can use React components anywhere in your Gatsby-powered site.
diff --git a/docs/docs/glossary/npm.md b/docs/docs/glossary/npm.md
index 9d0e85a1be78e..5d6ab822e1b45 100644
--- a/docs/docs/glossary/npm.md
+++ b/docs/docs/glossary/npm.md
@@ -41,7 +41,7 @@ This will download and install the latest version of Gatsby, then create a new G
### Using npm to install Gatsby plugins
-Gatsby has a robust collection of [plugins](/plugins/) that add functionality or data sourcing to your Gatsby sites. Adding a plugin as a project dependency uses the same process as installing Gatsby itself. Use `npm install `. To add the [gatsby-source-filesystem](/packages/gatsby-source-filesystem), plugin, for example, you'd use the following command.
+Gatsby has a robust collection of [plugins](/plugins/) that add functionality or data sourcing to your Gatsby sites. Adding a plugin as a project dependency uses the same process as installing Gatsby itself. Use `npm install `. To add the [gatsby-source-filesystem](/plugins/gatsby-source-filesystem), plugin, for example, you'd use the following command.
```shell
npm install gatsby-source-filesystem
diff --git a/docs/docs/glossary/wpgraphql.md b/docs/docs/glossary/wpgraphql.md
index 01d4b1e79b22b..9625ff956a421 100644
--- a/docs/docs/glossary/wpgraphql.md
+++ b/docs/docs/glossary/wpgraphql.md
@@ -45,7 +45,7 @@ Use [npm](/docs/glossary#npm) to install [gatsby-source-graphql](/docs/third-par
npm install gatsby-source-graphql
```
-Then update `gatsby-config.js`. Add the plugin to your Gatsby instance. Specify the URL of the GraphQL endpoint and set other [configuration options](/packages/gatsby-source-graphql/).
+Then update `gatsby-config.js`. Add the plugin to your Gatsby instance. Specify the URL of the GraphQL endpoint and set other [configuration options](/plugins/gatsby-source-graphql/).
```javascript
module.exports = {
diff --git a/docs/docs/how-to/adding-common-features/adding-an-rss-feed.md b/docs/docs/how-to/adding-common-features/adding-an-rss-feed.md
index a2ec0d5daad9b..974b5c84de930 100644
--- a/docs/docs/how-to/adding-common-features/adding-an-rss-feed.md
+++ b/docs/docs/how-to/adding-common-features/adding-an-rss-feed.md
@@ -10,13 +10,13 @@ Think of it as a syndicated distribution channel for your site's content.
## Install
-To generate an RSS feed, you can use the [`gatsby-plugin-feed`](/packages/gatsby-plugin-feed/) package. To install this package, run the following command:
+To generate an RSS feed, you can use the [`gatsby-plugin-feed`](/plugins/gatsby-plugin-feed/) package. To install this package, run the following command:
```shell
npm install gatsby-plugin-feed
```
-## How to use [gatsby-plugin-feed](/packages/gatsby-plugin-feed/)
+## How to use [gatsby-plugin-feed](/plugins/gatsby-plugin-feed/)
Once installation is complete, you can now add this plugin to your site's config file, like so:
@@ -183,7 +183,7 @@ module.exports = {
## Happy blogging!
-With the [Gatsby feed plugin](/packages/gatsby-plugin-feed/), you can share your writing easily with people subscribed through RSS readers like Feedly or RSS Feed Reader. Now that your feed is set up, you won't really have to think about it; publish a new post, and your RSS feed will automatically update with your Gatsby build. Voilà!
+With the [Gatsby feed plugin](/plugins/gatsby-plugin-feed/), you can share your writing easily with people subscribed through RSS readers like Feedly or RSS Feed Reader. Now that your feed is set up, you won't really have to think about it; publish a new post, and your RSS feed will automatically update with your Gatsby build. Voilà!
## More resources
diff --git a/docs/docs/how-to/adding-common-features/adding-analytics.md b/docs/docs/how-to/adding-common-features/adding-analytics.md
index 26f4d66ad2e65..4caeb2d1ba5a6 100644
--- a/docs/docs/how-to/adding-common-features/adding-analytics.md
+++ b/docs/docs/how-to/adding-common-features/adding-analytics.md
@@ -56,7 +56,7 @@ module.exports = {
> Note: Read more about [gatsby-config.js](/docs/reference/config-files/gatsby-config/)
-Full documentation for the plugin can be found [here](/packages/gatsby-plugin-google-gtag/).
+Full documentation for the plugin can be found [here](/plugins/gatsby-plugin-google-gtag/).
There are a number of extra configuration options--both with the Gatsby plugin and also in your Google Analytics account--so you can tailor things to meet your website's needs.
@@ -64,16 +64,16 @@ Once this is configured you can deploy your site to test! If you navigate to the
## Other Gatsby analytics plugins
-- [Google Analytics](/packages/gatsby-plugin-google-analytics/)
-- [Google Tag Manager](/packages/gatsby-plugin-google-tagmanager/)
-- [Segment](/packages/gatsby-plugin-segment-js)
-- [Amplitude Analytics](/packages/gatsby-plugin-amplitude-analytics)
-- [Fathom](/packages/gatsby-plugin-fathom/)
-- [Baidu](/packages/gatsby-plugin-baidu-analytics/)
-- [Matomo (formerly Piwik)](/packages/gatsby-plugin-matomo/)
-- [Simple Analytics](/packages/gatsby-plugin-simple-analytics)
-- [Parse.ly Analytics](/packages/gatsby-plugin-parsely-analytics/)
-- [GoatCounter](/packages/gatsby-plugin-goatcounter/)
-- [PostHog](/packages/gatsby-plugin-posthog-analytics/)
-- [Plausible](/packages/gatsby-plugin-plausible/)
-- [Vercel](/packages/gatsby-plugin-vercel/)
+- [Google Analytics](/plugins/gatsby-plugin-google-analytics/)
+- [Google Tag Manager](/plugins/gatsby-plugin-google-tagmanager/)
+- [Segment](/plugins/gatsby-plugin-segment-js)
+- [Amplitude Analytics](/plugins/gatsby-plugin-amplitude-analytics)
+- [Fathom](/plugins/gatsby-plugin-fathom/)
+- [Baidu](/plugins/gatsby-plugin-baidu-analytics/)
+- [Matomo (formerly Piwik)](/plugins/gatsby-plugin-matomo/)
+- [Simple Analytics](/plugins/gatsby-plugin-simple-analytics)
+- [Parse.ly Analytics](/plugins/gatsby-plugin-parsely-analytics/)
+- [GoatCounter](/plugins/gatsby-plugin-goatcounter/)
+- [PostHog](/plugins/gatsby-plugin-posthog-analytics/)
+- [Plausible](/plugins/gatsby-plugin-plausible/)
+- [Vercel](/plugins/gatsby-plugin-vercel/)
diff --git a/docs/docs/how-to/adding-common-features/creating-a-sitemap.md b/docs/docs/how-to/adding-common-features/creating-a-sitemap.md
index 3aaddd82c0f97..c431223f55644 100644
--- a/docs/docs/how-to/adding-common-features/creating-a-sitemap.md
+++ b/docs/docs/how-to/adding-common-features/creating-a-sitemap.md
@@ -8,9 +8,9 @@ An [XML sitemap](https://support.google.com/webmasters/answer/156184?hl=en) list
Think of it as a map for your website. It shows what all of the pages are on your website.
-## Using [gatsby-plugin-sitemap](/packages/gatsby-plugin-sitemap/)
+## Using [gatsby-plugin-sitemap](/plugins/gatsby-plugin-sitemap/)
-To generate an XML sitemap, you will use the [`gatsby-plugin-sitemap`](/packages/gatsby-plugin-sitemap/) package.
+To generate an XML sitemap, you will use the [`gatsby-plugin-sitemap`](/plugins/gatsby-plugin-sitemap/) package.
Install the package by running the following command:
`npm install gatsby-plugin-sitemap`
@@ -34,7 +34,7 @@ Next run a build (`npm run build`) since the sitemap generation will only happen
### Additional modifications
-Additional modification steps are available in the [`gatsby-plugin-sitemap` documentation](/packages/gatsby-plugin-sitemap)
+Additional modification steps are available in the [`gatsby-plugin-sitemap` documentation](/plugins/gatsby-plugin-sitemap)
## More information
diff --git a/docs/docs/how-to/adding-common-features/processing-payments-with-stripe.md b/docs/docs/how-to/adding-common-features/processing-payments-with-stripe.md
index fed9adfa6257a..3f66fb539b5fe 100644
--- a/docs/docs/how-to/adding-common-features/processing-payments-with-stripe.md
+++ b/docs/docs/how-to/adding-common-features/processing-payments-with-stripe.md
@@ -31,7 +31,7 @@ Several tutorials, plugins and starters exist to help you get up and running wit
### Plugins
-- [gatsby-source-stripe](/packages/gatsby-source-stripe/): This plugin allows you to bring your product and SKU data into your Gatsby site at build time to be [used with Stripe Checkout](/tutorial/ecommerce-tutorial/#example-2-import-skus-via-source-plugin).
+- [gatsby-source-stripe](/plugins/gatsby-source-stripe/): This plugin allows you to bring your product and SKU data into your Gatsby site at build time to be [used with Stripe Checkout](/tutorial/ecommerce-tutorial/#example-2-import-skus-via-source-plugin).
### Starters & Examples
diff --git a/docs/docs/how-to/adding-common-features/seo.md b/docs/docs/how-to/adding-common-features/seo.md
index c05b224f99a28..b27d242eb1960 100644
--- a/docs/docs/how-to/adding-common-features/seo.md
+++ b/docs/docs/how-to/adding-common-features/seo.md
@@ -9,7 +9,7 @@ Gatsby can help your site rank and perform better in search engines. Using Gatsb
Because Gatsby pages are server-side rendered, all the page content is available to Googlebot and other search engine crawlers.
You can see this by viewing the source for this page in your browser, Right-Click => View source. You'll see the fully rendered HTML document.
-When you've installed [`gatsby-plugin-offline`](/packages/gatsby-plugin-offline/), you'll see a partial HTML document that does not contain the HTML you were hoping for. By using `gatsby-plugin-offline`, we can optimize bandwidth consumption and not let your users download too much data. Serving a partial HTML document is okay. Google and other search engines will still see the full HTML because `gatsby-plugin-offline` only starts working on the second-page load. A search engine always runs a page in Sandbox mode, which essentially is the first visit.
+When you've installed [`gatsby-plugin-offline`](/plugins/gatsby-plugin-offline/), you'll see a partial HTML document that does not contain the HTML you were hoping for. By using `gatsby-plugin-offline`, we can optimize bandwidth consumption and not let your users download too much data. Serving a partial HTML document is okay. Google and other search engines will still see the full HTML because `gatsby-plugin-offline` only starts working on the second-page load. A search engine always runs a page in Sandbox mode, which essentially is the first visit.
As a website owner, how do I test my site is serving its HTML correctly when `gatsby-plugin-offline` is being used? It would be best if you used your terminal of choice to visit your website. You can crawl your site by running the following command:
diff --git a/docs/docs/how-to/custom-configuration/add-custom-webpack-config.md b/docs/docs/how-to/custom-configuration/add-custom-webpack-config.md
index 479cd0e102f21..f870283011cbc 100644
--- a/docs/docs/how-to/custom-configuration/add-custom-webpack-config.md
+++ b/docs/docs/how-to/custom-configuration/add-custom-webpack-config.md
@@ -17,7 +17,7 @@ Gatsby does multiple webpack builds with somewhat different configuration. Gatsb
Check [webpack.config.js](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/utils/webpack.config.js) for the source.
-There are many plugins in the Gatsby repo using this API to look to for examples e.g. [Sass](/packages/gatsby-plugin-sass/), [TypeScript](/packages/gatsby-plugin-typescript/), [Glamor](/packages/gatsby-plugin-glamor/), and many more!
+There are many plugins in the Gatsby repo using this API to look to for examples e.g. [Sass](/plugins/gatsby-plugin-sass/), [TypeScript](/plugins/gatsby-plugin-typescript/), [Glamor](/plugins/gatsby-plugin-glamor/), and many more!
## Examples
diff --git a/docs/docs/how-to/custom-configuration/eslint.md b/docs/docs/how-to/custom-configuration/eslint.md
index 41cc9e1aa2c04..b324c31630ccb 100644
--- a/docs/docs/how-to/custom-configuration/eslint.md
+++ b/docs/docs/how-to/custom-configuration/eslint.md
@@ -38,7 +38,7 @@ module.exports = {
}
```
-Note: When there is no ESLint file Gatsby implicitly adds a barebones ESLint loader. This loader pipes ESLint feedback into the terminal window where you are running or building Gatsby and also to the console in your browser developer tools. This gives you consolidated, immediate feedback on newly-saved files. When you include a custom `.eslintrc` file, Gatsby gives you full control over the ESLint configuration. This means that it will override the built-in `eslint-loader` and you need to enable any and all rules yourself. One way to do this is to use the Community plugin [`gatsby-plugin-eslint`](/packages/gatsby-plugin-eslint/). This also means that the default [ESLint config Gatsby ships with](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/utils/eslint-config.ts) will be entirely overwritten. If you would still like to take advantage of those rules, you'll need to copy them to your local file.
+Note: When there is no ESLint file Gatsby implicitly adds a barebones ESLint loader. This loader pipes ESLint feedback into the terminal window where you are running or building Gatsby and also to the console in your browser developer tools. This gives you consolidated, immediate feedback on newly-saved files. When you include a custom `.eslintrc` file, Gatsby gives you full control over the ESLint configuration. This means that it will override the built-in `eslint-loader` and you need to enable any and all rules yourself. One way to do this is to use the Community plugin [`gatsby-plugin-eslint`](/plugins/gatsby-plugin-eslint/). This also means that the default [ESLint config Gatsby ships with](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/utils/eslint-config.ts) will be entirely overwritten. If you would still like to take advantage of those rules, you'll need to copy them to your local file.
### Disabling ESLint
diff --git a/docs/docs/how-to/custom-configuration/typescript.md b/docs/docs/how-to/custom-configuration/typescript.md
index f3026b1acdac6..0128e87fc179c 100644
--- a/docs/docs/how-to/custom-configuration/typescript.md
+++ b/docs/docs/how-to/custom-configuration/typescript.md
@@ -26,7 +26,7 @@ The example above uses the power of TypeScript, in combination with exported typ
## Other resources
-TypeScript integration is supported through automatically including [`gatsby-plugin-typescript`](/packages/gatsby-plugin-typescript/). Visit that link to see configuration options and limitations of this setup.
+TypeScript integration is supported through automatically including [`gatsby-plugin-typescript`](/plugins/gatsby-plugin-typescript/). Visit that link to see configuration options and limitations of this setup.
If you are new to TypeScript, check out these other resources to learn more:
diff --git a/docs/docs/how-to/images-and-media/importing-assets-into-files.md b/docs/docs/how-to/images-and-media/importing-assets-into-files.md
index efd0599295e50..9be848dc1ec16 100644
--- a/docs/docs/how-to/images-and-media/importing-assets-into-files.md
+++ b/docs/docs/how-to/images-and-media/importing-assets-into-files.md
@@ -142,4 +142,4 @@ query($slug: String!) {
}
```
-Read more about querying for files in [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/).
+Read more about querying for files in [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/).
diff --git a/docs/docs/how-to/images-and-media/preprocessing-external-images.md b/docs/docs/how-to/images-and-media/preprocessing-external-images.md
index 58ab8b1589cbf..ad62109903259 100644
--- a/docs/docs/how-to/images-and-media/preprocessing-external-images.md
+++ b/docs/docs/how-to/images-and-media/preprocessing-external-images.md
@@ -4,7 +4,7 @@ title: Preprocessing External Images
Gatsby allows powerful image processing features using the [`Sharp`](https://github.com/lovell/sharp/) library to automatically process images to be performant, with features like lazy-loading. That said, this only works if the image is a `File` node in the GraphQL layer.
-If you want the same functionality for files that are remotely hosted online and not located in your Git repo, [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/) has an API called `createRemoteFileNode` to solve this.
+If you want the same functionality for files that are remotely hosted online and not located in your Git repo, [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) has an API called `createRemoteFileNode` to solve this.
This guide will show you how to use the `createRemoteFileNode` process and get the same benefits of gatsby-transformer-sharp with externally sourced images.
diff --git a/docs/docs/how-to/images-and-media/using-cloudinary-image-service.md b/docs/docs/how-to/images-and-media/using-cloudinary-image-service.md
index 120932b63b6fc..dabcb04adf53f 100644
--- a/docs/docs/how-to/images-and-media/using-cloudinary-image-service.md
+++ b/docs/docs/how-to/images-and-media/using-cloudinary-image-service.md
@@ -4,7 +4,7 @@ title: Using Cloudinary image service for media optimization
Cloudinary is a cloud-based end-to-end media management platform that provides solutions to help site creators serve optimized media files (images and videos) to their audiences. It also provides a lot of optional transformations that can be carried out on these media assets.
-In this guide you will take a look at the [gatsby-source-cloudinary](/packages/gatsby-source-cloudinary/) and [gatsby-transformer-cloudinary](/packages/gatsby-transformer-cloudinary/) plugins which you can use to improve the experience of handling images on Gatsby sites.
+In this guide you will take a look at the [gatsby-source-cloudinary](/plugins/gatsby-source-cloudinary/) and [gatsby-transformer-cloudinary](/plugins/gatsby-transformer-cloudinary/) plugins which you can use to improve the experience of handling images on Gatsby sites.
Plugins are generally used to abstract functionality in Gatsby. In this case, the `gatsby-source-cloudinary` plugin is a [source plugin](/docs/how-to/plugins-and-themes/creating-a-source-plugin/) which helps to connect Cloudinary media storage capabilities to your site.
@@ -152,5 +152,5 @@ module.exports = {
- [Faster Sites with Optimized Media Assets by William Imoh](/blog/2020-01-12-faster-sites-with-optimized-media-assets/)
- [Gatsby Transformer Cloudinary](https://www.npmjs.com/package/gatsby-transformer-cloudinary)
-- [Gatsby Source Cloudinary](/packages/gatsby-source-cloudinary/)
+- [Gatsby Source Cloudinary](/plugins/gatsby-source-cloudinary/)
- [Aspect ratio parameter](https://cloudinary.com/documentation/image_transformation_reference#aspect_ratio_parameter)
diff --git a/docs/docs/how-to/images-and-media/using-gatsby-image.md b/docs/docs/how-to/images-and-media/using-gatsby-image.md
index 3bc8f0411357b..863ca265cbaee 100644
--- a/docs/docs/how-to/images-and-media/using-gatsby-image.md
+++ b/docs/docs/how-to/images-and-media/using-gatsby-image.md
@@ -8,7 +8,7 @@ Using images in Gatsby components and pages requires four steps to take advantag
-`gatsby-image` is a React component designed to work seamlessly with Gatsby’s GraphQL queries ([`gatsby-image` plugin README](/packages/gatsby-image/)). It combines [Gatsby’s native image processing](https://image-processing.gatsbyjs.org/) capabilities with advanced image loading techniques to easily and completely optimize image loading for your sites. `gatsby-image` uses [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/) to power its image transformations.
+`gatsby-image` is a React component designed to work seamlessly with Gatsby’s GraphQL queries ([`gatsby-image` plugin README](/plugins/gatsby-image/)). It combines [Gatsby’s native image processing](https://image-processing.gatsbyjs.org/) capabilities with advanced image loading techniques to easily and completely optimize image loading for your sites. `gatsby-image` uses [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/) to power its image transformations.
> _Warning: gatsby-image is **not** a drop-in replacement for ` `. It’s optimized for fixed width/height images and images that stretch the full width of a container. Some ways you can use ` ` won’t work with gatsby-image._
@@ -85,7 +85,7 @@ module.exports = {
lessonTitle="Install gatsby-image and source local images from the filesystem"
/>
-4. Write a GraphQL query using one of the included [GraphQL “fragments”](/packages/gatsby-image/#fragments) which specify the fields needed by `gatsby-image` to create a responsive, optimized image. This example queries for an image at a path relative to the location specified in the `gatsby-source-filesystem` options using the `GatsbyImageSharpFluid` fragment.
+4. Write a GraphQL query using one of the included [GraphQL “fragments”](/plugins/gatsby-image/#fragments) which specify the fields needed by `gatsby-image` to create a responsive, optimized image. This example queries for an image at a path relative to the location specified in the `gatsby-source-filesystem` options using the `GatsbyImageSharpFluid` fragment.
```jsx:title=src/pages/my-dogs.js
import React from "react"
@@ -169,7 +169,7 @@ So this is all very nice and it’s far better to be able to use this from npm v
### Additional resources
- [Gatsby Image API docs](/docs/reference/built-in-components/gatsby-image/)
-- [gatsby-image plugin README file](/packages/gatsby-image/)
+- [gatsby-image plugin README file](/plugins/gatsby-image/)
- [Source code for an example site using gatsby-image](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-gatsby-image)
- [Blog articles about gatsby-image](/blog/tags/gatsby-image/)
- [Starters that use gatsby-image](/starters/?d=gatsby-image&v=2)
diff --git a/docs/docs/how-to/images-and-media/working-with-video.md b/docs/docs/how-to/images-and-media/working-with-video.md
index 12d72cc8c92fe..60c79bd0cbb4b 100644
--- a/docs/docs/how-to/images-and-media/working-with-video.md
+++ b/docs/docs/how-to/images-and-media/working-with-video.md
@@ -8,7 +8,7 @@ The easiest method for including video on a Gatsby site is to source an uploaded
## Embedding hosted videos in Markdown
-There are numerous Gatsby plugins for working with hosted video in your Markdown posts and pages. We recommend checking out the [gatsby-remark-embed-video](/packages/gatsby-remark-embed-video/?=video) plugin for sourcing from a variety of hosts like YouTube or Vimeo.
+There are numerous Gatsby plugins for working with hosted video in your Markdown posts and pages. We recommend checking out the [gatsby-remark-embed-video](/plugins/gatsby-remark-embed-video/?=video) plugin for sourcing from a variety of hosts like YouTube or Vimeo.
### Writing custom components for hosted video
diff --git a/docs/docs/how-to/local-development/gatsby-on-windows.md b/docs/docs/how-to/local-development/gatsby-on-windows.md
index 9da43277a9ddb..33d0dada3962d 100644
--- a/docs/docs/how-to/local-development/gatsby-on-windows.md
+++ b/docs/docs/how-to/local-development/gatsby-on-windows.md
@@ -5,7 +5,7 @@ title: Gatsby on Windows
## Setting up your environment for building native Node.js modules
Many Gatsby plugins and themes require building native Node.js modules, e.g.
-[Sharp (a common Gatsby dependency used for image processing)](/packages/gatsby-plugin-sharp/).
+[Sharp (a common Gatsby dependency used for image processing)](/plugins/gatsby-plugin-sharp/).
To do so, you need a functional build environment (Python and Visual C++ Build
Tools).
diff --git a/docs/docs/how-to/local-development/troubleshooting-common-errors.md b/docs/docs/how-to/local-development/troubleshooting-common-errors.md
index 9ac7b0b5e730f..3f8bbe29b7395 100644
--- a/docs/docs/how-to/local-development/troubleshooting-common-errors.md
+++ b/docs/docs/how-to/local-development/troubleshooting-common-errors.md
@@ -32,11 +32,11 @@ For some plugins like emotion, styled-components, or Sass, it won't be enough to
Here are some examples of plugins that require you to install more than just the plugin:
-- [gatsby-plugin-emotion](/packages/gatsby-plugin-emotion/): `@emotion/react`, and `@emotion/styled`
-- [gatsby-plugin-styled-components](/packages/gatsby-plugin-styled-components/): `styled-components`, and `babel-plugin-styled-components`
-- [gatsby-plugin-sass](/packages/gatsby-plugin-sass/): `node-sass`, or `sass`
-- [gatsby-plugin-material-ui](/packages/gatsby-plugin-material-ui/): `@material-ui/styles`
-- [gatsby-image](/packages/gatsby-image/): `gatsby-transformer-sharp`, and `gatsby-plugin-sharp`
+- [gatsby-plugin-emotion](/plugins/gatsby-plugin-emotion/): `@emotion/react`, and `@emotion/styled`
+- [gatsby-plugin-styled-components](/plugins/gatsby-plugin-styled-components/): `styled-components`, and `babel-plugin-styled-components`
+- [gatsby-plugin-sass](/plugins/gatsby-plugin-sass/): `node-sass`, or `sass`
+- [gatsby-plugin-material-ui](/plugins/gatsby-plugin-material-ui/): `@material-ui/styles`
+- [gatsby-image](/plugins/gatsby-image/): `gatsby-transformer-sharp`, and `gatsby-plugin-sharp`
Rather than packaging up the other dependent libraries alongside these plugins, they can stay smaller in size when they are published and are able to rely on alternative implementations. One example is `gatsby-plugin-sass` that can use either the Node.js or Dart implementations of Sass.
diff --git a/docs/docs/how-to/performance/add-a-manifest-file.md b/docs/docs/how-to/performance/add-a-manifest-file.md
index 11837f76600dd..1711bf75c3fee 100644
--- a/docs/docs/how-to/performance/add-a-manifest-file.md
+++ b/docs/docs/how-to/performance/add-a-manifest-file.md
@@ -14,7 +14,7 @@ Quoting [Google](https://developers.google.com/web/fundamentals/web-app-manifest
> The web app manifest is a simple JSON file that tells the browser about your web application and how it should behave when 'installed' on the user's mobile device or desktop.
-[Gatsby's manifest plugin](/packages/gatsby-plugin-manifest/) configures Gatsby to create a `manifest.webmanifest` file on every site build.
+[Gatsby's manifest plugin](/plugins/gatsby-plugin-manifest/) configures Gatsby to create a `manifest.webmanifest` file on every site build.
## Using `gatsby-plugin-manifest`
@@ -53,4 +53,4 @@ npm install gatsby-plugin-manifest
}
```
-That's all you need to get started with adding a web manifest to a Gatsby site. The example given reflects a base configuration -- check out the [plugin reference](/packages/gatsby-plugin-manifest/?=gatsby-plugin-manifest#automatic-mode) for more options.
+That's all you need to get started with adding a web manifest to a Gatsby site. The example given reflects a base configuration -- check out the [plugin reference](/plugins/gatsby-plugin-manifest/?=gatsby-plugin-manifest#automatic-mode) for more options.
diff --git a/docs/docs/how-to/performance/add-offline-support-with-a-service-worker.md b/docs/docs/how-to/performance/add-offline-support-with-a-service-worker.md
index ce6af0227b0a1..4caec5a427d30 100644
--- a/docs/docs/how-to/performance/add-offline-support-with-a-service-worker.md
+++ b/docs/docs/how-to/performance/add-offline-support-with-a-service-worker.md
@@ -5,7 +5,7 @@ title: Adding Offline Support with a Service Worker
If you've run an [audit with Lighthouse](/docs/how-to/performance/audit-with-lighthouse/), you may have noticed a lackluster score in the "Progressive Web App" category. Let's address how you can improve that score.
1. You can [add a manifest file](/docs/how-to/performance/add-a-manifest-file/). Ensure that the manifest plugin is listed _before_ the offline plugin so that the offline plugin can cache the created `manifest.webmanifest`.
-2. You can also add offline support, since another requirement for a website to qualify as a PWA is the use of a [service worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API). [Gatsby's offline plugin](/packages/gatsby-plugin-offline/) makes a Gatsby site work offline--and makes it more resistant to bad network conditions--by creating a service worker for your site.
+2. You can also add offline support, since another requirement for a website to qualify as a PWA is the use of a [service worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API). [Gatsby's offline plugin](/plugins/gatsby-plugin-offline/) makes a Gatsby site work offline--and makes it more resistant to bad network conditions--by creating a service worker for your site.
## What is a service worker?
@@ -76,7 +76,7 @@ That's all! Gatsby will register your custom service worker.
## Removing the service worker
-If you would like to fully remove the service worker from your site, you can use the plugin `gatsby-plugin-remove-serviceworker` in place of `gatsby-plugin-offline`. See [the README for `gatsby-plugin-offline`](/packages/gatsby-plugin-offline/#remove) for instructions how to do this.
+If you would like to fully remove the service worker from your site, you can use the plugin `gatsby-plugin-remove-serviceworker` in place of `gatsby-plugin-offline`. See [the README for `gatsby-plugin-offline`](/plugins/gatsby-plugin-offline/#remove) for instructions how to do this.
## References
diff --git a/docs/docs/how-to/plugins-and-themes/configuring-usage-with-plugin-options.md b/docs/docs/how-to/plugins-and-themes/configuring-usage-with-plugin-options.md
index e06fe39112074..3fe72ba42b40e 100644
--- a/docs/docs/how-to/plugins-and-themes/configuring-usage-with-plugin-options.md
+++ b/docs/docs/how-to/plugins-and-themes/configuring-usage-with-plugin-options.md
@@ -45,12 +45,12 @@ Any JavaScript data type can be passed in as an option.
The following table lists possible options values and an example plugin that makes use of them.
-| Data Type | Sample Value | Example Plugin |
-| --------- | -------------------------------- | ----------------------------------------------------------------- |
-| Boolean | `true` | [`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp/) |
-| String | `/src/data/` | [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/) |
-| Array | `["/about-us/", "/projects/*"]` | [`gatsby-plugin-offline`](/packages/gatsby-plugin-offline/) |
-| Object | `{ default: "./src/layout.js" }` | [`gatsby-plugin-mdx`](/packages/gatsby-plugin-mdx/) |
+| Data Type | Sample Value | Example Plugin |
+| --------- | -------------------------------- | ---------------------------------------------------------------- |
+| Boolean | `true` | [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/) |
+| String | `/src/data/` | [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) |
+| Array | `["/about-us/", "/projects/*"]` | [`gatsby-plugin-offline`](/plugins/gatsby-plugin-offline/) |
+| Object | `{ default: "./src/layout.js" }` | [`gatsby-plugin-mdx`](/plugins/gatsby-plugin-mdx/) |
**Note**: Themes (which are a type of plugin) are able to receive options from a site's `gatsby-config.js` to be used in its `gatsby-config.js` in order to allow themes to be composed together. This is done by exporting the `gatsby-config.js` as a function instead of an object. You can see an example of this in the [`gatsby-theme-blog`](https://github.com/gatsbyjs/themes/tree/master/packages/gatsby-theme-blog) and [`gatsby-theme-blog-core`](https://github.com/gatsbyjs/themes/tree/master/packages/gatsby-theme-blog-core) repositories. Plugins are not capable of this functionality.
diff --git a/docs/docs/how-to/plugins-and-themes/converting-a-starter.md b/docs/docs/how-to/plugins-and-themes/converting-a-starter.md
index 76e33482710b1..c35050ce399b4 100644
--- a/docs/docs/how-to/plugins-and-themes/converting-a-starter.md
+++ b/docs/docs/how-to/plugins-and-themes/converting-a-starter.md
@@ -68,7 +68,7 @@ There may be other locations where you will need to update the path resolution l
## Sourcing pages
-Gatsby by default sources pages relative from `src/pages`, like a regular Gatsby site does. However, if you would like to source pages from a different directory you'll have to setup [`gatsby-plugin-page-creator`](/packages/gatsby-plugin-page-creator/).
+Gatsby by default sources pages relative from `src/pages`, like a regular Gatsby site does. However, if you would like to source pages from a different directory you'll have to setup [`gatsby-plugin-page-creator`](/plugins/gatsby-plugin-page-creator/).
```shell
npm install gatsby-plugin-page-creator
diff --git a/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md b/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md
index 176175e92008c..25f57564b39e8 100644
--- a/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md
+++ b/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md
@@ -17,7 +17,7 @@ Source plugins convert data from any source into a format that Gatsby can proces
There may not be [an existing plugin](/plugins/?=gatsby-source) for your data source, so you can create your own.
-_**NOTE:** if your data is local i.e. on your file system and part of your site's repo, then you generally don't want to create a new source plugin. Instead you want to use [gatsby-source-filesystem](/packages/gatsby-source-filesystem/) which handles reading and watching files for you. You can then use [transformer plugins](/plugins/?=gatsby-transformer) like [gatsby-transformer-yaml](/packages/gatsby-transformer-yaml/) to make queryable data from files._
+_**NOTE:** if your data is local i.e. on your file system and part of your site's repo, then you generally don't want to create a new source plugin. Instead you want to use [gatsby-source-filesystem](/plugins/gatsby-source-filesystem/) which handles reading and watching files for you. You can then use [transformer plugins](/plugins/?=gatsby-transformer) like [gatsby-transformer-yaml](/plugins/gatsby-transformer-yaml/) to make queryable data from files._
## How to create a source plugin
diff --git a/docs/docs/how-to/plugins-and-themes/using-a-gatsby-theme.md b/docs/docs/how-to/plugins-and-themes/using-a-gatsby-theme.md
index 1d1d92e6f62a1..d5739034c388f 100644
--- a/docs/docs/how-to/plugins-and-themes/using-a-gatsby-theme.md
+++ b/docs/docs/how-to/plugins-and-themes/using-a-gatsby-theme.md
@@ -20,7 +20,7 @@ npm install gatsby-theme-blog
Depending on the theme, there may be theme options that can be configured via `gatsby-config.js`.
-For example, `gatsby-theme-blog` can take a number of different options. All of them are documented in the [theme's README](/packages/gatsby-theme-blog/) file.
+For example, `gatsby-theme-blog` can take a number of different options. All of them are documented in the [theme's README](/plugins/gatsby-theme-blog/) file.
```javascript:title=gatsby-config.js
module.exports = {
diff --git a/docs/docs/how-to/previews-deploys-hosting/deploying-to-netlify.md b/docs/docs/how-to/previews-deploys-hosting/deploying-to-netlify.md
index b8d913b48bbbc..bd3deab4b8fd2 100644
--- a/docs/docs/how-to/previews-deploys-hosting/deploying-to-netlify.md
+++ b/docs/docs/how-to/previews-deploys-hosting/deploying-to-netlify.md
@@ -71,5 +71,5 @@ From the site `Overview`, you can go to `Domain Settings`. By adding a custom do
- [A Step-by-Step Guide: Gatsby on Netlify](https://www.netlify.com/blog/2016/02/24/a-step-by-step-guide-gatsby-on-netlify/)
- More [blog posts on Gatsby + Netlify](/blog/tags/netlify)
-- [Gatsby Netlify CMS](/packages/gatsby-plugin-netlify-cms)
+- [Gatsby Netlify CMS](/plugins/gatsby-plugin-netlify-cms)
- [Gatsby + Netlify CMS Starter](https://github.com/netlify-templates/gatsby-starter-netlify-cms)
diff --git a/docs/docs/how-to/routing/adding-markdown-pages.md b/docs/docs/how-to/routing/adding-markdown-pages.md
index 004d13402f949..6ed819dc7a5f5 100644
--- a/docs/docs/how-to/routing/adding-markdown-pages.md
+++ b/docs/docs/how-to/routing/adding-markdown-pages.md
@@ -15,7 +15,7 @@ Here are the steps Gatsby follows for making this happen.
## Read files into Gatsby from the filesystem
-Use the plugin [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/#gatsby-source-filesystem) to read files.
+Use the plugin [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/#gatsby-source-filesystem) to read files.
### Install
@@ -43,7 +43,7 @@ Completing the above step means that you've "sourced" the Markdown files from th
## Transform Markdown to HTML and frontmatter to data using `gatsby-transformer-remark`
-You'll use the plugin [`gatsby-transformer-remark`](/packages/gatsby-transformer-remark/) to recognize files which are Markdown and read their content. The plugin will convert the frontmatter metadata part of your Markdown files as `frontmatter` and the content part as HTML.
+You'll use the plugin [`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark/) to recognize files which are Markdown and read their content. The plugin will convert the frontmatter metadata part of your Markdown files as `frontmatter` and the content part as HTML.
### Install transformer plugin
diff --git a/docs/docs/how-to/routing/client-only-routes-and-user-authentication.md b/docs/docs/how-to/routing/client-only-routes-and-user-authentication.md
index ce402c763a7f9..a2d339398ff3a 100644
--- a/docs/docs/how-to/routing/client-only-routes-and-user-authentication.md
+++ b/docs/docs/how-to/routing/client-only-routes-and-user-authentication.md
@@ -126,7 +126,7 @@ exports.onCreatePage = async ({ page, actions }) => {
```
> 💡 Note: There's also a plugin to simplify the creation of client-only routes in your site:
-> [gatsby-plugin-create-client-paths](/packages/gatsby-plugin-create-client-paths/).
+> [gatsby-plugin-create-client-paths](/plugins/gatsby-plugin-create-client-paths/).
The above code (as well as the `gatsby-plugin-create-client-paths` plugin) updates the `/app` page at build time to add the `matchPath` parameter in the page object to make it so that the configured pages (in this case, everything after `/app`, like `/app/dashboard` or `/app/user`) can be navigated to by Reach Router.
diff --git a/docs/docs/how-to/routing/layout-components.md b/docs/docs/how-to/routing/layout-components.md
index c0f92a8bc596a..f945ea6120c7a 100644
--- a/docs/docs/how-to/routing/layout-components.md
+++ b/docs/docs/how-to/routing/layout-components.md
@@ -55,13 +55,13 @@ As mentioned earlier, Gatsby does not, by default, automatically wrap pages in a
If you need to set a wrapper component around page components that won't get unmounted on page changes, use the **`wrapPageElement`** [browser API](/docs/reference/config-files/gatsby-browser/#wrapPageElement) and the [SSR equivalent](/docs/reference/config-files/gatsby-ssr/#wrapPageElement).
-Alternatively, you can prevent your layout component from unmounting by using [gatsby-plugin-layout](/packages/gatsby-plugin-layout/), which implements the `wrapPageElement` APIs for you.
+Alternatively, you can prevent your layout component from unmounting by using [gatsby-plugin-layout](/plugins/gatsby-plugin-layout/), which implements the `wrapPageElement` APIs for you.
## Other resources
- [Creating nested layout components in Gatsby](/docs/tutorial/part-three/)
- [Life after layouts in Gatsby V2](/blog/2018-06-08-life-after-layouts/)
- [Migrating from v1 to v2](/docs/reference/release-notes/migrating-from-v1-to-v2/#remove-or-refactor-layout-components)
-- [gatsby-plugin-layout](/packages/gatsby-plugin-layout/)
+- [gatsby-plugin-layout](/plugins/gatsby-plugin-layout/)
- [wrapPageElement Browser API](/docs/reference/config-files/gatsby-browser/#wrapPageElement)
- [wrapPageElement SSR API](/docs/reference/config-files/gatsby-ssr/#wrapPageElement)
diff --git a/docs/docs/how-to/routing/mdx-plugins.md b/docs/docs/how-to/routing/mdx-plugins.md
index af3b2fcacba41..373a3cb76649e 100644
--- a/docs/docs/how-to/routing/mdx-plugins.md
+++ b/docs/docs/how-to/routing/mdx-plugins.md
@@ -5,7 +5,7 @@ title: MDX Plugins
## Gatsby remark plugins
`gatsby-plugin-mdx` is compatible with all of the [gatsby-remark
-plugins](/packages/gatsby-remark-images/?=gatsby-remark),
+plugins](/plugins/gatsby-remark-images/?=gatsby-remark),
including
[`gatsby-remark-images`](/plugins/gatsby-remark-images/?=gatsby-remark).
diff --git a/docs/docs/how-to/routing/mdx.md b/docs/docs/how-to/routing/mdx.md
index a84c094295e3b..5ef31844617b5 100644
--- a/docs/docs/how-to/routing/mdx.md
+++ b/docs/docs/how-to/routing/mdx.md
@@ -10,7 +10,7 @@ This is useful in content-driven sites where you want the ability to introduce c
## Part 1: Getting Started with MDX
-If you already have a Gatsby site that you'd like to add MDX to, you can follow these steps for configuring the [gatsby-plugin-mdx](/packages/gatsby-plugin-mdx/) plugin.
+If you already have a Gatsby site that you'd like to add MDX to, you can follow these steps for configuring the [gatsby-plugin-mdx](/plugins/gatsby-plugin-mdx/) plugin.
> **Starting a new project?** Skip the setup and create a new project using the [MDX
> starter](https://github.com/ChristopherBiscardi/gatsby-starter-mdx-basic):
@@ -155,7 +155,7 @@ export default function Layout({ children }) {
}
```
-All MDX components passed into the `components` prop of the `MDXProvider` will be made available to MDX documents that are nested under the provider. The `MDXProvider` in this example is in a layout component that wraps all MDX pages, you can read about this pattern in [the layout section of the `gatsby-plugin-mdx` README](/packages/gatsby-plugin-mdx/#default-layouts).
+All MDX components passed into the `components` prop of the `MDXProvider` will be made available to MDX documents that are nested under the provider. The `MDXProvider` in this example is in a layout component that wraps all MDX pages, you can read about this pattern in [the layout section of the `gatsby-plugin-mdx` README](/plugins/gatsby-plugin-mdx/#default-layouts).
Now, you can include components in your MDX without importing them:
diff --git a/docs/docs/how-to/sourcing-data/headless-cms.md b/docs/docs/how-to/sourcing-data/headless-cms.md
index 20eb756ed5663..27ef3b234ced2 100644
--- a/docs/docs/how-to/sourcing-data/headless-cms.md
+++ b/docs/docs/how-to/sourcing-data/headless-cms.md
@@ -21,33 +21,33 @@ The guides in this section will walk through the process of setting up content s
Here are more resources for guides, plugins, and starters for CMS systems you can connect to:
-| CMS | Guides | Plugin Docs | Official Starter |
-| --------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------------------------- |
-| [Contentful](https://www.contentful.com/) | [guide](/docs/how-to/sourcing-data/sourcing-from-contentful/) | [docs](/packages/gatsby-source-contentful) | [starter](/starters/contentful/starter-gatsby-blog/) |
-| [NetlifyCMS](https://www.netlifycms.org/) | [guide](/docs/how-to/sourcing-data/sourcing-from-netlify-cms/) | [docs](/packages/gatsby-plugin-netlify-cms) | [starter](/starters/netlify-templates/gatsby-starter-netlify-cms/) |
-| [WordPress](https://www.wordpress.com/) | [guide](/docs/how-to/sourcing-data/sourcing-from-wordpress/) | [docs](/packages/gatsby-source-wordpress-experimental) | |
-| [Prismic](https://www.prismic.io/) | [guide](/docs/how-to/sourcing-data/sourcing-from-prismic/) | [docs](/packages/gatsby-source-prismic) | |
-| [Strapi](https://strapi.io/) | [guide](/blog/2018-1-18-strapi-and-gatsby/) | [docs](/packages/gatsby-source-strapi) | |
-| [DatoCMS](https://www.datocms.com/) | [guide](https://www.gatsbyjs.com/guides/datocms/) | [docs](/packages/gatsby-source-datocms) | [starter](/starters/datocms/gatsby-portfolio/) |
-| [Sanity](https://www.sanity.io/) | [guide](/docs/sourcing-from-sanity) | [docs](/packages/gatsby-source-sanity/) | |
-| [Drupal](https://www.drupal.com/) | [guide](/docs/how-to/sourcing-data/sourcing-from-drupal/) | [docs](/packages/gatsby-source-drupal) | |
-| [Shopify](https://www.shopify.com/) | | [docs](/packages/gatsby-source-shopify) | |
-| [Cosmic](https://cosmicjs.com/) | [guide](/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/) | [docs](/packages/gatsby-source-cosmicjs) | [starters](/starters/?s=cosmic&v=2) |
-| [Contentstack](https://www.contentstack.com/) | [guide](/docs/sourcing-from-contentstack) | [docs](/packages/gatsby-source-contentstack) | [starter](/starters/contentstack/gatsby-starter-contentstack/) |
-| [ButterCMS](https://buttercms.com/) | [guide](/docs/sourcing-from-buttercms/) | [docs](/packages/gatsby-source-buttercms) | [starter](/starters/ButterCMS/gatsby-starter-buttercms/) |
-| [Ghost](https://ghost.org/) | [guide](/docs/sourcing-from-ghost/) | [docs](/packages/gatsby-source-ghost/) | [starter](/starters/TryGhost/gatsby-starter-ghost/) |
-| [Kentico Kontent](https://kontent.ai/) | [guide](/docs/sourcing-from-kentico-kontent) | [docs](/packages/@kentico/gatsby-source-kontent) | [starter](/starters/Kentico/gatsby-starter-kontent-lumen/) |
-| [Directus](https://directus.io/) | | [docs](/packages/gatsby-source-directus) | |
-| [GraphCMS](https://graphcms.com/) | [guide](/docs/sourcing-from-graphcms) | [docs](/packages/gatsby-source-graphql) | [starter](/starters/GraphCMS/gatsby-graphcms-tailwindcss-example/) |
-| [Storyblok](https://www.storyblok.com/) | [guide](https://www.storyblok.com/tp/gatsby-multilanguage-website-tutorial) | [docs](/packages/gatsby-source-storyblok) | [starter](https://github.com/storyblok/gatsby-storyblok-boilerplate) |
-| [Cockpit](https://getcockpit.com/) | | [docs](/packages/gatsby-plugin-cockpit) | |
-| [CraftCMS](https://craftcms.com/) | | [docs](/packages/gatsby-source-craftcms) | |
-| [Agility CMS](https://agilitycms.com/) | [guide](/docs/sourcing-from-agilitycms/) | [docs](/packages/@agility/gatsby-source-agilitycms/) | [starter](/starters/agility/agility-gatsby-starter/) |
-| [Forestry](https://forestry.io/) | [guide](/docs/sourcing-from-forestry/) | | |
-| [Gentics Mesh](https://getmesh.io) | [guide](/docs/sourcing-from-gentics-mesh) | | |
-| [Seams-CMS](https://seams-cms.com/) | [guide](/docs/sourcing-from-seams-cms) | | |
-| [Builder.io](https://www.builder.io/) | [guide](/docs/sourcing-from-builder-io/) | [docs](/packages/@builder.io/gatsby/) | [starter](https://github.com/BuilderIO/gatsby-starter-builder) |
-| [Flotiq](https://flotiq.com/) | [guide](/docs/sourcing-from-flotiq/) | [docs](/packages/gatsby-source-flotiq) | [starter](https://github.com/flotiq/gatsby-starter-blog) |
+| CMS | Guides | Plugin Docs | Official Starter |
+| --------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------- |
+| [Contentful](https://www.contentful.com/) | [guide](/docs/how-to/sourcing-data/sourcing-from-contentful/) | [docs](/plugins/gatsby-source-contentful) | [starter](/starters/contentful/starter-gatsby-blog/) |
+| [NetlifyCMS](https://www.netlifycms.org/) | [guide](/docs/how-to/sourcing-data/sourcing-from-netlify-cms/) | [docs](/plugins/gatsby-plugin-netlify-cms) | [starter](/starters/netlify-templates/gatsby-starter-netlify-cms/) |
+| [WordPress](https://www.wordpress.com/) | [guide](/docs/how-to/sourcing-data/sourcing-from-wordpress/) | [docs](/plugins/gatsby-source-wordpress-experimental) | |
+| [Prismic](https://www.prismic.io/) | [guide](/docs/how-to/sourcing-data/sourcing-from-prismic/) | [docs](/plugins/gatsby-source-prismic) | |
+| [Strapi](https://strapi.io/) | [guide](/blog/2018-1-18-strapi-and-gatsby/) | [docs](/plugins/gatsby-source-strapi) | |
+| [DatoCMS](https://www.datocms.com/) | [guide](https://www.gatsbyjs.com/guides/datocms/) | [docs](/plugins/gatsby-source-datocms) | [starter](/starters/datocms/gatsby-portfolio/) |
+| [Sanity](https://www.sanity.io/) | [guide](/docs/sourcing-from-sanity) | [docs](/plugins/gatsby-source-sanity/) | |
+| [Drupal](https://www.drupal.com/) | [guide](/docs/how-to/sourcing-data/sourcing-from-drupal/) | [docs](/plugins/gatsby-source-drupal) | |
+| [Shopify](https://www.shopify.com/) | | [docs](/plugins/gatsby-source-shopify) | |
+| [Cosmic](https://cosmicjs.com/) | [guide](/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/) | [docs](/plugins/gatsby-source-cosmicjs) | [starters](/starters/?s=cosmic&v=2) |
+| [Contentstack](https://www.contentstack.com/) | [guide](/docs/sourcing-from-contentstack) | [docs](/plugins/gatsby-source-contentstack) | [starter](/starters/contentstack/gatsby-starter-contentstack/) |
+| [ButterCMS](https://buttercms.com/) | [guide](/docs/sourcing-from-buttercms/) | [docs](/plugins/gatsby-source-buttercms) | [starter](/starters/ButterCMS/gatsby-starter-buttercms/) |
+| [Ghost](https://ghost.org/) | [guide](/docs/sourcing-from-ghost/) | [docs](/plugins/gatsby-source-ghost/) | [starter](/starters/TryGhost/gatsby-starter-ghost/) |
+| [Kentico Kontent](https://kontent.ai/) | [guide](/docs/sourcing-from-kentico-kontent) | [docs](/plugins/@kentico/gatsby-source-kontent) | [starter](/starters/Kentico/gatsby-starter-kontent-lumen/) |
+| [Directus](https://directus.io/) | | [docs](/plugins/gatsby-source-directus) | |
+| [GraphCMS](https://graphcms.com/) | [guide](/docs/sourcing-from-graphcms) | [docs](/plugins/gatsby-source-graphql) | [starter](/starters/GraphCMS/gatsby-graphcms-tailwindcss-example/) |
+| [Storyblok](https://www.storyblok.com/) | [guide](https://www.storyblok.com/tp/gatsby-multilanguage-website-tutorial) | [docs](/plugins/gatsby-source-storyblok) | [starter](https://github.com/storyblok/gatsby-storyblok-boilerplate) |
+| [Cockpit](https://getcockpit.com/) | | [docs](/plugins/gatsby-plugin-cockpit) | |
+| [CraftCMS](https://craftcms.com/) | | [docs](/plugins/gatsby-source-craftcms) | |
+| [Agility CMS](https://agilitycms.com/) | [guide](/docs/sourcing-from-agilitycms/) | [docs](/plugins/@agility/gatsby-source-agilitycms/) | [starter](/starters/agility/agility-gatsby-starter/) |
+| [Forestry](https://forestry.io/) | [guide](/docs/sourcing-from-forestry/) | | |
+| [Gentics Mesh](https://getmesh.io) | [guide](/docs/sourcing-from-gentics-mesh) | | |
+| [Seams-CMS](https://seams-cms.com/) | [guide](/docs/sourcing-from-seams-cms) | | |
+| [Builder.io](https://www.builder.io/) | [guide](/docs/sourcing-from-builder-io/) | [docs](/plugins/@builder.io/gatsby/) | [starter](https://github.com/BuilderIO/gatsby-starter-builder) |
+| [Flotiq](https://flotiq.com/) | [guide](/docs/sourcing-from-flotiq/) | [docs](/plugins/gatsby-source-flotiq) | [starter](https://github.com/flotiq/gatsby-starter-blog) |
## How to add new guides to this section
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-databases.md b/docs/docs/how-to/sourcing-data/sourcing-from-databases.md
index b9f93e05461d4..c1c6ade46870a 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-databases.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-databases.md
@@ -4,10 +4,10 @@ title: Sourcing from Databases
The Gatsby ecosystem includes built-in connectors to several database systems. These include:
-- [PostgreSQL](/packages/gatsby-source-pg/?=pg)
-- [MySQL](/packages/gatsby-source-mysql/?=mysql)
+- [PostgreSQL](/plugins/gatsby-source-pg/?=pg)
+- [MySQL](/plugins/gatsby-source-mysql/?=mysql)
- [Amazon Redshift, SQLite3, Oracle and MSSQL](https://github.com/mrfunnyshoes/gatsby-source-sql)
-- [MongoDB](/packages/gatsby-source-mongodb/)
-- [Firebase](/packages/gatsby-source-firebase/)/[Firestore](/packages/gatsby-source-firestore/)
+- [MongoDB](/plugins/gatsby-source-mongodb/)
+- [Firebase](/plugins/gatsby-source-firebase/)/[Firestore](/plugins/gatsby-source-firestore/)
These plugins will ingest data from your DB and make it available for your page components to query.
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-drupal.md b/docs/docs/how-to/sourcing-data/sourcing-from-drupal.md
index a7fa0451c9da8..e34c982218ea3 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-drupal.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-drupal.md
@@ -20,7 +20,7 @@ This guide assumes that you have a Gatsby project set up. If you need to set up
Hooking up Gatsby to a new or existing Drupal site takes only a few steps.
-- Follow the `gatsby-source-drupal` [installation instructions](/packages/gatsby-source-drupal/?=drupal) to add the plugin to your Gatsby site
+- Follow the `gatsby-source-drupal` [installation instructions](/plugins/gatsby-source-drupal/?=drupal) to add the plugin to your Gatsby site
An example of how to include the `gatsby-source-drupal` plugin in your `gatsby-config.js` file:
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-hosted-services.md b/docs/docs/how-to/sourcing-data/sourcing-from-hosted-services.md
index c452321d039bd..7cc68c62b8b1a 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-hosted-services.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-hosted-services.md
@@ -4,13 +4,13 @@ title: Sourcing from Hosted Services
There are many Gatsby plugins that integrate with hosted cloud services, also known as SaaS (Software as a Service). You can search for [Gatsby plugins](/plugins/) as well as [Gatsby starters](/starters/) that integrate with hosted services to source content and functionality. Some examples include:
-- [Airtable](/packages/gatsby-source-airtable)
-- [AWS DynamoDB](/packages/gatsby-source-dynamodb)
-- [Contentful](/packages/gatsby-source-contentful/)
-- [Firebase](/packages/gatsby-source-firebase)
-- [Google Docs](/packages/gatsby-source-google-docs)
-- [Prismic](/packages/gatsby-source-prismic-graphql)
-- [Shopify](/packages/gatsby-source-shopify)
+- [Airtable](/plugins/gatsby-source-airtable)
+- [AWS DynamoDB](/plugins/gatsby-source-dynamodb)
+- [Contentful](/plugins/gatsby-source-contentful/)
+- [Firebase](/plugins/gatsby-source-firebase)
+- [Google Docs](/plugins/gatsby-source-google-docs)
+- [Prismic](/plugins/gatsby-source-prismic-graphql)
+- [Shopify](/plugins/gatsby-source-shopify)
These plugins will pull data from a hosted service and make it available to your Gatsby site via GraphQL.
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md b/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md
index 8de705258b373..3ff61a23d02fe 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md
@@ -58,7 +58,7 @@ _Note: If you want to locally build your project you'll also have to create a `.
Now you need to configure the plugin (See all [available options](https://www.npmjs.com/package/gatsby-source-prismic#how-to-use)). The `repositoryName` is the name you have entered at the creation of the repository (you'll also find it as the subdomain in the URL). The `linkResolver` function is used to process links in your content. Fields with rich text formatting or links to internal content use this function to generate the correct link URL. The document node, field key (i.e. API ID), and field value are provided to the function. This allows you to use different [link resolver logic](https://prismic.io/docs/javascript/query-the-api/link-resolving) for each field if necessary.
-Remember also to add an object of Prismic custom type JSON schemas. You can copy it from Prismic's JSON editor tab in your custom type page. It's important to keep the name of JSON file **the same** as your custom type's API ID. More information can be found in the [Prismic documentation](https://user-guides.prismic.io/en/articles/380227-introduction-to-custom-type-building) and [Source Plugin README](/packages/gatsby-source-prismic/#providing-json-schemas).
+Remember also to add an object of Prismic custom type JSON schemas. You can copy it from Prismic's JSON editor tab in your custom type page. It's important to keep the name of JSON file **the same** as your custom type's API ID. More information can be found in the [Prismic documentation](https://user-guides.prismic.io/en/articles/380227-introduction-to-custom-type-building) and [Source Plugin README](/plugins/gatsby-source-prismic/#providing-json-schemas).
Add the following to register the plugin:
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-private-apis.md b/docs/docs/how-to/sourcing-data/sourcing-from-private-apis.md
index 56a4382a4fa2b..f315f2544f578 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-private-apis.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-private-apis.md
@@ -8,7 +8,7 @@ From the Gatsby perspective, there is no difference between sourcing from a publ
There are 3 approaches that you can use to source data from your private API:
-1. If your private API is a GraphQL API, you can use [`gatsby-source-graphql`](/packages/gatsby-source-graphql/).
+1. If your private API is a GraphQL API, you can use [`gatsby-source-graphql`](/plugins/gatsby-source-graphql/).
2. If your private API is not a GraphQL API and you are new to GraphQL, treat the data as unstructured data and fetch it during build time, as described by the guide "[Using Gatsby without GraphQL](/docs/how-to/querying-data/using-gatsby-without-graphql/)". However, as highlighted in the guide, this approach comes with some tradeoffs.
3. Create a source plugin, as described in the tutorial "[Source plugin tutorial](/docs/how-to/plugins-and-themes/creating-a-source-plugin/)".
@@ -16,7 +16,7 @@ There are 3 approaches that you can use to source data from your private API:
1. If the data of your private API is updated very frequently or the expectation of the site is to be updated in real-time, it may make more sense to query the data directly during runtime.
-2. If you can source the data through a plugin, consider that as an alternative to sourcing via the API. For instance, if you have access to the MongoDB database that stores the data, [`gatsby-source-mongodb`](/packages/gatsby-source-mongodb/) will be handy. Browse the [Gatsby Plugin Library](/plugins/) to see what plugins that you could utilize.
+2. If you can source the data through a plugin, consider that as an alternative to sourcing via the API. For instance, if you have access to the MongoDB database that stores the data, [`gatsby-source-mongodb`](/plugins/gatsby-source-mongodb/) will be handy. Browse the [Gatsby Plugin Library](/plugins/) to see what plugins that you could utilize.
3. Depending on your build process and the availability of your private API, you may need to make other adjustments accordingly.
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-the-filesystem.md b/docs/docs/how-to/sourcing-data/sourcing-from-the-filesystem.md
index 3068f85ee5e5c..26281e67a9f31 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-the-filesystem.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-the-filesystem.md
@@ -102,4 +102,4 @@ Once files have been sourced, various "transformer" plugins in the Gatsby ecosys
## Further reference and examples
-For further reference, you may be interested in checking out the `gatsby-source-filesystem` [package README](/packages/gatsby-source-filesystem/), and various official and community [starters that use the plugin](/starters/?d=gatsby-source-filesystem).
+For further reference, you may be interested in checking out the `gatsby-source-filesystem` [package README](/plugins/gatsby-source-filesystem/), and various official and community [starters that use the plugin](/starters/?d=gatsby-source-filesystem).
diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-wordpress.md b/docs/docs/how-to/sourcing-data/sourcing-from-wordpress.md
index c04b91b7b1afe..7036d0047908d 100644
--- a/docs/docs/how-to/sourcing-data/sourcing-from-wordpress.md
+++ b/docs/docs/how-to/sourcing-data/sourcing-from-wordpress.md
@@ -4,7 +4,7 @@ title: Sourcing from WordPress
This guide will walk you through the process of using Gatsby with WordPress and [WPGraphQL](https://www.wpgraphql.com/).
-WordPress is a free and open-source content management system (CMS). Let's say you have a site built with WordPress and you want to pull the existing data into your static Gatsby site. You can do that with [gatsby-source-wordpress-experimental](/packages/gatsby-source-wordpress-experimental/?=wordpress). Let's begin!
+WordPress is a free and open-source content management system (CMS). Let's say you have a site built with WordPress and you want to pull the existing data into your static Gatsby site. You can do that with [gatsby-source-wordpress-experimental](/plugins/gatsby-source-wordpress-experimental/?=wordpress). Let's begin!
_Note: this guide uses the `gatsby-starter-default` to provide you with the knowledge necessary to start working with WordPress but if you get stuck at some point of the guide feel free to use
[this example](https://github.com/TylerBarnes/using-gatsby-source-wordpress-experimental) to gain extra insights._
diff --git a/docs/docs/how-to/styling/emotion.md b/docs/docs/how-to/styling/emotion.md
index d8a283d7d2c2e..0021a20c3a99d 100644
--- a/docs/docs/how-to/styling/emotion.md
+++ b/docs/docs/how-to/styling/emotion.md
@@ -118,7 +118,7 @@ export default function UsersList() {
## Adding global styles in Gatsby with Emotion
-To start, create a new Gatsby site with the [hello world starter](https://github.com/gatsbyjs/gatsby-starter-hello-world) and install [`gatsby-plugin-emotion`](/packages/gatsby-plugin-emotion/) and its dependencies:
+To start, create a new Gatsby site with the [hello world starter](https://github.com/gatsbyjs/gatsby-starter-hello-world) and install [`gatsby-plugin-emotion`](/plugins/gatsby-plugin-emotion/) and its dependencies:
```shell
gatsby new global-styles https://github.com/gatsbyjs/gatsby-starter-hello-world
diff --git a/docs/docs/how-to/styling/global-css.md b/docs/docs/how-to/styling/global-css.md
index 7bb9b91cc0563..c8086aee5dd99 100644
--- a/docs/docs/how-to/styling/global-css.md
+++ b/docs/docs/how-to/styling/global-css.md
@@ -126,7 +126,7 @@ It is also possible to break up your CSS styles into separate files so that team
import "css/menu.css"
```
-This approach can simplify integration of CSS or [Sass](/packages/gatsby-plugin-sass/) styles into your Gatsby site by allowing team members to write and consume more traditional, class-based CSS. However, there are [trade-offs](#limitations) that must be considered with regards to web performance and the lack of dead code elimination.
+This approach can simplify integration of CSS or [Sass](/plugins/gatsby-plugin-sass/) styles into your Gatsby site by allowing team members to write and consume more traditional, class-based CSS. However, there are [trade-offs](#limitations) that must be considered with regards to web performance and the lack of dead code elimination.
### Adding classes to components
diff --git a/docs/docs/how-to/styling/other-css-frameworks.md b/docs/docs/how-to/styling/other-css-frameworks.md
index b378c8c02ae45..e5fb5d09d712a 100644
--- a/docs/docs/how-to/styling/other-css-frameworks.md
+++ b/docs/docs/how-to/styling/other-css-frameworks.md
@@ -37,7 +37,7 @@ Chakra UI is built on top of the [Emotion styling library](/docs/how-to/styling/
Chakra UI provides a library of components, and it comes with dark mode out of the box. It also has a theme object which you can use to customize your site's color palette, typography, breakpoints, and more.
-If you're interested in using Chakra UI, check out the [`gatsby-plugin-chakra-ui` documentation](/packages/gatsby-plugin-chakra-ui/?=chakra).
+If you're interested in using Chakra UI, check out the [`gatsby-plugin-chakra-ui` documentation](/plugins/gatsby-plugin-chakra-ui/?=chakra).
- [Chakra UI documentation](https://chakra-ui.com/getting-started)
- [Chakra UI repo on GitHub](https://github.com/chakra-ui/chakra-ui/)
@@ -59,7 +59,7 @@ If you're interested in using Grommet, check out [Using Grommet with Gatsby (Hew
Material-UI provides a library of components designed using Google's [Material Design guidelines](https://material.io/design/introduction). It also supports customizing theme elements like color, typography, and breakpoints.
-If you're interested in using Material-UI, check out the [`gatsby-plugin-material-ui` documentation](/packages/gatsby-plugin-material-ui).
+If you're interested in using Material-UI, check out the [`gatsby-plugin-material-ui` documentation](/plugins/gatsby-plugin-material-ui).
- [Material-UI documentation](https://material-ui.com/)
- [Material-UI repo on GitHub](https://github.com/mui-org/material-ui)
diff --git a/docs/docs/how-to/styling/post-css.md b/docs/docs/how-to/styling/post-css.md
index 29a861cc718f6..b8751169a5247 100644
--- a/docs/docs/how-to/styling/post-css.md
+++ b/docs/docs/how-to/styling/post-css.md
@@ -8,7 +8,7 @@ PostCSS transforms extended syntaxes and features into modern, browser-friendly
This guide assumes that you have a Gatsby project set up. If you need to set up a project, head to the [quick start guide](/docs/quick-start/), then come back.
-1. Install the Gatsby plugin [gatsby-plugin-postcss](/packages/gatsby-plugin-postcss/).
+1. Install the Gatsby plugin [gatsby-plugin-postcss](/plugins/gatsby-plugin-postcss/).
```shell
npm install postcss gatsby-plugin-postcss
diff --git a/docs/docs/how-to/styling/sass.md b/docs/docs/how-to/styling/sass.md
index 486171ac3d767..93f5afa22e501 100644
--- a/docs/docs/how-to/styling/sass.md
+++ b/docs/docs/how-to/styling/sass.md
@@ -12,7 +12,7 @@ Sass will compile `.sass` and `.scss` files to `.css` files for you, so you can
This guide assumes that you have a Gatsby project set up. If you need to set up a project, head to the [**Quick Start guide**](/docs/quick-start/), then come back.
-1. Install the Gatsby plugin [**gatsby-plugin-sass**](/packages/gatsby-plugin-sass/) and `node-sass`, a required peer dependency as of v2.0.0.
+1. Install the Gatsby plugin [**gatsby-plugin-sass**](/plugins/gatsby-plugin-sass/) and `node-sass`, a required peer dependency as of v2.0.0.
`npm install node-sass gatsby-plugin-sass`
@@ -22,7 +22,7 @@ This guide assumes that you have a Gatsby project set up. If you need to set up
plugins: [`gatsby-plugin-sass`],
```
-> **Note**: You can configure [additional plugin options](/packages/gatsby-plugin-sass/#other-options) like paths to include and options for `css-loader`.
+> **Note**: You can configure [additional plugin options](/plugins/gatsby-plugin-sass/#other-options) like paths to include and options for `css-loader`.
3. Write your stylesheets as `.sass` or `.scss` files and require or import them as normal.
diff --git a/docs/docs/how-to/styling/tailwind-css.md b/docs/docs/how-to/styling/tailwind-css.md
index 65a33b742abe3..c7e9513a1e80d 100644
--- a/docs/docs/how-to/styling/tailwind-css.md
+++ b/docs/docs/how-to/styling/tailwind-css.md
@@ -10,7 +10,7 @@ There are three ways you can use Tailwind with Gatsby:
1. Standard: Use PostCSS to generate Tailwind classes, then you can apply those classes using `className`.
2. CSS-in-JS: Integrate Tailwind classes into Styled Components.
-3. SCSS: Use [gatsby-plugin-sass](/packages/gatsby-plugin-sass) to support Tailwind classes in your SCSS files.
+3. SCSS: Use [gatsby-plugin-sass](/plugins/gatsby-plugin-sass) to support Tailwind classes in your SCSS files.
You have to install and configure Tailwind for all of these methods, so this guide will walk through that step first, then you can follow the instructions for PostCSS, CSS-in-JS or SCSS.
@@ -36,7 +36,7 @@ npx tailwindcss init
#### Option #1: PostCSS
-1. Install the Gatsby PostCSS plugin [**gatsby-plugin-postcss**](/packages/gatsby-plugin-postcss).
+1. Install the Gatsby PostCSS plugin [**gatsby-plugin-postcss**](/plugins/gatsby-plugin-postcss).
```shell
npm install postcss gatsby-plugin-postcss
@@ -118,7 +118,7 @@ See the [Twin + Gatsby + Emotion installation guide](https://github.com/ben-roge
#### Option #3: SCSS
-1. Install the Gatsby SCSS plugin [**gatsby-plugin-sass**](/packages/gatsby-plugin-sass) and `node-sass`.
+1. Install the Gatsby SCSS plugin [**gatsby-plugin-sass**](/plugins/gatsby-plugin-sass) and `node-sass`.
```shell
npm install node-sass gatsby-plugin-sass
diff --git a/docs/docs/how-to/testing/end-to-end-testing.md b/docs/docs/how-to/testing/end-to-end-testing.md
index c829c6974439d..31bd3a33ec312 100644
--- a/docs/docs/how-to/testing/end-to-end-testing.md
+++ b/docs/docs/how-to/testing/end-to-end-testing.md
@@ -192,7 +192,7 @@ const axeRunOptions = {
cy.checkA11y(null, axeRunOptions)
```
-The `checkA11y` command runs the `axe.run` method under the hood. This method can slow down Cypress and make the window unresponsive if you have a lot of elements on the page. To overcome this, you can use the [axe.run context](https://www.deque.com/axe/axe-for-web/documentation/api-documentation/#context-parameter) and exclude some elements to improve speed. For example, code blocks from [gatsby-remark-prismjs](/packages/gatsby-remark-prismjs/) can slow down your tests. You can test if they are accessible in a single test, and exclude them in the rest of your tests.
+The `checkA11y` command runs the `axe.run` method under the hood. This method can slow down Cypress and make the window unresponsive if you have a lot of elements on the page. To overcome this, you can use the [axe.run context](https://www.deque.com/axe/axe-for-web/documentation/api-documentation/#context-parameter) and exclude some elements to improve speed. For example, code blocks from [gatsby-remark-prismjs](/plugins/gatsby-remark-prismjs/) can slow down your tests. You can test if they are accessible in a single test, and exclude them in the rest of your tests.
```js:title=cypress/e2e/accessibility.test.js
const axeRunOptions = {
diff --git a/docs/docs/how-to/testing/testing-css-in-js.md b/docs/docs/how-to/testing/testing-css-in-js.md
index a2ae6ff642c77..00e90e5302363 100644
--- a/docs/docs/how-to/testing/testing-css-in-js.md
+++ b/docs/docs/how-to/testing/testing-css-in-js.md
@@ -16,7 +16,7 @@ For this example you'll use emotion. The testing utilities of emotion and glamor
npm install --save-dev @emotion/jest @emotion/babel-plugin
```
-As [Gatsby's emotion plugin](/packages/gatsby-plugin-emotion/) is using `@emotion/babel-plugin` under the hood you'll also need to install it so that Jest can use it.
+As [Gatsby's emotion plugin](/plugins/gatsby-plugin-emotion/) is using `@emotion/babel-plugin` under the hood you'll also need to install it so that Jest can use it.
If you followed along with the [Unit testing guide](/docs/how-to/testing/unit-testing) you'll have the file `jest-preprocess.js` at the root of your project. Open that file and add the plugin:
diff --git a/docs/docs/internal-data-bridge.md b/docs/docs/internal-data-bridge.md
index 56264c300ae8a..de0816b791d9e 100644
--- a/docs/docs/internal-data-bridge.md
+++ b/docs/docs/internal-data-bridge.md
@@ -2,7 +2,7 @@
title: Internal Data Bridge
---
-The Internal Data Bridge is an internal Gatsby plugin located at [internal-plugins/internal-data-bridge](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby/src/internal-plugins/internal-data-bridge). Its purpose is to create nodes representing pages, plugins, and site config so that they can be introspected for arbitrary purposes. As of writing, the only usage of this is by the [gatsby-plugin-sitemap](/packages/gatsby-plugin-sitemap) which uses it to... yes you guessed it, create a site map of your site.
+The Internal Data Bridge is an internal Gatsby plugin located at [internal-plugins/internal-data-bridge](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby/src/internal-plugins/internal-data-bridge). Its purpose is to create nodes representing pages, plugins, and site config so that they can be introspected for arbitrary purposes. As of writing, the only usage of this is by the [gatsby-plugin-sitemap](/plugins/gatsby-plugin-sitemap) which uses it to... yes you guessed it, create a site map of your site.
## Example usage
diff --git a/docs/docs/location-data-from-props.md b/docs/docs/location-data-from-props.md
index 771438d979826..bb1d7ded64526 100644
--- a/docs/docs/location-data-from-props.md
+++ b/docs/docs/location-data-from-props.md
@@ -101,5 +101,5 @@ const SomePageComponent = ({ location }) => {
- [@reach/router docs](https://reach.tech/router/api/Location)
- [react-router location docs](https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/location.md)
- [Hash Router](https://reacttraining.com/react-router/web/api/HashRouter)
-- [Gatsby Breadcrumb Plugin](/packages/gatsby-plugin-breadcrumb/#breadcrumb-props)
+- [Gatsby Breadcrumb Plugin](/plugins/gatsby-plugin-breadcrumb/#breadcrumb-props)
- [Create Modal w/ Navigation State using React Router](https://codedaily.io/tutorials/47/Create-a-Modal-Route-with-Link-and-Nav-State-in-React-Router)
diff --git a/docs/docs/mdx/getting-started.md b/docs/docs/mdx/getting-started.md
index d4e095e751304..f351c5d864425 100644
--- a/docs/docs/mdx/getting-started.md
+++ b/docs/docs/mdx/getting-started.md
@@ -31,7 +31,7 @@ your site.
## Add MDX to an existing Gatsby site
If you already have a Gatsby site that you'd like to add MDX to, you
-can follow these steps for configuring the [gatsby-plugin-mdx](/packages/gatsby-plugin-mdx/) plugin.
+can follow these steps for configuring the [gatsby-plugin-mdx](/plugins/gatsby-plugin-mdx/) plugin.
Alternatively, you may be looking to configure an existing blog site to use MDX. [This blog post](/blog/2019-11-21-how-to-convert-an-existing-gatsby-blog-to-use-mdx/) walks you through those steps in detail.
diff --git a/docs/docs/mdx/importing-and-using-components.md b/docs/docs/mdx/importing-and-using-components.md
index 7e371f5e044db..e0239f64d1943 100644
--- a/docs/docs/mdx/importing-and-using-components.md
+++ b/docs/docs/mdx/importing-and-using-components.md
@@ -50,7 +50,7 @@ export default function Layout({ children }) {
}
```
-All MDX components passed into the `components` prop of the `MDXProvider` will be made available to MDX documents that are nested under the provider. The `MDXProvider` in this example is in a layout component that wraps all MDX pages, you can read about this pattern in [the layout section of the `gatsby-plugin-mdx` README](/packages/gatsby-plugin-mdx/#default-layouts).
+All MDX components passed into the `components` prop of the `MDXProvider` will be made available to MDX documents that are nested under the provider. The `MDXProvider` in this example is in a layout component that wraps all MDX pages, you can read about this pattern in [the layout section of the `gatsby-plugin-mdx` README](/plugins/gatsby-plugin-mdx/#default-layouts).
Now, you can include components in your MDX without importing them:
@@ -79,7 +79,7 @@ Because the ` ` and ` ` components were passed into the provid
When you use components in your `.mdx` files, Gatsby will bundle them into the main application bundle. This can cause performance problems.
-In the future, [`gatsby-plugin-mdx`](/packages/gatsby-plugin-mdx) will address this. In the meantime, it can be prudent to lazy-load very large dependencies. The following snippet provides an example for lazy-loading an imaginary `Thing` component:
+In the future, [`gatsby-plugin-mdx`](/plugins/gatsby-plugin-mdx) will address this. In the meantime, it can be prudent to lazy-load very large dependencies. The following snippet provides an example for lazy-loading an imaginary `Thing` component:
```jsx:title=src/components/LazyThing.js
import React from "react"
diff --git a/docs/docs/mdx/programmatically-creating-pages.md b/docs/docs/mdx/programmatically-creating-pages.md
index d4c0ca65e6536..03355101da559 100644
--- a/docs/docs/mdx/programmatically-creating-pages.md
+++ b/docs/docs/mdx/programmatically-creating-pages.md
@@ -24,7 +24,7 @@ root.
> **Note**: `gatsby-plugin-mdx` uses `.mdx` by default as a file extension to
> recognize which files to use. You can also [use `.md` as a file
-> extension](/packages/gatsby-plugin-mdx#extensions) if you want.
+> extension](/plugins/gatsby-plugin-mdx#extensions) if you want.
```javascript:title=gatsby-config.js
module.exports = {
@@ -46,7 +46,7 @@ module.exports = {
```
You can read about
-[`gatsby-source-filesystem`](/packages/gatsby-source-filesystem)
+[`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem)
if you'd like to learn more.
## Add MDX files
diff --git a/docs/docs/mdx/writing-pages.md b/docs/docs/mdx/writing-pages.md
index 4f1a63e3d5dd4..cba5276067450 100644
--- a/docs/docs/mdx/writing-pages.md
+++ b/docs/docs/mdx/writing-pages.md
@@ -48,7 +48,7 @@ query {
> **Note:** To query `MDX` content, it must be included in the node system using a
> source like the `gatsby-source-filesystem` plugin first. Instructions for sourcing
-> content from somewhere like your `/src/pages` directory can be found on the [plugin's README](/packages/gatsby-source-filesystem/).
+> content from somewhere like your `/src/pages` directory can be found on the [plugin's README](/plugins/gatsby-source-filesystem/).
Frontmatter is also available in `props.pageContext.frontmatter` and
can be accessed in blocks of JSX in your MDX document:
@@ -186,7 +186,7 @@ query MdxExports {
### Defining a layout
-If you have [provided a default layout](/packages/gatsby-plugin-mdx/?=mdx#default-layouts) in your `gatsby-config.js`
+If you have [provided a default layout](/plugins/gatsby-plugin-mdx/?=mdx#default-layouts) in your `gatsby-config.js`
through the `gatsby-plugin-mdx` plugin options, the exported component you define
from this file will replace the default.
diff --git a/docs/docs/optimizing-site-performance-with-guessjs.md b/docs/docs/optimizing-site-performance-with-guessjs.md
index b8a56b939ada0..c3a14c8d9f938 100644
--- a/docs/docs/optimizing-site-performance-with-guessjs.md
+++ b/docs/docs/optimizing-site-performance-with-guessjs.md
@@ -14,7 +14,7 @@ Guess.js will download a file from Google Analytics during the production build.
## Guess.js and Gatsby
-See the [Gatsby Guess.js Plugin](/packages/gatsby-plugin-guess-js) for more information on integrating Guess.js with Gatsby.
+See the [Gatsby Guess.js Plugin](/plugins/gatsby-plugin-guess-js) for more information on integrating Guess.js with Gatsby.
### References:
diff --git a/docs/docs/page-creation.md b/docs/docs/page-creation.md
index d9198f6d21a7d..914b62007a176 100644
--- a/docs/docs/page-creation.md
+++ b/docs/docs/page-creation.md
@@ -18,4 +18,4 @@ The `components` Redux namespace is a map of [componentPath](/docs/behind-the-sc
## onCreatePage API
-Every time a page is created, plugins have the opportunity to handle its [onCreatePage](/docs/reference/config-files/gatsby-node/#onCreatePage) event. This is used for things like creating `SitePage` nodes in [Internal Data Bridge](/docs/internal-data-bridge/), and for "path" related plugins such as [gatsby-plugin-create-client-paths](/packages/gatsby-plugin-create-client-paths/) and [gatsby-plugin-remove-trailing-slashes](/packages/gatsby-plugin-remove-trailing-slashes/).
+Every time a page is created, plugins have the opportunity to handle its [onCreatePage](/docs/reference/config-files/gatsby-node/#onCreatePage) event. This is used for things like creating `SitePage` nodes in [Internal Data Bridge](/docs/internal-data-bridge/), and for "path" related plugins such as [gatsby-plugin-create-client-paths](/plugins/gatsby-plugin-create-client-paths/) and [gatsby-plugin-remove-trailing-slashes](/plugins/gatsby-plugin-remove-trailing-slashes/).
diff --git a/docs/docs/plugins.md b/docs/docs/plugins.md
index 0e2f6321e2a13..3770df857703f 100644
--- a/docs/docs/plugins.md
+++ b/docs/docs/plugins.md
@@ -4,7 +4,7 @@ title: Plugins
Gatsby plugins are Node.js packages that implement Gatsby APIs. For larger, more complex sites, plugins let you modularize your site customizations into site-specific plugins.
-There are many types of Gatsby plugins, including [data sourcing](/plugins/?=gatsby-source), [SEO](/plugins/?=seo), [responsive images](/packages/gatsby-image/?=gatsby-image), [offline support](/packages/gatsby-plugin-offline/), [Sass support](/packages/gatsby-plugin-sass/), [sitemaps](/packages/gatsby-plugin-sitemap/), [RSS feeds](/packages/gatsby-plugin-feed/), [TypeScript](/packages/gatsby-plugin-typescript/), [Google Analytics](/packages/gatsby-plugin-google-analytics/), and more. You can also [make your own plugins](/docs/creating-plugins/)!
+There are many types of Gatsby plugins, including [data sourcing](/plugins/?=gatsby-source), [SEO](/plugins/?=seo), [responsive images](/plugins/gatsby-image/?=gatsby-image), [offline support](/plugins/gatsby-plugin-offline/), [Sass support](/plugins/gatsby-plugin-sass/), [sitemaps](/plugins/gatsby-plugin-sitemap/), [RSS feeds](/plugins/gatsby-plugin-feed/), [TypeScript](/plugins/gatsby-plugin-typescript/), [Google Analytics](/plugins/gatsby-plugin-google-analytics/), and more. You can also [make your own plugins](/docs/creating-plugins/)!
Gatsby themes are a type of plugin that include a `gatsby-config.js` file and add **pre-configured** functionality, data sourcing, and/or UI code to Gatsby sites. To learn more about theme use cases and APIs, check out the [themes section of the docs](/docs/themes/). To learn about how plugins differ from themes and starters refer to the [Plugins, Themes, & Starters conceptual guide](/docs/conceptual/plugins-themes-and-starters/).
diff --git a/docs/docs/production-app.md b/docs/docs/production-app.md
index 26fcfe26c846b..fe90cd7f347c1 100644
--- a/docs/docs/production-app.md
+++ b/docs/docs/production-app.md
@@ -134,7 +134,7 @@ Then, the app, webpack-runtime, component, shared libraries, and data JSON bundl
### onClientEntry (api-runner-browser)
-The first thing your app does is run the [onClientEntry](/docs/reference/config-files/gatsby-browser/#onClientEntry) browser API. This allows plugins to perform any operations before you hit the rest of the page loading logic. For example [gatsby-plugin-glamor](/packages/gatsby-plugin-glamor/) will call rehydrate.
+The first thing your app does is run the [onClientEntry](/docs/reference/config-files/gatsby-browser/#onClientEntry) browser API. This allows plugins to perform any operations before you hit the rest of the page loading logic. For example [gatsby-plugin-glamor](/plugins/gatsby-plugin-glamor/) will call rehydrate.
It's worth noting that the browser API runner is completely different to `api-runner-node` which is explained in [How APIs/Plugins Are Run](/docs/how-plugins-apis-are-run/). `api-runner-node` runs in Node.js and has to deal with complex server based execution paths. Whereas running APIs on the browser is a matter of iterating through the site's registered browser plugins and running them one after the other (see [api-runner-browser.js](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/cache-dir/api-runner-browser.js#L9)).
diff --git a/docs/docs/programmatically-create-pages-from-data.md b/docs/docs/programmatically-create-pages-from-data.md
index ea399ebeb55c5..866ba6ab50d59 100644
--- a/docs/docs/programmatically-create-pages-from-data.md
+++ b/docs/docs/programmatically-create-pages-from-data.md
@@ -113,7 +113,7 @@ are also available as the `pageContext` prop in the template component itself.
## Not just Markdown
The
-[`gatsby-transformer-remark`](/packages/gatsby-transformer-remark/)
+[`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark/)
plugin is just one of a multitude of Gatsby plugins that can provide data
through the GraphQL interface. Any of that data can be used to
programmatically create pages.
diff --git a/docs/docs/progressive-web-app.md b/docs/docs/progressive-web-app.md
index 8faff634a4b42..6fa7285ebb657 100644
--- a/docs/docs/progressive-web-app.md
+++ b/docs/docs/progressive-web-app.md
@@ -46,7 +46,7 @@ A [Web App manifest](https://www.w3.org/TR/appmanifest/) is a JSON file that pro
It includes information like the Web App's `name`, `icons`, `start_url`, `background-color` and [more](https://developers.google.com/web/fundamentals/web-app-manifest/).
-Gatsby provides a plugin interface to add support for shipping a manifest with your site -- [gatsby-plugin-manifest](/packages/gatsby-plugin-manifest).
+Gatsby provides a plugin interface to add support for shipping a manifest with your site -- [gatsby-plugin-manifest](/plugins/gatsby-plugin-manifest).
### It must implement a service worker
@@ -54,6 +54,6 @@ A [service worker](https://developers.google.com/web/fundamentals/primers/servic
It's a script that runs separately in the background, supporting features like push notifications and background sync.
-Gatsby also provides a plugin interface to create and load a service worker into your site -- [**gatsby-plugin-offline**](/packages/gatsby-plugin-offline).
+Gatsby also provides a plugin interface to create and load a service worker into your site -- [**gatsby-plugin-offline**](/plugins/gatsby-plugin-offline).
-We recommend using this plugin together with the [manifest plugin](/packages/gatsby-plugin-manifest). (Don't forget to list the `offline` plugin after the `manifest` plugin so that the manifest file can be included in the service worker).
+We recommend using this plugin together with the [manifest plugin](/plugins/gatsby-plugin-manifest). (Don't forget to list the `offline` plugin after the `manifest` plugin so that the manifest file can be included in the service worker).
diff --git a/docs/docs/recipes/deploying-your-site.md b/docs/docs/recipes/deploying-your-site.md
index 4b8b2dad26e68..bd2a2e2449d09 100644
--- a/docs/docs/recipes/deploying-your-site.md
+++ b/docs/docs/recipes/deploying-your-site.md
@@ -80,7 +80,7 @@ Use [`netlify-cli`](https://www.netlify.com/docs/cli/) to deploy your Gatsby app
### Additional resources
- [Hosting on Netlify](/docs/hosting-on-netlify)
-- [gatsby-plugin-netlify](/packages/gatsby-plugin-netlify)
+- [gatsby-plugin-netlify](/plugins/gatsby-plugin-netlify)
## Deploying to Vercel
diff --git a/docs/docs/recipes/sourcing-data.md b/docs/docs/recipes/sourcing-data.md
index 2d92cd63192c7..5932b2ec18a59 100644
--- a/docs/docs/recipes/sourcing-data.md
+++ b/docs/docs/recipes/sourcing-data.md
@@ -72,8 +72,8 @@ This recipe shows how to create pages from Markdown files on your local filesyst
- A [Gatsby site](/docs/quick-start) with a `gatsby-config.js` file
- The [Gatsby CLI](/docs/reference/gatsby-cli) installed
-- The [gatsby-source-filesystem plugin](/packages/gatsby-source-filesystem) installed
-- The [gatsby-transformer-remark plugin](/packages/gatsby-transformer-remark) installed
+- The [gatsby-source-filesystem plugin](/plugins/gatsby-source-filesystem) installed
+- The [gatsby-transformer-remark plugin](/plugins/gatsby-transformer-remark) installed
- A `gatsby-node.js` file
### Directions
@@ -245,7 +245,7 @@ module.exports = {
}
```
-> **Note:** Refer to the [`gatsby-source-wordpress` plugin docs](/packages/gatsby-source-wordpress/?=wordpre#how-to-use) to know more about configuring your plugins.
+> **Note:** Refer to the [`gatsby-source-wordpress` plugin docs](/plugins/gatsby-source-wordpress/?=wordpre#how-to-use) to know more about configuring your plugins.
3. Create a template component such as `src/templates/post.js` with the following code in it:
@@ -462,8 +462,8 @@ To continue building out your Contentful site including post detail pages, check
- [Building a Site with React and Contentful](/blog/2018-1-25-building-a-site-with-react-and-contentful/)
- [More on Sourcing from Contentful](/docs/how-to/sourcing-data/sourcing-from-contentful/)
-- [Contentful source plugin](/packages/gatsby-source-contentful/)
-- [Long-text field types returned as objects](/packages/gatsby-source-contentful/#a-note-about-longtext-fields)
+- [Contentful source plugin](/plugins/gatsby-source-contentful/)
+- [Long-text field types returned as objects](/plugins/gatsby-source-contentful/#a-note-about-longtext-fields)
- [Example repository for this recipe](https://github.com/gatsbyjs/gatsby/tree/master/examples/recipe-sourcing-contentful)
## Pulling data from an external source and creating pages without GraphQL
diff --git a/docs/docs/recipes/styling-css.md b/docs/docs/recipes/styling-css.md
index 57df1e7e75e67..3518fdfd3be19 100644
--- a/docs/docs/recipes/styling-css.md
+++ b/docs/docs/recipes/styling-css.md
@@ -96,7 +96,7 @@ export default function Home() {
### Prerequisites
- A [Gatsby site](/docs/quick-start/) with an index page component
-- [gatsby-plugin-styled-components, styled-components, and babel-plugin-styled-components](/packages/gatsby-plugin-styled-components/) installed in `package.json`
+- [gatsby-plugin-styled-components, styled-components, and babel-plugin-styled-components](/plugins/gatsby-plugin-styled-components/) installed in `package.json`
### Directions
@@ -320,7 +320,7 @@ If fonts are not updating following steps above, make sure to replace the existi
### Directions
-1. Install the [Gatsby Emotion plugin](/packages/gatsby-plugin-emotion/) and Emotion packages.
+1. Install the [Gatsby Emotion plugin](/plugins/gatsby-plugin-emotion/) and Emotion packages.
```shell
npm install gatsby-plugin-emotion @emotion/react @emotion/styled
diff --git a/docs/docs/recipes/working-with-images.md b/docs/docs/recipes/working-with-images.md
index a0aa374158239..c6133651d1502 100644
--- a/docs/docs/recipes/working-with-images.md
+++ b/docs/docs/recipes/working-with-images.md
@@ -110,7 +110,7 @@ Gatsby will generate optimized resources which can be queried with GraphQL and p
### Prerequisites
- The `gatsby-image`, `gatsby-transformer-sharp`, and `gatsby-plugin-sharp` packages installed and added to the plugins array in `gatsby-config`
-- [Images sourced](/packages/gatsby-image/#install) in your `gatsby-config` using a plugin like `gatsby-source-filesystem`
+- [Images sourced](/plugins/gatsby-image/#install) in your `gatsby-config` using a plugin like `gatsby-source-filesystem`
### Directions
@@ -306,12 +306,12 @@ return (
For use cases like a featured image in a blog post, you can _still_ use `gatsby-image`. The `Img` component needs processed image data, which can come from a local (or remote) file, including from a URL in the frontmatter of a `.md` or `.mdx` file.
-To inline images in markdown (using the `![]()` syntax), consider using a plugin like [`gatsby-remark-images`](/packages/gatsby-remark-images/)
+To inline images in markdown (using the `![]()` syntax), consider using a plugin like [`gatsby-remark-images`](/plugins/gatsby-remark-images/)
### Prerequisites
- The `gatsby-image`, `gatsby-transformer-sharp`, and `gatsby-plugin-sharp` packages installed and added to the plugins array in `gatsby-config`
-- [Images sourced](/packages/gatsby-image/#install) in your `gatsby-config` using a plugin like `gatsby-source-filesystem`
+- [Images sourced](/plugins/gatsby-image/#install) in your `gatsby-config` using a plugin like `gatsby-source-filesystem`
- Markdown files sourced in your `gatsby-config` with image URLs in frontmatter
- [Pages created](/docs/creating-and-modifying-pages/) from Markdown using [`createPages`](/docs/reference/config-files/gatsby-node/#createPages)
diff --git a/docs/docs/recipes/working-with-plugins.md b/docs/docs/recipes/working-with-plugins.md
index c30bfad0a2ea1..cc89f03294b81 100644
--- a/docs/docs/recipes/working-with-plugins.md
+++ b/docs/docs/recipes/working-with-plugins.md
@@ -7,7 +7,7 @@ A [Gatsby plugin](/docs/what-is-a-plugin/) abstracts Gatsby APIs into an install
## Using a plugin
-Found a plugin you'd like to use in your project? Awesome! You can configure it for use by following the steps below. This recipe uses the [`gatsby-source-filesystem` plugin](/packages/gatsby-source-filesystem/) as an example.
+Found a plugin you'd like to use in your project? Awesome! You can configure it for use by following the steps below. This recipe uses the [`gatsby-source-filesystem` plugin](/plugins/gatsby-source-filesystem/) as an example.
> If you'd like to take a look at available plugins, check out the [plugin library](/plugins).
diff --git a/docs/docs/recipes/working-with-themes.md b/docs/docs/recipes/working-with-themes.md
index fe3e0d4bf5889..798ffd1402b31 100644
--- a/docs/docs/recipes/working-with-themes.md
+++ b/docs/docs/recipes/working-with-themes.md
@@ -36,7 +36,7 @@ npm install gatsby-theme-blog
Follow the instructions found in the README of the theme you're using to determine what configuration it requires.
-> To learn how to further customize the blog theme, check out the available configuration options in the [Gatsby-theme-blog Documentation](/packages/gatsby-theme-blog/#theme-options).
+> To learn how to further customize the blog theme, check out the available configuration options in the [Gatsby-theme-blog Documentation](/plugins/gatsby-theme-blog/#theme-options).
```javascript:title=gatsby-config.js
module.exports = {
diff --git a/docs/docs/reference/built-in-components/gatsby-image.md b/docs/docs/reference/built-in-components/gatsby-image.md
index 2932dc124a1eb..d53ce8d3ac75d 100644
--- a/docs/docs/reference/built-in-components/gatsby-image.md
+++ b/docs/docs/reference/built-in-components/gatsby-image.md
@@ -2,7 +2,7 @@
title: Gatsby Image API
---
-Part of what makes Gatsby sites so fast is its recommended approach to handling images. `gatsby-image` is a React component designed to work seamlessly with Gatsby’s [native image processing](https://image-processing.gatsbyjs.org/) capabilities powered by GraphQL and [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/) to easily and completely optimize image loading for your sites.
+Part of what makes Gatsby sites so fast is its recommended approach to handling images. `gatsby-image` is a React component designed to work seamlessly with Gatsby’s [native image processing](https://image-processing.gatsbyjs.org/) capabilities powered by GraphQL and [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/) to easily and completely optimize image loading for your sites.
> _Note: gatsby-image is **not** a drop-in replacement for ` `. It’s optimized for responsive fixed width/height images and images that stretch the full-width of a container. There are also other ways to [work with images](/docs/images-and-files/) in Gatsby that don't require GraphQL._
@@ -10,7 +10,7 @@ Demo: https://using-gatsby-image.gatsbyjs.org/
## Setting up Gatsby Image
-To start working with Gatsby Image, install the `gatsby-image` package along with necessary plugins `gatsby-transformer-sharp` and `gatsby-plugin-sharp`. Reference the packages in your `gatsby-config.js` file. You can also provide additional options to [`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp/) in your config file.
+To start working with Gatsby Image, install the `gatsby-image` package along with necessary plugins `gatsby-transformer-sharp` and `gatsby-plugin-sharp`. Reference the packages in your `gatsby-config.js` file. You can also provide additional options to [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/) in your config file.
A common way to source images is to install and use `gatsby-source-filesystem` to connect your local files, but other source plugins can be used as well, such as `gatsby-source-contentful`, `gatsby-source-datocms` and `gatsby-source-sanity`.
@@ -39,7 +39,7 @@ _For in-depth install instructions, check out the docs on [Using Gatsby Image](/
To feed file data in to Gatsby Image, set up a [GraphQL query](/docs/graphql-reference/) and either pass it into a component as props or write it directly in the component. One technique is to leverage the [`useStaticQuery`](/docs/how-to/querying-data/use-static-query/) hook.
-Common GraphQL queries for sourcing images include `file` from [gatsby-source-filesystem](/packages/gatsby-source-filesystem/), and both `imageSharp` and `allImageSharp` from [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/), but ultimately the options available to you will depend on your content sources.
+Common GraphQL queries for sourcing images include `file` from [gatsby-source-filesystem](/plugins/gatsby-source-filesystem/), and both `imageSharp` and `allImageSharp` from [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/), but ultimately the options available to you will depend on your content sources.
> Note: you can also use [GraphQL aliases](/docs/graphql-reference/#aliasing) for querying multiple images of the same type.
@@ -118,7 +118,7 @@ file(relativePath: { eq: "images/default.jpg" }) {
}
```
-Read more about fixed image queries in the [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/#fixed) README.
+Read more about fixed image queries in the [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/#fixed) README.
### Images that stretch across a _fluid_ container
@@ -192,7 +192,7 @@ file(relativePath: { eq: "images/default.jpg" }) {
}
```
-Read more about fluid image queries in the [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/#fluid) README.
+Read more about fluid image queries in the [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/#fluid) README.
### Resized images
@@ -228,19 +228,19 @@ allImageSharp {
}
```
-Read more about resized image queries in the [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/#resize) README.
+Read more about resized image queries in the [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/#resize) README.
### Shared query parameters
In addition to `gatsby-plugin-sharp` settings in `gatsby-config.js`, there are additional query options that apply to _fluid_, _fixed_, and _resized_ images:
-- [`grayscale`](/packages/gatsby-plugin-sharp/#grayscale) (bool, default: false)
-- [`duotone`](/packages/gatsby-plugin-sharp/#duotone) (bool|obj, default: false)
-- [`toFormat`](/packages/gatsby-plugin-sharp/#toformat) (string, default: \`\`)
-- [`cropFocus`](/packages/gatsby-plugin-sharp/#cropfocus) (string, default: `ATTENTION`)
-- [`fit`](/packages/gatsby-plugin-sharp/#fit) (string, default: `COVER`)
-- [`pngCompressionSpeed`](/packages/gatsby-plugin-sharp/#pngcompressionspeed) (int, default: 4)
-- [`rotate`](/packages/gatsby-plugin-sharp/#rotate) (int, default: 0)
+- [`grayscale`](/plugins/gatsby-plugin-sharp/#grayscale) (bool, default: false)
+- [`duotone`](/plugins/gatsby-plugin-sharp/#duotone) (bool|obj, default: false)
+- [`toFormat`](/plugins/gatsby-plugin-sharp/#toformat) (string, default: \`\`)
+- [`cropFocus`](/plugins/gatsby-plugin-sharp/#cropfocus) (string, default: `ATTENTION`)
+- [`fit`](/plugins/gatsby-plugin-sharp/#fit) (string, default: `COVER`)
+- [`pngCompressionSpeed`](/plugins/gatsby-plugin-sharp/#pngcompressionspeed) (int, default: 4)
+- [`rotate`](/plugins/gatsby-plugin-sharp/#rotate) (int, default: 0)
Here's an example of using the `duotone` option with a fixed image:
@@ -278,13 +278,13 @@ fixed(
Grayscale | Before - After
-Read more about shared image query parameters in the [`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp/#shared-options) README.
+Read more about shared image query parameters in the [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/#shared-options) README.
## Image query fragments
GraphQL includes a concept called "query fragments", which are a part of a query that can be reused. To ease building with `gatsby-image`, Gatsby image processing plugins which support `gatsby-image` ship with fragments which you can easily include in your queries.
-> Note: using fragments in your queries depends on which data source(s) you have configured. Read more about image query fragments in the [gatsby-image](/packages/gatsby-image/#fragments) README.
+> Note: using fragments in your queries depends on which data source(s) you have configured. Read more about image query fragments in the [gatsby-image](/plugins/gatsby-image/#fragments) README.
### Common fragments with `gatsby-transformer-sharp`
@@ -335,7 +335,7 @@ For more info on how these options work, check out the Gatsby Image demo: https:
#### Additional plugin fragments
-Additionally, plugins supporting `gatsby-image` currently include [gatsby-source-contentful](/packages/gatsby-source-contentful/), [gatsby-source-datocms](https://github.com/datocms/gatsby-source-datocms) and [gatsby-source-sanity](https://github.com/sanity-io/gatsby-source-sanity). See the [gatsby-image](/packages/gatsby-image/#fragments) README for more details.
+Additionally, plugins supporting `gatsby-image` currently include [gatsby-source-contentful](/plugins/gatsby-source-contentful/), [gatsby-source-datocms](https://github.com/datocms/gatsby-source-datocms) and [gatsby-source-sanity](https://github.com/sanity-io/gatsby-source-sanity). See the [gatsby-image](/plugins/gatsby-image/#fragments) README for more details.
## Gatsby-image props
diff --git a/docs/docs/reference/config-files/gatsby-config.md b/docs/docs/reference/config-files/gatsby-config.md
index 857e8b0edc3ae..91a0d555e5736 100644
--- a/docs/docs/reference/config-files/gatsby-config.md
+++ b/docs/docs/reference/config-files/gatsby-config.md
@@ -209,7 +209,7 @@ module.exports = {
}
```
-You may need to install the appropriate file transformer (in this case [YAML](/packages/gatsby-transformer-yaml/)) and set up [gatsby-source-filesystem](/packages/gatsby-source-filesystem/) properly for Gatsby to pick up the mapping files. This applies to other file types later mentioned in this segment as well.
+You may need to install the appropriate file transformer (in this case [YAML](/plugins/gatsby-transformer-yaml/)) and set up [gatsby-source-filesystem](/plugins/gatsby-source-filesystem/) properly for Gatsby to pick up the mapping files. This applies to other file types later mentioned in this segment as well.
Gatsby then uses this mapping when creating the GraphQL schema to enable you to query data from both sources:
diff --git a/docs/docs/reference/graphql-data-layer/graphql-api.md b/docs/docs/reference/graphql-data-layer/graphql-api.md
index f327b5ac773fe..e2ce8e63876e9 100644
--- a/docs/docs/reference/graphql-data-layer/graphql-api.md
+++ b/docs/docs/reference/graphql-data-layer/graphql-api.md
@@ -226,7 +226,7 @@ For more information, check out the docs guide on [using fragments in Gatsby](/d
### Gatsby fragments
-Some fragments come included in Gatsby plugins, such as fragments for returning optimized image data in various formats with `gatsby-image` and `gatsby-transformer-sharp`, or data fragments with `gatsby-source-contentful`. For more information on what plugins include fragments, see the [`gatsby-image` README](/packages/gatsby-image#fragments).
+Some fragments come included in Gatsby plugins, such as fragments for returning optimized image data in various formats with `gatsby-image` and `gatsby-transformer-sharp`, or data fragments with `gatsby-source-contentful`. For more information on what plugins include fragments, see the [`gatsby-image` README](/plugins/gatsby-image#fragments).
## Advanced customizations
diff --git a/docs/docs/reference/graphql-data-layer/node-interface.md b/docs/docs/reference/graphql-data-layer/node-interface.md
index 47ffa38aea1be..ac0f8029540ba 100644
--- a/docs/docs/reference/graphql-data-layer/node-interface.md
+++ b/docs/docs/reference/graphql-data-layer/node-interface.md
@@ -65,12 +65,12 @@ Text description of the node.
## Source plugins
New nodes are added to Gatsby by "source" plugins. A common one that many Gatsby
-sites use is the [Filesystem source plugin](/packages/gatsby-source-filesystem/)
+sites use is the [Filesystem source plugin](/plugins/gatsby-source-filesystem/)
which turns files on disk into File nodes.
Other source plugins pull data from external APIs such as the
-[Drupal](/packages/gatsby-source-drupal/) and
-[Hacker News](/packages/gatsby-source-hacker-news/)
+[Drupal](/plugins/gatsby-source-drupal/) and
+[Hacker News](/plugins/gatsby-source-hacker-news/)
## Transformer plugins
@@ -82,10 +82,10 @@ Nodes created by transformer plugins are set as "children" of their "parent"
nodes.
- The
- [Remark (Markdown library) transformer plugin](/packages/gatsby-transformer-remark/)
+ [Remark (Markdown library) transformer plugin](/plugins/gatsby-transformer-remark/)
looks for new nodes that are created with a `mediaType` of `text/markdown` and
then transforms these nodes into `MarkdownRemark` nodes with an `html` field.
-- The [YAML transformer plugin](/packages/gatsby-transformer-yaml/) looks for
+- The [YAML transformer plugin](/plugins/gatsby-transformer-yaml/) looks for
new nodes with a media type of `text/yaml` (e.g. a `.yaml` file) and creates
new YAML child node(s) by parsing the YAML source into JavaScript objects.
diff --git a/docs/docs/reference/markdown-syntax.md b/docs/docs/reference/markdown-syntax.md
index 633e01165e1d7..ed249eefcb2b7 100644
--- a/docs/docs/reference/markdown-syntax.md
+++ b/docs/docs/reference/markdown-syntax.md
@@ -170,7 +170,7 @@ This pattern is appropriate for [decorative or repetitive images](https://www.w3
## Processing Markdown and MDX in Gatsby:
- In order to process and use Markdown or MDX in Gatsby, you can use the [gatsby-source-filesystem](/docs/sourcing-from-the-filesystem) plugin
-- You can check out the package [README](/packages/gatsby-source-filesystem) for more information on how it works!
+- You can check out the package [README](/plugins/gatsby-source-filesystem) for more information on how it works!
## Frontmatter
diff --git a/docs/docs/reference/release-notes/migrating-from-v1-to-v2.md b/docs/docs/reference/release-notes/migrating-from-v1-to-v2.md
index 31dcdea5a5e28..3c85c1b2447fb 100644
--- a/docs/docs/reference/release-notes/migrating-from-v1-to-v2.md
+++ b/docs/docs/reference/release-notes/migrating-from-v1-to-v2.md
@@ -120,7 +120,7 @@ npm install react react-dom
### Install plugins' peer dependencies
-Some plugins had dependencies that were also made `peerDependencies`. For example, if you use [`gatsby-plugin-typography`](/packages/gatsby-plugin-typography/), you now need to install:
+Some plugins had dependencies that were also made `peerDependencies`. For example, if you use [`gatsby-plugin-typography`](/plugins/gatsby-plugin-typography/), you now need to install:
```shell
npm install typography react-typography
@@ -138,7 +138,7 @@ There are some implications to this change:
- Rendering different layouts for different pages is different. Use the standard React inheritance model. Gatsby no longer maintains, or needs to maintain, separate behavior for handling layouts.
-- Because the "top-level component" changes between each page, React will rerender all children. This means that shared components previously in a Gatsby v1 layout-- like navigations-- will unmount and remount. This will break CSS transitions or React state within those shared components. If your use case requires a layout component to not unmount use [`gatsby-plugin-layout`](/packages/gatsby-plugin-layout/).
+- Because the "top-level component" changes between each page, React will rerender all children. This means that shared components previously in a Gatsby v1 layout-- like navigations-- will unmount and remount. This will break CSS transitions or React state within those shared components. If your use case requires a layout component to not unmount use [`gatsby-plugin-layout`](/plugins/gatsby-plugin-layout/).
- To learn more about the decision behind this removal, read the [RFC for removing the special layout component](https://github.com/gatsbyjs/rfcs/blob/master/text/0002-remove-special-layout-components.md).
@@ -661,7 +661,7 @@ We changed the GraphQL root type from `RootQueryType` to `Query`. This is only l
### Typography.js Plugin Config Changes
-If you use [`gatsby-plugin-typography`](/packages/gatsby-plugin-typography/), you now need to explicitly export `scale` and `rhythm` as named exports from your typography config module.
+If you use [`gatsby-plugin-typography`](/plugins/gatsby-plugin-typography/), you now need to explicitly export `scale` and `rhythm` as named exports from your typography config module.
```diff:title=src/utils/typography.js
- const typography = new Typography();
@@ -749,7 +749,7 @@ exports.onCreateWebpackConfig = ({ getConfig, actions }) => {
}
```
-If you're using a preprocessor, you can pass in CSS Loader options when configuring [`gatsby-plugin-sass`](/packages/gatsby-plugin-sass/#how-to-use) or [`gatsby-plugin-less`](/packages/gatsby-plugin-less/#how-to-use):
+If you're using a preprocessor, you can pass in CSS Loader options when configuring [`gatsby-plugin-sass`](/plugins/gatsby-plugin-sass/#how-to-use) or [`gatsby-plugin-less`](/plugins/gatsby-plugin-less/#how-to-use):
```javascript
// in gatsby-config.js
@@ -1032,7 +1032,7 @@ Import GraphQL types from `gatsby/graphql` to prevent `Schema must contain uniqu
### Add `gatsby-plugin-flow` if you are using Flowtype
-We removed `@babel/preset-flow` from Gatsby's default Babel configuration to make it easier to allow users to choose their own transpiler. If your site has its own `.babelrc` that already includes the Flow preset, no changes are necessary. Otherwise, you should install [`gatsby-plugin-flow`](/packages/gatsby-plugin-flow).
+We removed `@babel/preset-flow` from Gatsby's default Babel configuration to make it easier to allow users to choose their own transpiler. If your site has its own `.babelrc` that already includes the Flow preset, no changes are necessary. Otherwise, you should install [`gatsby-plugin-flow`](/plugins/gatsby-plugin-flow).
## For Explorers
diff --git a/docs/docs/schema-inference.md b/docs/docs/schema-inference.md
index 500645542caff..006552426669a 100644
--- a/docs/docs/schema-inference.md
+++ b/docs/docs/schema-inference.md
@@ -34,7 +34,7 @@ When running a GraphQL query, there are a variety of fields that you will want t
When GraphQL runs, it will query all `file` nodes by their relativePath and return the first node that satisfies that query. Then, it will filter down the fields to return by the inner expression. I.e `{ childMarkdownRemark ... }`. The building of the query arguments is covered by the [Inferring Input Filters](/docs/schema-input-gql) doc. This section instead explains how the inner filter schema is generated (it must be generated before input filters are inferred).
-During the [sourceNodes](/docs/reference/config-files/gatsby-node/#sourceNodes) phase, let's say that [gatsby-source-filesystem](/packages/gatsby-source-filesystem) ran and created a bunch of `File` nodes. Then, different transformers react via [onCreateNode](/docs/reference/config-files/gatsby-node/#onCreateNode), resulting in children of different `node.internal.type`s being created.
+During the [sourceNodes](/docs/reference/config-files/gatsby-node/#sourceNodes) phase, let's say that [gatsby-source-filesystem](/plugins/gatsby-source-filesystem) ran and created a bunch of `File` nodes. Then, different transformers react via [onCreateNode](/docs/reference/config-files/gatsby-node/#onCreateNode), resulting in children of different `node.internal.type`s being created.
There are 3 categories of node fields that we can query.
@@ -182,7 +182,7 @@ As described in [plain object or value field](#plain-object-or-value-field), if
It creates a new GraphQL Field Config whose type is the just created `File` GqlType, and whose resolver converts a string into a File object. Here's how it works:
-Say we have a `data/posts.json` file that has been sourced (of type `File`), and then the [gatsby-transformer-json](/packages/gatsby-transformer-json) transformer creates a child node (of type `PostsJson`)
+Say we have a `data/posts.json` file that has been sourced (of type `File`), and then the [gatsby-transformer-json](/plugins/gatsby-transformer-json) transformer creates a child node (of type `PostsJson`)
```json:title=data/posts.json
;[
diff --git a/docs/docs/sourcing-from-builder-io.md b/docs/docs/sourcing-from-builder-io.md
index d819e6e8b9ba7..9ea683d5ff62d 100644
--- a/docs/docs/sourcing-from-builder-io.md
+++ b/docs/docs/sourcing-from-builder-io.md
@@ -24,7 +24,7 @@ gatsby new my-builder-site https://github.com/BuilderIO/gatsby-starter-builder
### Existing project:
-Use [@builder.io/gatsby plugin](/packages/@builder.io/gatsby/) which will expose Builder.io data and optionally generate pages dynamically from a provided templates.
+Use [@builder.io/gatsby plugin](/plugins/@builder.io/gatsby/) which will expose Builder.io data and optionally generate pages dynamically from a provided templates.
## Query Builder.io data
@@ -64,6 +64,6 @@ query($path: String!) {
## Learn more
- [Builder.io GraphQL docs](https://www.builder.io/c/docs/graphql-api)
-- [@builder.io/gatsby plugin](/packages/@builder.io/gatsby/)
+- [@builder.io/gatsby plugin](/plugins/@builder.io/gatsby/)
- [Design system example](https://github.com/BuilderIO/builder/tree/master/examples/react-design-system)
- [Official docs](https://www.builder.io/c/docs/getting-started)
diff --git a/docs/docs/sourcing-from-etsy.md b/docs/docs/sourcing-from-etsy.md
index 75319903e1e27..dd9b25fa29ccc 100644
--- a/docs/docs/sourcing-from-etsy.md
+++ b/docs/docs/sourcing-from-etsy.md
@@ -16,7 +16,7 @@ Note that Etsy expects developers to test the API using real data. That means yo
## Using the Etsy source plugin
-You can use the [`gatsby-source-etsy`](/packages/gatsby-source-etsy/) plugin to pull featured listings and images from your Etsy shop into your Gatsby site. To install it, run:
+You can use the [`gatsby-source-etsy`](/plugins/gatsby-source-etsy/) plugin to pull featured listings and images from your Etsy shop into your Gatsby site. To install it, run:
```shell
npm install gatsby-source-etsy
@@ -112,5 +112,5 @@ Building your own site with Gatsby allows you to have the best of both worlds. Y
## Other resources
-- [`gatsby-source-etsy`](/packages/gatsby-source-etsy/)
+- [`gatsby-source-etsy`](/plugins/gatsby-source-etsy/)
- Etsy's [API documentation](https://www.etsy.com/developers/documentation/)
diff --git a/docs/docs/sourcing-from-ghost.md b/docs/docs/sourcing-from-ghost.md
index 636aa9ed7cf4e..d1951a76308fa 100644
--- a/docs/docs/sourcing-from-ghost.md
+++ b/docs/docs/sourcing-from-ghost.md
@@ -154,5 +154,5 @@ Here are some further resources and reading material to help you get started wit
- [Gatsby + Ghost announcement post](/blog/2019-01-14-modern-publications-with-gatsby-ghost/)
- [More info about Ghost as a Headless CMS](https://blog.ghost.org/jamstack/)
- [Official Gatsby Starter for Ghost](https://github.com/tryghost/gatsby-starter-ghost)
-- [Official Gatsby Source Plugin for Ghost](/packages/gatsby-source-ghost/)
+- [Official Gatsby Source Plugin for Ghost](/plugins/gatsby-source-ghost/)
- [Official Ghost developer docs](https://docs.ghost.org/api/)
diff --git a/docs/docs/sourcing-from-woocommerce.md b/docs/docs/sourcing-from-woocommerce.md
index 632bdde663d92..de05f6d68b50d 100644
--- a/docs/docs/sourcing-from-woocommerce.md
+++ b/docs/docs/sourcing-from-woocommerce.md
@@ -12,7 +12,7 @@ You’ll need a WordPress site with the [WooCommerce](https://woocommerce.com/)
## Existing plugins
-This guide assumes the use of the [`gatsby-source-woocommerce` plugin](/packages/@pasdo501/gatsby-source-woocommerce/).
+This guide assumes the use of the [`gatsby-source-woocommerce` plugin](/plugins/@pasdo501/gatsby-source-woocommerce/).
Install it:
@@ -67,7 +67,7 @@ allWcProducts {
### Using GraphiQL
-You can explore the data available to your site [using GraphiQL](/docs/how-to/querying-data/running-queries-with-graphiql/). This is dependent on the fields you have specified in `gatsby-config.js`. The plugin documentation has tons of [suggested GraphQL queries](/packages/@pasdo501/gatsby-source-woocommerce/#some-graphql-query-examples). If you don't see the options listed there, try adjusting the `fields` array and/or refreshing your GraphiQL tab.
+You can explore the data available to your site [using GraphiQL](/docs/how-to/querying-data/running-queries-with-graphiql/). This is dependent on the fields you have specified in `gatsby-config.js`. The plugin documentation has tons of [suggested GraphQL queries](/plugins/@pasdo501/gatsby-source-woocommerce/#some-graphql-query-examples). If you don't see the options listed there, try adjusting the `fields` array and/or refreshing your GraphiQL tab.
### Using WPGraphQL
@@ -75,7 +75,7 @@ You can explore possible queries in the [WPGraphQL WooCommerce Playground](https
## Pending Changes
-Note that `gatsby-source-wordpress` is undergoing a major rewrite at the time of writing. This new major version of the official source plugin is likely to change the optimal solution for using WooCommerce with Gatsby. For now, new projects should start with [`gatsby-source-graphql`](/packages/gatsby-source-graphql/) rather than `gatsby-source-wordpress` to ease the transition. If you’re interested in the current progress of the plugin, you can [check out the working alpha version](https://github.com/gatsbyjs/gatsby/issues/19292#issuecomment-587946239). **Once this work is done, the [`wp-graphql-woocommerce` plugin](https://github.com/wp-graphql/wp-graphql-woocommerce) will be the recommended option.**
+Note that `gatsby-source-wordpress` is undergoing a major rewrite at the time of writing. This new major version of the official source plugin is likely to change the optimal solution for using WooCommerce with Gatsby. For now, new projects should start with [`gatsby-source-graphql`](/plugins/gatsby-source-graphql/) rather than `gatsby-source-wordpress` to ease the transition. If you’re interested in the current progress of the plugin, you can [check out the working alpha version](https://github.com/gatsbyjs/gatsby/issues/19292#issuecomment-587946239). **Once this work is done, the [`wp-graphql-woocommerce` plugin](https://github.com/wp-graphql/wp-graphql-woocommerce) will be the recommended option.**
If you decide to go with this more experimental route, you'll need to install and activate the [WPGraphQL](https://www.wpgraphql.com/) and [wp-graphql-woocommerce](https://github.com/wp-graphql/wp-graphql-woocommerce) plugins on your WordPress site as well.
@@ -83,8 +83,8 @@ The WPGraphQL plugin is also undergoing significant changes. It has not yet hit
## Other resources
-- [`gatsby-source-woocommerce`](/packages/@pasdo501/gatsby-source-woocommerce/)
-- [`gatsby-theme-woocommerce`](/packages/@ccerda0520/gatsby-theme-woocommerce/)
+- [`gatsby-source-woocommerce`](/plugins/@pasdo501/gatsby-source-woocommerce/)
+- [`gatsby-theme-woocommerce`](/plugins/@ccerda0520/gatsby-theme-woocommerce/)
- [`wp-graphql-woocommerce` plugin](https://github.com/wp-graphql/wp-graphql-woocommerce)
- [experimental `gatsby-source-wordpress` starter](https://github.com/TylerBarnes/using-gatsby-source-wordpress-experimental)
- [Sourcing from WordPress](/docs/how-to/sourcing-data/sourcing-from-wordpress/)
diff --git a/docs/docs/third-party-graphql.md b/docs/docs/third-party-graphql.md
index d557c9aca9cff..9e19f2cdb8661 100644
--- a/docs/docs/third-party-graphql.md
+++ b/docs/docs/third-party-graphql.md
@@ -32,7 +32,7 @@ module.exports = {
}
```
-See all configuration options in the [plugin docs](/packages/gatsby-source-graphql)
+See all configuration options in the [plugin docs](/plugins/gatsby-source-graphql)
Third-party APIs will be available under the `fieldName` specified, so you can query through it normally.
@@ -95,7 +95,7 @@ exports.createPages = async ({ actions, graphql }) => {
## Further reading
-- [gatsby-source-graphql docs](/packages/gatsby-source-graphql)
+- [gatsby-source-graphql docs](/plugins/gatsby-source-graphql)
- [Example with GitHub API](https://github.com/freiksenet/gatsby-github-displayer)
- [Example with GraphCMS](https://github.com/freiksenet/gatsby-graphcms)
- [Example with Hasura](https://github.com/hasura/graphql-engine/tree/master/community/sample-apps/gatsby-postgres-graphql)
diff --git a/docs/docs/tutorial/part-eight/index.md b/docs/docs/tutorial/part-eight/index.md
index 07818fc7775c5..1ad0413167cc0 100644
--- a/docs/docs/tutorial/part-eight/index.md
+++ b/docs/docs/tutorial/part-eight/index.md
@@ -76,7 +76,7 @@ Quoting [Google](https://developers.google.com/web/fundamentals/web-app-manifest
> The web app manifest is a simple JSON file that tells the browser about your web application and how it should behave when 'installed' on the user's mobile device or desktop.
-[Gatsby's manifest plugin](/packages/gatsby-plugin-manifest/) configures Gatsby to create a `manifest.webmanifest` file on every site build.
+[Gatsby's manifest plugin](/plugins/gatsby-plugin-manifest/) configures Gatsby to create a `manifest.webmanifest` file on every site build.
### ✋ Using `gatsby-plugin-manifest`
@@ -111,13 +111,13 @@ npm install gatsby-plugin-manifest
}
```
-That's all you need to get started with adding a web manifest to a Gatsby site. The example given reflects a base configuration -- Check out the [plugin reference](/packages/gatsby-plugin-manifest/?=gatsby-plugin-manifest#automatic-mode) for more options.
+That's all you need to get started with adding a web manifest to a Gatsby site. The example given reflects a base configuration -- Check out the [plugin reference](/plugins/gatsby-plugin-manifest/?=gatsby-plugin-manifest#automatic-mode) for more options.
## Add offline support
Another requirement for a website to qualify as a PWA is the use of a [service worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API). A service worker runs in the background, deciding to serve network or cached content based on connectivity, allowing for a seamless, managed offline experience.
-[Gatsby's offline plugin](/packages/gatsby-plugin-offline/) makes a Gatsby site work offline and more resistant to bad network conditions by creating a service worker for your site.
+[Gatsby's offline plugin](/plugins/gatsby-plugin-offline/) makes a Gatsby site work offline and more resistant to bad network conditions by creating a service worker for your site.
### ✋ Using `gatsby-plugin-offline`
@@ -162,7 +162,7 @@ Adding metadata to pages (such as a title or description) is key in helping sear
[React Helmet](https://github.com/nfl/react-helmet) is a package that provides a React component interface for you to manage your [document head](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head).
-Gatsby's [react helmet plugin](/packages/gatsby-plugin-react-helmet/) provides drop-in support for server rendering data added with React Helmet. Using the plugin, attributes you add to React Helmet will be added to the static HTML pages that Gatsby builds.
+Gatsby's [react helmet plugin](/plugins/gatsby-plugin-react-helmet/) provides drop-in support for server rendering data added with React Helmet. Using the plugin, attributes you add to React Helmet will be added to the static HTML pages that Gatsby builds.
### ✋ Using `React Helmet` and `gatsby-plugin-react-helmet`
diff --git a/docs/docs/tutorial/part-five/index.md b/docs/docs/tutorial/part-five/index.md
index adf6ca76d6d6b..5cafcfa3883ba 100644
--- a/docs/docs/tutorial/part-five/index.md
+++ b/docs/docs/tutorial/part-five/index.md
@@ -38,7 +38,7 @@ Data in Gatsby sites can come from anywhere: APIs, databases, CMSs, local files,
Source plugins fetch data from their source. E.g. the filesystem source plugin knows how to fetch data from the file system. The WordPress plugin knows how to fetch data from the WordPress API.
-Add [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/) and explore how it works.
+Add [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) and explore how it works.
First, install the plugin at the root of the project:
diff --git a/docs/docs/tutorial/part-three/index.md b/docs/docs/tutorial/part-three/index.md
index 8baca5898df80..5052189a522c8 100644
--- a/docs/docs/tutorial/part-three/index.md
+++ b/docs/docs/tutorial/part-three/index.md
@@ -28,7 +28,7 @@ Our goal with plugins is to make them straightforward to install and use. You wi
For an initial introduction to using plugins, we'll install and implement the Gatsby plugin for Typography.js.
-[Typography.js](https://kyleamathews.github.io/typography.js/) is a JavaScript library which generates global base styles for your site's typography. The library has a [corresponding Gatsby plugin](/packages/gatsby-plugin-typography/) to streamline using it in a Gatsby site.
+[Typography.js](https://kyleamathews.github.io/typography.js/) is a JavaScript library which generates global base styles for your site's typography. The library has a [corresponding Gatsby plugin](/plugins/gatsby-plugin-typography/) to streamline using it in a Gatsby site.
### ✋ Create a new Gatsby site
diff --git a/docs/docs/tutorial/part-two/index.md b/docs/docs/tutorial/part-two/index.md
index 742b46e054a2f..8dea79b6c670a 100644
--- a/docs/docs/tutorial/part-two/index.md
+++ b/docs/docs/tutorial/part-two/index.md
@@ -322,11 +322,11 @@ If you're interested in further reading, check out [Christopher "vjeux" Chedeau'
Gatsby supports almost every possible styling option (if there isn't a plugin yet for your favorite CSS option, [please contribute one!](/contributing/how-to-contribute/))
-- [Typography.js](/packages/gatsby-plugin-typography/)
-- [Sass](/packages/gatsby-plugin-sass/)
-- [JSS](/packages/gatsby-plugin-jss/)
-- [Stylus](/packages/gatsby-plugin-stylus/)
-- [PostCSS](/packages/gatsby-plugin-postcss/)
+- [Typography.js](/plugins/gatsby-plugin-typography/)
+- [Sass](/plugins/gatsby-plugin-sass/)
+- [JSS](/plugins/gatsby-plugin-jss/)
+- [Stylus](/plugins/gatsby-plugin-stylus/)
+- [PostCSS](/plugins/gatsby-plugin-postcss/)
and more!
diff --git a/docs/docs/why-gatsby-uses-graphql.md b/docs/docs/why-gatsby-uses-graphql.md
index 9c04dfbde1f65..a3853c823165f 100644
--- a/docs/docs/why-gatsby-uses-graphql.md
+++ b/docs/docs/why-gatsby-uses-graphql.md
@@ -215,12 +215,12 @@ Using `data/products.json` as an example, by using GraphQL we’re able to solve
In order to load the product and image data into GraphQL, you need to add a few [Gatsby plugins](/plugins/). Namely, you need plugins to:
-- Load the JSON file into Gatsby’s internal data store, which can be queried using GraphQL ([`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/))
-- Convert JSON files into a format you can query with GraphQL ([`gatsby-transformer-json`](/packages/gatsby-transformer-json/))
-- Optimize images ([`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp/))
-- Add data about optimized images to Gatsby’s data store ([`gatsby-transformer-sharp`](/packages/gatsby-transformer-sharp/))
+- Load the JSON file into Gatsby’s internal data store, which can be queried using GraphQL ([`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/))
+- Convert JSON files into a format you can query with GraphQL ([`gatsby-transformer-json`](/plugins/gatsby-transformer-json/))
+- Optimize images ([`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/))
+- Add data about optimized images to Gatsby’s data store ([`gatsby-transformer-sharp`](/plugins/gatsby-transformer-sharp/))
-In addition to the plugins, we’ll use [`gatsby-image`](/packages/gatsby-image/) to display the optimized images with lazy loading.
+In addition to the plugins, we’ll use [`gatsby-image`](/plugins/gatsby-image/) to display the optimized images with lazy loading.
Install these packages using the command line:
@@ -256,7 +256,7 @@ GATSBY_GRAPHQL_IDE=playground gatsby develop
You can explore the available data schema using the “Docs” tab at the right.
-One of the available options is `allProductsJson`, which contains “edges”, and those contain “nodes”. The `allProductsJson` option was created by the JSON transformer plugin ([`gatsby-transformer-json`](/packages/gatsby-transformer-json/)).
+One of the available options is `allProductsJson`, which contains “edges”, and those contain “nodes”. The `allProductsJson` option was created by the JSON transformer plugin ([`gatsby-transformer-json`](/plugins/gatsby-transformer-json/)).
The JSON transformer plugin has created one node for each product, and inside the node you can select the data you need for that product.
@@ -373,7 +373,7 @@ A few notes about this file:
1. The result of the query is added to the template component as the `data` prop.
2. The image path was automatically converted by the Sharp transformer into a “child node” that includes optimized versions of the image.
-3. The query uses a [GraphQL fragment](/packages/gatsby-image/#fragments) to query all the required data for optimized images. GraphQL fragments _do not work_ in the GraphQL Playground.
+3. The query uses a [GraphQL fragment](/plugins/gatsby-image/#fragments) to query all the required data for optimized images. GraphQL fragments _do not work_ in the GraphQL Playground.
4. The `img` tag has been swapped out for a `gatsby-image` component named `Image`. Instead of a `src` attribute, it accepts an object with optimized image data.
Save this file, run `gatsby develop`, then open `http://localhost:8000/gql/purple-hat/`:
diff --git a/docs/docs/working-with-images-in-markdown.md b/docs/docs/working-with-images-in-markdown.md
index 058c10fc38250..d1c6b1c35c5ed 100644
--- a/docs/docs/working-with-images-in-markdown.md
+++ b/docs/docs/working-with-images-in-markdown.md
@@ -171,7 +171,7 @@ Your featured image should now appear on the generated page right below the main
## Inline images with `gatsby-remark-images`
-You may also include images in the Markdown body itself. The plugin [gatsby-remark-images](/packages/gatsby-remark-images) comes in handy for this.
+You may also include images in the Markdown body itself. The plugin [gatsby-remark-images](/plugins/gatsby-remark-images) comes in handy for this.
Start out by installing `gatsby-remark-images` and `gatsby-plugin-sharp`.
diff --git a/docs/docs/working-with-images.md b/docs/docs/working-with-images.md
index 82910237f6e5f..a17fe8bf4e1c5 100644
--- a/docs/docs/working-with-images.md
+++ b/docs/docs/working-with-images.md
@@ -4,7 +4,7 @@ title: Working with Images in Gatsby
Optimizing images is a challenge on any website. To utilize best practices for performance across devices, you need multiple sizes and resolutions of each image. Luckily, Gatsby has several useful [plugins](/docs/plugins/) that work together to do that for images on [page components](/docs/conceptual/building-with-components/#page-components).
-The recommended approach is to use [GraphQL queries](/docs/conceptual/graphql-concepts/) to get images of the optimal size or resolution, then, display them with the [`gatsby-image`](/packages/gatsby-image/) component.
+The recommended approach is to use [GraphQL queries](/docs/conceptual/graphql-concepts/) to get images of the optimal size or resolution, then, display them with the [`gatsby-image`](/plugins/gatsby-image/) component.
## Query images with GraphQL
@@ -12,13 +12,13 @@ Querying images with GraphQL allows you to access the image's data as well as pe
You'll need a few plugins for this:
-- [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/) plugin allows you to [query files with GraphQL](/docs/conceptual/graphql-concepts/#images)
-- [`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp) powers the connections between Sharp and Gatsby Plugins
-- [`gatsby-transformer-sharp`](/packages/gatsby-transformer-sharp/) allows you to create multiples images of the right sizes and resolutions with a query
+- [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) plugin allows you to [query files with GraphQL](/docs/conceptual/graphql-concepts/#images)
+- [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp) powers the connections between Sharp and Gatsby Plugins
+- [`gatsby-transformer-sharp`](/plugins/gatsby-transformer-sharp/) allows you to create multiples images of the right sizes and resolutions with a query
-If the final image is of a fixed size, optimization relies on having multiple resolutions of the image. If it is responsive, meaning it stretches to fill a container or page, optimization relies on having different sizes of the same image. See the [Gatsby Image documentation for more information](/packages/gatsby-image/#two-types-of-responsive-images).
+If the final image is of a fixed size, optimization relies on having multiple resolutions of the image. If it is responsive, meaning it stretches to fill a container or page, optimization relies on having different sizes of the same image. See the [Gatsby Image documentation for more information](/plugins/gatsby-image/#two-types-of-responsive-images).
-You can also use arguments in your query to specify exact, minimum, and maximum dimensions. See the [Gatsby Image documentation for complete options](/packages/gatsby-image/#two-types-of-responsive-images).
+You can also use arguments in your query to specify exact, minimum, and maximum dimensions. See the [Gatsby Image documentation for complete options](/plugins/gatsby-image/#two-types-of-responsive-images).
This example is for an image gallery where images stretch when the page is resized. It uses the `fluid` method and the fluid fragment to grab the right data to use in `gatsby-image` component and arguments to set the maximum width as 400px and maximum height as 250px.
@@ -38,7 +38,7 @@ export const query = graphql`
## Optimizing images with gatsby-image
-[`gatsby-image`](/packages/gatsby-image/) is a plugin that automatically creates React components for optimized images that:
+[`gatsby-image`](/plugins/gatsby-image/) is a plugin that automatically creates React components for optimized images that:
> - Loads the optimal size of image for each device size and screen resolution
> - Holds the image position while loading so your page doesn't jump around as images load
@@ -95,6 +95,6 @@ export const query = graphql`
- [Gatsby Image API docs](/docs/reference/built-in-components/gatsby-image/)
- [Using gatsby-image with Gatsby](https://egghead.io/playlists/using-gatsby-image-with-gatsby-ea85129e), free egghead.io playlist
-- [gatsby-image plugin README file](/packages/gatsby-image/)
-- [gatsby-plugin-sharp README file](/packages/gatsby-plugin-sharp/)
-- [gatsby-transformer-sharp README file](/packages/gatsby-transformer-sharp/)
+- [gatsby-image plugin README file](/plugins/gatsby-image/)
+- [gatsby-plugin-sharp README file](/plugins/gatsby-plugin-sharp/)
+- [gatsby-transformer-sharp README file](/plugins/gatsby-transformer-sharp/)
diff --git a/docs/tutorial/authentication-tutorial.md b/docs/tutorial/authentication-tutorial.md
index dd184404c096b..831f14bd92989 100644
--- a/docs/tutorial/authentication-tutorial.md
+++ b/docs/tutorial/authentication-tutorial.md
@@ -150,7 +150,7 @@ exports.onCreatePage = async ({ page, actions }) => {
}
```
-> Note: There is a convenient plugin that already does this work for you: [gatsby-plugin-create-client-paths](/packages/gatsby-plugin-create-client-paths)
+> Note: There is a convenient plugin that already does this work for you: [gatsby-plugin-create-client-paths](/plugins/gatsby-plugin-create-client-paths)
Now, you must create a generic page that will have the task to generate the restricted content:
diff --git a/docs/tutorial/ecommerce-tutorial/index.md b/docs/tutorial/ecommerce-tutorial/index.md
index 813dc0f1742cc..a413d4716adf8 100644
--- a/docs/tutorial/ecommerce-tutorial/index.md
+++ b/docs/tutorial/ecommerce-tutorial/index.md
@@ -25,7 +25,7 @@ Benefits of using Gatsby for e-commerce sites include the following:
Stripe is a payment processing service that allows you to securely collect and process payment information from your customers. To try out Stripe for yourself, go to [Stripe’s Quick Start Guide](https://stripe.com/docs/payments/checkout#try-now).
-Stripe offers a [hosted checkout](https://stripe.com/docs/payments/checkout) that doesn't require any backend component. You can configure products, prices, and subscription plans in the [Stripe Dashboard](https://stripe.com/docs/payments/checkout#configure). If you're selling a single product or subscription (like an eBook) you can hardcode the product's price ID in your Gatsby site. If you're selling multiple products, you can use the [Stripe source plugin](/packages/gatsby-source-stripe/) to retrieve all prices at build time. If you want your Gatsby site to automatically update, you can use the Stripe webhook event to [trigger a redeploy](https://www.netlify.com/docs/webhooks/) when a new product or price is added.
+Stripe offers a [hosted checkout](https://stripe.com/docs/payments/checkout) that doesn't require any backend component. You can configure products, prices, and subscription plans in the [Stripe Dashboard](https://stripe.com/docs/payments/checkout#configure). If you're selling a single product or subscription (like an eBook) you can hardcode the product's price ID in your Gatsby site. If you're selling multiple products, you can use the [Stripe source plugin](/plugins/gatsby-source-stripe/) to retrieve all prices at build time. If you want your Gatsby site to automatically update, you can use the Stripe webhook event to [trigger a redeploy](https://www.netlify.com/docs/webhooks/) when a new product or price is added.
## Setting up a Gatsby site
@@ -268,11 +268,11 @@ If you go back to `http://localhost:8000/` in your browser and you have `gatsby
### Example 2: Import products and prices via source plugin
-Instead of hardcoding the price IDs, you can use the [gatsby-source-stripe plugin](/packages/gatsby-source-stripe/) to retrieve your prices at build time.
+Instead of hardcoding the price IDs, you can use the [gatsby-source-stripe plugin](/plugins/gatsby-source-stripe/) to retrieve your prices at build time.
#### Add the Stripe source plugin
-Add the [gatsby-source-stripe plugin](/packages/gatsby-source-stripe/) which you can use to pull in the prices from your Stripe account.
+Add the [gatsby-source-stripe plugin](/plugins/gatsby-source-stripe/) which you can use to pull in the prices from your Stripe account.
```shell
npm install gatsby-source-stripe
diff --git a/docs/tutorial/gatsby-image-tutorial/index.md b/docs/tutorial/gatsby-image-tutorial/index.md
index bd9ea40be7af6..f62b37d2fdd1d 100644
--- a/docs/tutorial/gatsby-image-tutorial/index.md
+++ b/docs/tutorial/gatsby-image-tutorial/index.md
@@ -91,7 +91,7 @@ export const query = graphql`
`
```
-_**Note:** This query won't work in GraphiQL as it doesn't support implicit fragments. This will work in your Gatsby pages and components. [See the `gatsby-image` docs for more details](/packages/gatsby-image/#fragments)._
+_**Note:** This query won't work in GraphiQL as it doesn't support implicit fragments. This will work in your Gatsby pages and components. [See the `gatsby-image` docs for more details](/plugins/gatsby-image/#fragments)._
There are a couple of things to note here.
@@ -157,7 +157,7 @@ export default HomePage
## Querying for multiple images from YAML data
-Another way to source images is through YAML (or Markdown). This example uses the `gatsby-transformer-yaml` plugin to query the YAML files. More information about that plugin can be found in the [Gatsby plugin library](/packages/gatsby-transformer-yaml/?=gatsby-transformer-yaml).
+Another way to source images is through YAML (or Markdown). This example uses the `gatsby-transformer-yaml` plugin to query the YAML files. More information about that plugin can be found in the [Gatsby plugin library](/plugins/gatsby-transformer-yaml/?=gatsby-transformer-yaml).
Here's an example of a query from a list of conferences in a YAML file with an image for each one:
diff --git a/docs/tutorial/remark-plugin-tutorial.md b/docs/tutorial/remark-plugin-tutorial.md
index 7f678aa54f869..4e8a4f276319c 100644
--- a/docs/tutorial/remark-plugin-tutorial.md
+++ b/docs/tutorial/remark-plugin-tutorial.md
@@ -2,9 +2,9 @@
title: "Creating a Remark Transformer Plugin"
---
-[`gatsby-transformer-remark`](/packages/gatsby-transformer-remark) empowers developers to translate Markdown into HTML to be consumed via Gatsby's GraphQL API. Blogs and other content based sites can highly benefit from functionality enabled with this plugin. With this plugin, authors of content for the site don't need to worry about how the site is written or structured but can rather focus on writing engaging posts and content!
+[`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark) empowers developers to translate Markdown into HTML to be consumed via Gatsby's GraphQL API. Blogs and other content based sites can highly benefit from functionality enabled with this plugin. With this plugin, authors of content for the site don't need to worry about how the site is written or structured but can rather focus on writing engaging posts and content!
-In certain instances, a developer may want to customize the content of the Markdown file and extend it functionally in useful ways; for example, use cases such as [adding syntax highlighting](/packages/gatsby-remark-prismjs/), [parsing and creating responsive images](/packages/gatsby-remark-images), [embedding videos](/packages/gatsby-remark-embed-video), and many others. In each of these examples, a plugin will be injected with the Markdown Abstract Syntax Tree (AST) and manipulate content based on certain node types or content in particular nodes.
+In certain instances, a developer may want to customize the content of the Markdown file and extend it functionally in useful ways; for example, use cases such as [adding syntax highlighting](/plugins/gatsby-remark-prismjs/), [parsing and creating responsive images](/plugins/gatsby-remark-images), [embedding videos](/plugins/gatsby-remark-embed-video), and many others. In each of these examples, a plugin will be injected with the Markdown Abstract Syntax Tree (AST) and manipulate content based on certain node types or content in particular nodes.
## What you will learn in this tutorial
diff --git a/docs/tutorial/using-multiple-themes-together.md b/docs/tutorial/using-multiple-themes-together.md
index ac39b593891dd..c145243800d13 100644
--- a/docs/tutorial/using-multiple-themes-together.md
+++ b/docs/tutorial/using-multiple-themes-together.md
@@ -4,7 +4,7 @@ title: Using Multiple Themes Together
## What this tutorial covers
-This tutorial covers how to compose multiple themes into a final site using [gatsby-theme-blog](/packages/gatsby-theme-blog/), [gatsby-theme-notes](/packages/gatsby-theme-notes/) and [gatsby-mdx-embed](/packages/@pauliescanlon/gatsby-mdx-embed/) as examples. It will also cover the concept of component shadowing with [Theme-UI](/docs/how-to/styling/theme-ui/) for styling.
+This tutorial covers how to compose multiple themes into a final site using [gatsby-theme-blog](/plugins/gatsby-theme-blog/), [gatsby-theme-notes](/plugins/gatsby-theme-notes/) and [gatsby-mdx-embed](/plugins/@pauliescanlon/gatsby-mdx-embed/) as examples. It will also cover the concept of component shadowing with [Theme-UI](/docs/how-to/styling/theme-ui/) for styling.
## Prerequisites
@@ -28,7 +28,7 @@ cd multiple-themes
## Install and compose the themes
-This step composes [gatsby-theme-blog](/packages/gatsby-theme-blog/) and [gatsby-theme-notes](/packages/gatsby-theme-notes/).
+This step composes [gatsby-theme-blog](/plugins/gatsby-theme-blog/) and [gatsby-theme-notes](/plugins/gatsby-theme-notes/).
1. Install the themes:
diff --git a/docs/tutorial/wordpress-image-tutorial.md b/docs/tutorial/wordpress-image-tutorial.md
index 6b07ddb079b0d..1907e7c6bf653 100644
--- a/docs/tutorial/wordpress-image-tutorial.md
+++ b/docs/tutorial/wordpress-image-tutorial.md
@@ -29,7 +29,7 @@ gatsby new images-tutorial-site
cd images-tutorial-site
```
-Install the `gatsby-source-wordpress` plugin. For extra reading on the plugin’s features and examples of GraphQL queries not included in this tutorial, see the [`gatsby-source-wordpress` plugin’s README file](/packages/gatsby-source-wordpress/?=wordpress).
+Install the `gatsby-source-wordpress` plugin. For extra reading on the plugin’s features and examples of GraphQL queries not included in this tutorial, see the [`gatsby-source-wordpress` plugin’s README file](/plugins/gatsby-source-wordpress/?=wordpress).
```shell
npm install gatsby-source-wordpress
diff --git a/docs/tutorial/wordpress-source-plugin-tutorial.md b/docs/tutorial/wordpress-source-plugin-tutorial.md
index db6e073d689ee..4625102d52bd0 100644
--- a/docs/tutorial/wordpress-source-plugin-tutorial.md
+++ b/docs/tutorial/wordpress-source-plugin-tutorial.md
@@ -18,7 +18,7 @@ In this tutorial, you will install the `gatsby-source-wordpress` plugin in order
If you prefer using GraphQL, there's a [wp-graphql](https://github.com/wp-graphql/wp-graphql) plugin to easily expose both default and custom data in WordPress.
-The same authentication schemes supported by the WP-API are supported in wp-graphql, which can be used with the [gatsby-source-graphql](/packages/gatsby-source-graphql/) plugin.
+The same authentication schemes supported by the WP-API are supported in wp-graphql, which can be used with the [gatsby-source-graphql](/plugins/gatsby-source-graphql/) plugin.
## Why go through this tutorial?
@@ -35,7 +35,7 @@ Create a new Gatsby project and change directories into the new project you just
cd wordpress-tutorial-site
```
-Install the `gatsby-source-wordpress` plugin. For extra reading on the plugin’s features and examples of GraphQL queries not included in this tutorial, see the [`gatsby-source-wordpress` plugin’s README file](/packages/gatsby-source-wordpress/?=wordpress).
+Install the `gatsby-source-wordpress` plugin. For extra reading on the plugin’s features and examples of GraphQL queries not included in this tutorial, see the [`gatsby-source-wordpress` plugin’s README file](/plugins/gatsby-source-wordpress/?=wordpress).
```shell
npm install gatsby-source-wordpress
diff --git a/examples/using-multiple-themes/README.md b/examples/using-multiple-themes/README.md
index f6f020a765c37..baa69d92c714b 100644
--- a/examples/using-multiple-themes/README.md
+++ b/examples/using-multiple-themes/README.md
@@ -11,7 +11,7 @@ This repository demonstrates how to use multiple themes in a Gatsby site
---
-In this section you will see how to compose multiple themes into a final site using [gatsby-theme-blog](/packages/gatsby-theme-blog/), [gatsby-theme-notes](/packages/gatsby-theme-notes/) and [gatsby-mdx-embed](/packages/@pauliescanlon/gatsby-mdx-embed/) as examples. It will also cover the concept of component shadowing with [Theme-UI](/docs/theme-ui/) for styling.
+In this section you will see how to compose multiple themes into a final site using [gatsby-theme-blog](/plugins/gatsby-theme-blog/), [gatsby-theme-notes](/plugins/gatsby-theme-notes/) and [gatsby-mdx-embed](/plugins/@pauliescanlon/gatsby-mdx-embed/) as examples. It will also cover the concept of component shadowing with [Theme-UI](/docs/theme-ui/) for styling.
## 🔧 Running locally
@@ -48,8 +48,8 @@ The site is now running at `http://localhost:8000`, you can see your first post
## 🧰 Resources used to create this project
- [Gatsby's hello-world starter](https://github.com/gatsbyjs/gatsby-starter-hello-world)
-- [Gatsby-theme-blog](/packages/gatsby-theme-blog/)
-- [Gatsby-theme-notes](/packages/gatsby-theme-notes/)
+- [Gatsby-theme-blog](/plugins/gatsby-theme-blog/)
+- [Gatsby-theme-notes](/plugins/gatsby-theme-notes/)
## 🎓 More Guides for Learning about themes
diff --git a/packages/gatsby-image/README.md b/packages/gatsby-image/README.md
index 98ccee183c2c2..380c56d8bd3f2 100644
--- a/packages/gatsby-image/README.md
+++ b/packages/gatsby-image/README.md
@@ -7,7 +7,7 @@ Gatsby's GraphQL queries. It combines
[Gatsby's native image processing](https://image-processing.gatsbyjs.org/)
capabilities with advanced image loading techniques to easily and completely
optimize image loading for your sites. `gatsby-image` uses
-[gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/)
+[gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/)
to power its image transformations.
_Note: gatsby-image is **not** a drop-in replacement for ` `. It's
@@ -82,7 +82,7 @@ effect as well as lazy loading of images further down the screen.
`npm install gatsby-image`
-Depending on the gatsby starter you used, you may need to include [gatsby-transformer-sharp](/packages/gatsby-transformer-sharp/) and [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/) as well, and make sure they are installed and included in your gatsby-config.
+Depending on the gatsby starter you used, you may need to include [gatsby-transformer-sharp](/plugins/gatsby-transformer-sharp/) and [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/) as well, and make sure they are installed and included in your gatsby-config.
```shell
npm install gatsby-transformer-sharp gatsby-plugin-sharp
@@ -206,8 +206,8 @@ Note,
you can not currently use these fragments in the GraphiQL IDE.
Plugins supporting `gatsby-image` currently include
-[gatsby-transformer-sharp](/packages/gatsby-transformer-sharp/),
-[gatsby-source-contentful](/packages/gatsby-source-contentful/), [gatsby-source-datocms](https://github.com/datocms/gatsby-source-datocms) and [gatsby-source-sanity](https://github.com/sanity-io/gatsby-source-sanity).
+[gatsby-transformer-sharp](/plugins/gatsby-transformer-sharp/),
+[gatsby-source-contentful](/plugins/gatsby-source-contentful/), [gatsby-source-datocms](https://github.com/datocms/gatsby-source-datocms) and [gatsby-source-sanity](https://github.com/sanity-io/gatsby-source-sanity).
Their fragments are:
@@ -268,7 +268,7 @@ For more information about these options, please see the
[Gatsby Image API](https://www.gatsbyjs.org/docs/gatsby-image/#image-query-fragments).
_Please see the
-[gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/#tracedsvg)
+[gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/#tracedsvg)
documentation for more information on `tracedSVG` and its configuration
options._
@@ -418,7 +418,7 @@ While you could achieve a similar effect with plain CSS media queries, `gatsby-i
## Image processing arguments
-[gatsby-plugin-sharp](/packages/gatsby-plugin-sharp) supports many additional arguments for transforming your images like
+[gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp) supports many additional arguments for transforming your images like
`quality`, `sizeByPixelDensity`, `pngCompressionLevel`, `cropFocus`, `grayscale` and many more. See its documentation for more.
## Some other stuff to be aware of
diff --git a/packages/gatsby-link/README.md b/packages/gatsby-link/README.md
index 02ec2447cd291..e898fb165ff18 100644
--- a/packages/gatsby-link/README.md
+++ b/packages/gatsby-link/README.md
@@ -1,5 +1,5 @@
# gatsby-link
-All components and utility functions from this package are now exported from [`gatsby`](/packages/gatsby) package. You should not import anything from this package directly.
+All components and utility functions from this package are now exported from [`gatsby`](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby) package. You should not import anything from this package directly.
The [API reference](https://www.gatsbyjs.org/docs/gatsby-link/) has more documentation.
diff --git a/packages/gatsby-plugin-catch-links/README.md b/packages/gatsby-plugin-catch-links/README.md
index 4c6624184cda1..c047830b2d1b6 100644
--- a/packages/gatsby-plugin-catch-links/README.md
+++ b/packages/gatsby-plugin-catch-links/README.md
@@ -6,7 +6,7 @@ Example use cases:
- A markdown file with relative links (transformed
to `a` tags by
- [`gatsby-transformer-remark`](/packages/gatsby-transformer-remark/))
+ [`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark/))
- An `a` tag that has been created by a Content Management System (CMS) WYSIWYG editor
## Installation
diff --git a/packages/gatsby-plugin-sharp/README.md b/packages/gatsby-plugin-sharp/README.md
index 4caa88cb59931..71c2ee80513fe 100644
--- a/packages/gatsby-plugin-sharp/README.md
+++ b/packages/gatsby-plugin-sharp/README.md
@@ -279,7 +279,7 @@ quoting the Sharp documentation:
Generates a traced SVG of the image (see [the original GitHub issue][9]) and
returns the SVG as "[optimized URL-encoded][10]" `data:` URI. It used in
-[gatsby-image](/packages/gatsby-image/) to provide an
+[gatsby-image](/plugins/gatsby-image/) to provide an
alternative to the default inline base64 placeholder image.
Uses [node-potrace][11] and [SVGO][12] under the hood. Default settings for
diff --git a/packages/gatsby-remark-graphviz/README.md b/packages/gatsby-remark-graphviz/README.md
index 24880dd06dfa9..a31ad2b26a921 100644
--- a/packages/gatsby-remark-graphviz/README.md
+++ b/packages/gatsby-remark-graphviz/README.md
@@ -2,7 +2,7 @@
Processes [graphviz](https://www.graphviz.org/) (`dot` and `circo`) code blocks in your markdown files and replaces them with the rendered SVG using [viz.js](https://github.com/mdaines/viz.js/)
-![demo gif](/packages/gatsby-remark-graphviz/demo.gif)
+![demo gif](/plugins/gatsby-remark-graphviz/demo.gif)
## Install
@@ -40,7 +40,7 @@ Then, add `dot` code blocks to your markdown. E.g
Which will be rendered using viz.js and the output html will replace the code block with the actual SVG.
-![rendered-graph](/packages/gatsby-remark-graphviz/rendered-graph.svg)
+![rendered-graph](/plugins/gatsby-remark-graphviz/rendered-graph.svg)
Custom attributes can be passed to the rendered SVG:
diff --git a/packages/gatsby-source-filesystem/README.md b/packages/gatsby-source-filesystem/README.md
index f1d6c2944bf31..6b0645afe4362 100644
--- a/packages/gatsby-source-filesystem/README.md
+++ b/packages/gatsby-source-filesystem/README.md
@@ -235,7 +235,7 @@ exports.downloadMediaFiles = ({
}
```
-The file node can then be queried using GraphQL. See an example of this in the [gatsby-source-wordpress README](/packages/gatsby-source-wordpress/#image-processing) where downloaded images are queried using [gatsby-transformer-sharp](/packages/gatsby-transformer-sharp/) to use in the component [gatsby-image](/packages/gatsby-image/).
+The file node can then be queried using GraphQL. See an example of this in the [gatsby-source-wordpress README](/plugins/gatsby-source-wordpress/#image-processing) where downloaded images are queried using [gatsby-transformer-sharp](/plugins/gatsby-transformer-sharp/) to use in the component [gatsby-image](/plugins/gatsby-image/).
#### Retrieving the remote file name and extension
diff --git a/packages/gatsby-source-wordpress/README.md b/packages/gatsby-source-wordpress/README.md
index cbe2d6f4a049f..3885de318b293 100644
--- a/packages/gatsby-source-wordpress/README.md
+++ b/packages/gatsby-source-wordpress/README.md
@@ -782,7 +782,7 @@ Full example:
To learn more about image processing check
-- documentation of [gatsby-plugin-sharp](/packages/gatsby-plugin-sharp/),
+- documentation of [gatsby-plugin-sharp](/plugins/gatsby-plugin-sharp/),
- source code of [image processing example
site](https://github.com/gatsbyjs/gatsby/tree/master/examples/image-processing).
diff --git a/packages/gatsby-transformer-csv/README.md b/packages/gatsby-transformer-csv/README.md
index 3568218e236a9..4a6b4e92a2c93 100644
--- a/packages/gatsby-transformer-csv/README.md
+++ b/packages/gatsby-transformer-csv/README.md
@@ -6,7 +6,7 @@ Parses CSV files into JSON arrays.
`npm install gatsby-transformer-csv`
-Note: You generally will use this plugin together with the [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/) plugin. `gatsby-source-filesystem` reads in the files then this plugin _transforms_ the files into data you can query.
+Note: You generally will use this plugin together with the [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) plugin. `gatsby-source-filesystem` reads in the files then this plugin _transforms_ the files into data you can query.
## How to use
diff --git a/packages/gatsby-transformer-excel/README.md b/packages/gatsby-transformer-excel/README.md
index 0d87fe0797833..aa4420b25195a 100644
--- a/packages/gatsby-transformer-excel/README.md
+++ b/packages/gatsby-transformer-excel/README.md
@@ -6,7 +6,7 @@ Parses Excel files into JSON arrays.
`npm install gatsby-transformer-excel`
-Note: You generally will use this plugin together with the [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/) plugin. `gatsby-source-filesystem` reads in the files then this plugin _transforms_ the files into data you can query.
+Note: You generally will use this plugin together with the [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem/) plugin. `gatsby-source-filesystem` reads in the files then this plugin _transforms_ the files into data you can query.
## How to use
diff --git a/packages/gatsby-transformer-sharp/README.md b/packages/gatsby-transformer-sharp/README.md
index 31bb6585cb3bb..230f9f079a58d 100644
--- a/packages/gatsby-transformer-sharp/README.md
+++ b/packages/gatsby-transformer-sharp/README.md
@@ -21,9 +21,9 @@ module.exports = {
}
```
-Please note that you must have a source plugin (which brings in images) installed in your project. Otherwise, no `ImageSharp` nodes can be created for your files. Examples would be [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem) or source plugins for (headless) CMSs like [`gatsby-source-wordpress`](/packages/gatsby-source-wordpress).
+Please note that you must have a source plugin (which brings in images) installed in your project. Otherwise, no `ImageSharp` nodes can be created for your files. Examples would be [`gatsby-source-filesystem`](/plugins/gatsby-source-filesystem) or source plugins for (headless) CMSs like [`gatsby-source-wordpress`](/plugins/gatsby-source-wordpress).
-**Note**: An exception to this is when using [`gatsby-source-contentful`](/packages/gatsby-source-contentful/), as the source plugin and the assets are not [downloaded to the local filesystem](https://www.gatsbyjs.org/packages/gatsby-source-contentful/#download-assets-for-static-distribution). By default, the `gatsby-source-contentful` plugin creates a `ContentfulAsset` node for every image with links to Contentful’s CDN, therefore it is not necessary to use `gatsby-transformer-sharp` together with `gatsby-source-contentful`.
+**Note**: An exception to this is when using [`gatsby-source-contentful`](/plugins/gatsby-source-contentful/), as the source plugin and the assets are not [downloaded to the local filesystem](https://www.gatsbyjs.org/packages/gatsby-source-contentful/#download-assets-for-static-distribution). By default, the `gatsby-source-contentful` plugin creates a `ContentfulAsset` node for every image with links to Contentful’s CDN, therefore it is not necessary to use `gatsby-transformer-sharp` together with `gatsby-source-contentful`.
## Parsing algorithm
diff --git a/packages/gatsby/README.md b/packages/gatsby/README.md
index ef5f11a3e550f..3fed4853cb343 100644
--- a/packages/gatsby/README.md
+++ b/packages/gatsby/README.md
@@ -145,7 +145,7 @@ Gatsby is dedicated to building a welcoming, diverse, safe community. We expect
### A note on how this repository is organized
-This repository is a [monorepo](https://trunkbaseddevelopment.com/monorepos/) managed using [Lerna](https://github.com/lerna/lerna). This means there are [multiple packages](/packages) managed in this codebase, even though we publish them to NPM as separate packages.
+This repository is a [monorepo](https://trunkbaseddevelopment.com/monorepos/) managed using [Lerna](https://github.com/lerna/lerna). This means there are [multiple packages](/plugins) managed in this codebase, even though we publish them to NPM as separate packages.
### Contributing to Gatsby v1
diff --git a/packages/gatsby/src/redux/actions/public.js b/packages/gatsby/src/redux/actions/public.js
index 7c06b9a483696..415ff57df5e02 100644
--- a/packages/gatsby/src/redux/actions/public.js
+++ b/packages/gatsby/src/redux/actions/public.js
@@ -1137,7 +1137,7 @@ actions.setBabelPreset = (config: Object, plugin?: ?Plugin = null) => {
/**
* Create a "job". This is a long-running process that is generally
* started as a side-effect to a GraphQL query.
- * [`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp/) uses this for
+ * [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/) uses this for
* example.
*
* Gatsby doesn't finish its process until all jobs are ended.
@@ -1157,7 +1157,7 @@ actions.createJob = (job: Job, plugin?: ?Plugin = null) => {
/**
* Create a "job". This is a long-running process that is generally
* started as a side-effect to a GraphQL query.
- * [`gatsby-plugin-sharp`](/packages/gatsby-plugin-sharp/) uses this for
+ * [`gatsby-plugin-sharp`](/plugins/gatsby-plugin-sharp/) uses this for
* example.
*
* Gatsby doesn't finish its process until all jobs are ended.
@@ -1287,9 +1287,9 @@ const maybeAddPathPrefix = (path, pathPrefix) => {
* Create a redirect from one page to another. Server redirects don't work out
* of the box. You must have a plugin setup to integrate the redirect data with
* your hosting technology e.g. the [Netlify
- * plugin](/packages/gatsby-plugin-netlify/), or the [Amazon S3
- * plugin](/packages/gatsby-plugin-s3/). Alternatively, you can use
- * [this plugin](/packages/gatsby-plugin-meta-redirect/) to generate meta redirect
+ * plugin](/plugins/gatsby-plugin-netlify/), or the [Amazon S3
+ * plugin](/plugins/gatsby-plugin-s3/). Alternatively, you can use
+ * [this plugin](/plugins/gatsby-plugin-meta-redirect/) to generate meta redirect
* html files for redirecting on any static file host.
*
* @param {Object} redirect Redirect data
diff --git a/packages/gatsby/src/utils/api-node-docs.ts b/packages/gatsby/src/utils/api-node-docs.ts
index 2a63c6cb0bf63..b24309d422c9c 100644
--- a/packages/gatsby/src/utils/api-node-docs.ts
+++ b/packages/gatsby/src/utils/api-node-docs.ts
@@ -182,10 +182,10 @@ export const onCreatePage = true
*
* Many transformer plugins use this to add fields that take arguments.
*
- * * [`gatsby-transformer-remark`](/packages/gatsby-transformer-remark/)
+ * * [`gatsby-transformer-remark`](/plugins/gatsby-transformer-remark/)
* adds an "excerpt" field where the user when writing their query can specify
* how many characters to prune the markdown source to.
- * * [`gatsby-transformer-sharp`](/packages/gatsby-transformer-sharp/) exposes
+ * * [`gatsby-transformer-sharp`](/plugins/gatsby-transformer-sharp/) exposes
* many image transformation options as GraphQL fields.
*
* @param {object} $0