Search code examples
reactjsgatsby

How to unpublish a gatsby page without deleting it?


I used a Gatsby starter for my static site, and one of the pages included in that starter is a demo page with all of the UI elements.

I want to keep the page (so I can copy and paste from the demo) but don't want to be publicly available. How do I "unpublish" without deleting the file?

Is there a way to tell gatsby-node.js to skip that page when generating the public facing site?


Solution

  • There are a bunch of Gatsby Node API helpers that you can use, one being deletePage.

    If you have a page src/pages/demo.js, this will delete that page during creation.

    // gatsby-node.js
    exports.onCreatePage = async ({ page, actions: { deletePage } }) => {
        if (page.path.match(/^\/demo/)) {
          deletePage(page)
        }
    }