metalsmith-collection-scoping
v0.0.2
Published
A Metalsmith plugin to apply scoping to collections
Downloads
3
Readme
metalsmith-collection-scoping
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 toprivate
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 isfalse
. This option can be used independently of thescope
option.
See the tests for more examples.
Where do we use this? On our developer portal!