npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@thundersquared/gatsby-redirect-from

v1.0.3

Published

Creates an .htaccess based on your defined redirect rules.

Downloads

7

Readme

Travis npm

@thundersquared/gatsby-redirect-from

By adding a list of urls to the YAML frontmatter, this plugin creates redirects for all of them at build time. It uses Gatsby's createRedirect under the hood.

Table of Contents


Prerequisites

Plugin assumes the default setup from gatsby-starter-blog, with Markdown files processing by gatsby-transformer-remark and adding a field slug for each file node. Head over to gatsby-starter-blog's gatsby-node.js file to see how this is done.

If this does not fit your setup, you can configure the default query being used.

Installation

cd yourproject/
npm i gatsby-redirect-from gatsby-plugin-meta-redirect

Then load the plugin along with gatsby-plugin-meta-redirect from your gatsby-config.js:

plugins: [
  'gatsby-redirect-from',
  'gatsby-plugin-meta-redirect' // make sure this is always the last one
]

That's it. See Usage.

Server Rendering

Gatsby's createRedirect only creates client-side redirects, so further integration is needed to get server redirects too. Which is highly dependent on your hosting, if you want to have the proper HTML status codes like 301, Apache needs .htaccess rules for that, nginx rewrite rules, S3 RoutingRules and so on.

One simple way, as suggested in installation, is to use gatsby-plugin-meta-redirect to generate static HTML files with a <meta http-equiv="refresh" /> tag for every createRedirect call. So it works out of the box with this plugin without further adjustments.

This way is the most compatible way of handling redirects, working with pretty much every hosting provider. Only catch: it's only for usability, no SEO-friendly 301 redirect is set anywhere.

Usage

In your Markdown file's YAML frontmatter, use the key redirect_from followed by a list:

---
title: Aperture File Types
redirect_from:
  - /new-goodies-aperture-file-types-icons/
  - /goodie-updated-aperture-file-types-v11/
  - /aperture-file-types-v12-released/
  - /2008/04/aperture-file-types/
  # note: forward slashes are required
---

Options

Plugin does not require to be configured but some additional customization options are available:

| Option | Default | Description | | ------ | ------------------- | ------------------------------------------------------------------------------------------------ | | query | allMarkdownRemark | Modify the query being used to get the frontmatter data. E.g. if you use MDX, set allMdx here. |

Add options to the plugins's configuration object in gatsby-config.js like so:

plugins: [
  {
    resolve: 'gatsby-redirect-from',
    options: {
      query: 'allMdx'
    }
  }
  'gatsby-plugin-meta-redirect' // make sure this is always the last one
]

Plugin Development

npm i
npm start

# production build
npm run build

# publishing to npm & GitHub releases
# uses https://github.com/webpro/release-it
npm run release
npm run release minor
npm run release major