105 lines
2.8 KiB
Markdown
105 lines
2.8 KiB
Markdown
# gatsby-plugin-page-creator
|
|
|
|
Gatsby plugin that automatically creates pages from React components in specified directories. Gatsby
|
|
includes this plugin automatically in all sites for creating pages from components in `src/pages`.
|
|
|
|
You may include another instance of this plugin if you'd like to create additional "pages" directories.
|
|
|
|
With this plugin, _any_ file that lives in the the specified pages folder (e.g. the default `src/pages`) or subfolders will be expected to export a React Component to generate a Page. The following files are automatically excluded:
|
|
|
|
- `template-*`
|
|
- `__tests__/*`
|
|
- `*.test.jsx?`
|
|
- `*.spec.jsx?`
|
|
- `*.d.tsx?`
|
|
- `*.json`
|
|
- `*.yaml`
|
|
- `_*`
|
|
- `.*`
|
|
|
|
To exclude custom patterns, see [Ignoring Specific Files](#ignoring-specific-files)
|
|
|
|
## Install
|
|
|
|
`npm install --save gatsby-plugin-page-creator`
|
|
|
|
## How to use
|
|
|
|
```javascript
|
|
// gatsby-config.js
|
|
|
|
module.exports = {
|
|
plugins: [
|
|
// You can have multiple instances of this plugin
|
|
// to create pages from React components in different directories.
|
|
//
|
|
// The following sets up the pattern of having multiple
|
|
// "pages" directories in your project
|
|
{
|
|
resolve: `gatsby-plugin-page-creator`,
|
|
options: {
|
|
path: `${__dirname}/src/account/pages`,
|
|
},
|
|
},
|
|
{
|
|
resolve: `gatsby-plugin-page-creator`,
|
|
options: {
|
|
path: `${__dirname}/src/settings/pages`,
|
|
},
|
|
},
|
|
],
|
|
}
|
|
```
|
|
|
|
### Ignoring Specific Files
|
|
|
|
#### Shorthand
|
|
|
|
```javascript
|
|
// The following example will disable the `/blog` index page
|
|
|
|
// gatsby-config.js
|
|
module.exports = {
|
|
plugins: [
|
|
{
|
|
resolve: `gatsby-plugin-page-creator`,
|
|
options: {
|
|
path: `${__dirname}/src/indexes/pages`,
|
|
ignore: [`blog.(js|ts)?(x)`],
|
|
// See pattern syntax recognized by micromatch
|
|
// https://www.npmjs.com/package/micromatch#matching-features
|
|
},
|
|
},
|
|
],
|
|
}
|
|
```
|
|
|
|
**NOTE**: The above code snippet will only stop the creation of the `/blog` page, which is defined as a React component.
|
|
This plugin does not affect programmatically generated pages from the [createPagesAPI](https://www.gatsbyjs.org/docs/node-apis/#createPages).
|
|
|
|
#### Ignore Options
|
|
|
|
```javascript
|
|
// The following example will ignore pages using case-insensitive matching
|
|
|
|
// gatsby-config.js
|
|
module.exports = {
|
|
plugins: [
|
|
{
|
|
resolve: `gatsby-plugin-page-creator`,
|
|
options: {
|
|
path: `${__dirname}/src/examples/pages`,
|
|
ignore: {
|
|
// Example: Ignore `file.example.js`, `dir/s/file.example.tsx`
|
|
patterns: [`**/*.example.(js|ts)?(x)`],
|
|
// Example: Match both `file.example.js` and `file.EXAMPLE.js`
|
|
options: { nocase: true },
|
|
// See all available micromatch options
|
|
// https://www.npmjs.com/package/micromatch#optionsnocase
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|
|
```
|