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

gatsby-plugin-liist-config

v0.0.2

Published

A Gatsby plugin for pulling Liist config from a spreadsheet

Downloads

10

Readme

gatsby-plugin-liist-config

npm package Maintainability Dependabot

A Gatsby plugin for pulling Liist config from a spreadsheet.

The plugin uses the gatsby-source-google-sheets plugin to retrieve rows of key-value pairs that configure a Liist site.


Install

Manual

  1. Install gatsby-plugin-liist-config

    npm install --save gatsby-plugin-liist-config

  2. Add plugin to gatsby-config.js

    // In your gatsby-config.js
     module.exports = {
       plugins: [
         {
         resolve: `gatsby-plugin-liist-config`,
         options: {
           spreadsheetId: '1234',
           worksheetTitle: 'Settings',
           credentials: {/* service account credentials */},
           imageSettings: [/* ... */],
           themeSettings: {/* ... */},
           fontKeys: [/* .. */]
         }
       ],
     };

How to use

Options

| Option | Explanation | | -------------------------- | --------------------------------------------------------------------------- | | spreadsheetId | The id of the spreadsheet (required) | | worksheetTitle | The title of the shett containing the configuration (required) | | credentials | The service account credentials generated from the Google Developer Console | | imageSettings | Array of image configs | | imageSettings.key | The key of the row the value comes from | | imageSettings.dest | The destination folder (relative to the root of the site) | | imageSettings.outputName | The name of the output (minues the extension) | | themeSettings | Theme settings | | themeSettings.output | Name of the generated scss file | | themeSettings.formatters | Array of variable (inner part of the [...]) key (function) pairs | | fontKeys | Array of theme variables that are fonts that should be prefetched |

Images

Any images configured with the imageSettings option will be downloaded, placed in the destination folder and have the public path exposed as an environment variable.

This configuration:

{
  imageSettings: [
    {
      key: 'GATSBY_LOGO',
      dest: 'src/images',
      outputName: 'logo',
    },
  ];
}

Would result in the image being downloaded and stored in src/images/logo.{ext}. The environment variable GATSBY_LOGO would equal images/logo.{ext}

Theme

Any settings with a key of the format THEME[$secondary] will be put into a custom scss file located at src/scss/ with the filename specified by themeSettings.output. The value inside the [...] is the variable name and the values will be printed as is.

If a variable's value requires a custom format, provide that in themeSettings.formatters. The key should be the theme variable and the function takes the value from the spreadsheet and must return a string to be written to the SCSS file.

For example a row with the key THEME[$default] and value #00ff00 becomes:

$default: #00ff00;

Adding a custom formatter:

{
  formatters: {
    '$default': value => `'Something'`;
  }
}

Now it becomes:

$default: 'Something';

Fonts

Theme variables that are provided in the fontKeys options will be treated differently. In addition to being output in the generated SCSS files, they are also prefetched using the gatsby-plugin-prefetch-google-fonts plugin.

Environment Variables

All other settings will be put on process.env using their key as the variable name.

For example

GATSBY_SITE_TITLE => Site Title

console.log(process.env.GATSBY_SITE_TITLE); //-> 'Site Title'

Changelog

See CHANGELOG.md.

License

MIT © Pixelplicity