metalsmith-directory-metadata
v1.0.0
Published
Metalsmith plugin: defines default metadata for files in a directory
Downloads
9
Maintainers
Readme
metalsmith-directory-metadata
Defines default metadata for files in a directory.
Features
can define directory metadata
This plugin defines the metadata that all files in the directory have in common.
Directory metadata is defined using a definition file in JSON or YAML format.
Install
npm install metalsmith-directory-metadata
CLI Usage
Install via npm and then add the metalsmith-directory-metadata
key to your metalsmith.json
plugin, like so:
{
"plugins": {
"metalsmith-directory-metadata": true
}
}
If you need to specify an options, set the options to the value of the metalsmith-directory-metadata
key.
{
"plugins": {
"metalsmith-directory-metadata": {
"pattern": "**/.metadata"
}
}
}
See Metalsmith CLI for more details.
Javascript Usage
The simplest use is to omit the option. By default, the following files are used to define metadata: metadata.yaml
, metadata.yml
, metadata.json
, and metadata
.
const directoryMetadata = require('metalsmith-directory-metadata');
metalsmith
.use(directoryMetadata());
If you need to specify an options, set the options value.
const directoryMetadata = require('metalsmith-directory-metadata');
metalsmith
.use(directoryMetadata({
pattern: '**/.metadata',
}));
If you want to use the files
variable or the default options value, you can specify the callback function that generates the options.
const directoryMetadata = require('metalsmith-directory-metadata');
metalsmith
.use(directoryMetadata(
(files, metalsmith, defaultOptions) => {
return {
pattern: [...defaultOptions.pattern, '**/.metadata'],
};
}
));
TypeScript Usage
For compatibility with the Metalsmith CLI, this package exports single function in CommonJS style.
When using with TypeScript, it is better to use the import = require()
statement.
import directoryMetadata = require('metalsmith-directory-metadata');
metalsmith
.use(directoryMetadata());
Options
The default value for options are defined like this:
{
pattern: ['**/metadata.{json,yaml,yml}', '**/metadata'],
}
pattern
Specifies the Glob pattern that matches the file that defines the directory metadata.
Specify a glob expression string or an array of strings as the pattern.
Pattern are verified using multimatch v4.0.0.
Default value (source):
['**/metadata.{json,yaml,yml}', '**/metadata']
Type definition (source):
string | string[]
Debug mode
This plugin supports debugging output.
To enable, use the following command when running your build script:
DEBUG=metalsmith-directory-metadata,metalsmith-directory-metadata:* node my-website-build.js
For more details, please check the description of debug v4.1.1.
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
Contributing
see CONTRIBUTING.md