Skip to content

sounisi5011/metalsmith-directory-metadata

Repository files navigation

metalsmith-directory-metadata

npm package License: MIT Supported Node version: >=8.3.0 Type Definitions: TypeScript bundle size Dependencies Status Build Status Maintainability Status

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

About

Metalsmith plugin: defines default metadata for files in a directory

Resources

License

Stars

Watchers

Forks

Packages

No packages published