0.0.2 • Published 9 years ago

metalsmith-collection-scoping v0.0.2

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

metalsmith-collection-scoping

Build Status Code Climate Dependency Status

A Metalsmith plugin that lets you apply scoping to collections.

Features

  • Mark collections as private and specify at build time whether to include them
  • Remove private files from their collections when running in a non-private scope
  • Propagate private collections down to matching files, for use in metalsmith-scoping

Installation

$ npm install metalsmith-collection-scoping

Usage

This plugin is meant to be used with two existing plugins: metalsmith-collections and metalsmith-scoping. For example:

{
	"plugins": {
		"metalsmith-collections": {
			"articles": {
        		"sortBy": "date",
        		"reverse": true
        	},
        	"secrets": {
        		"metadata": {
        			"private": true
        		}
        	}
      	},
      	"metalsmith-collection-scoping": {
      		"scope": "public"
      	}
	}
}

will remove the "secrets" collection from the metalsmith metadata.

If you also want the files in the "secrets" collection to be private, you can add the "propagate" option and include metalsmith-scoping:

{
	"plugins": {
		"metalsmith-collections": {
			"articles": {
        		"sortBy": "date",
        		"reverse": true
        	},
        	"secrets": {
        		"metadata": {
        			"private": true
        		}
        	}
      	},
      	"metalsmith-collection-scoping": {
      		"scope": "public",
      		"propagate": true
      	},
      	"metalsmith-scoping": {
      		"scope": "public"
      	}
	}
}

which will set the "private" property on each of the files in the "secrets" collection. Then metalsmith-scoping will detect this and hide those files.

Options

  • scope is the same as the same option in metalsmith-scoping. When set to private it will include private collections, otherwise discard them. Default is to discard private collections.
  • propagate determines whether to propagate private collection scopes to matching files. Default is false. This option can be used independently of the scope option.

See the tests for more examples.

Where do we use this? On our developer portal!