metalsmith-metadata-files

v3.0.0
Metalsmith Metadata Files Plugin
metalsmith jstransformer

Metalsmith Metadata Files npm version

Build Status Greenkeeper badge Dependency Status

Metalsmith plugin to inject file metadata from matching .json or .yaml files.

Installation

npm install --save metalsmith-metadata-files

CLI

If you are using the command-line version of Metalsmith, you can install via npm, and then add the metalsmith-metadata-files key to your metalsmith.json file:

{
  "plugins": {
    "metalsmith-metadata-files": {
      "pattern": "{**.json,**.yaml}"
    }
  }
}

JavaScript

If you are using the JS Api for Metalsmith, then you can require the module and add it to your .use() directives:

var metadataFiles = require('metalsmith-metadata-files');

metalsmith.use(metadataFiles({
  'pattern': '{**.json,**.yaml}'
}));

Convention

Create .json or .yaml files along-side your content. The data from these files will be injected into the metadata into the matching file.

Example

The following example uses Twig through Metalsmith JSTransformer:

npm install metalsmith-jstransformer jstransformer-twig --save

src/example.twig

<div class="{{class}}">Hello, {{name}}!</div>

src/example.json

{
  "name": "World",
  "metadata-files": [
    "moreoptions.json"
  ]
}

moreoptions.json

{
  "class": "hello"
}

Result

<div class="hello">Hello, World!</div>

Options

metadata-files

An array depicting additional metadata files that are inheritted into the parent file's metadata. Can be added to the file's YAML front-matter, or inside the .json files themselves.

metadata-files://

String values that begin with metadata-files:// will inject the file into the metadata itself.

Options
{
  "person": "metadata-files://component/charlie.json"
}
charlie.json
{
  "name": "Charlie"
}
Result
{
  "person": {
    "name": "Charlie"
  }
}

Configuration

.pattern

The pattern used to find the JSON files. Defaults to {*.json|*.yaml}.

.patternOptions

The minimatch options that are used when matching against the JSON Pattern. Defaults to { matchBase: true }.

.inheritFilePrefix

The prefix that is expected when searching for inheritted files. Defaults to metadata-files://.

License

MIT

npm i metalsmith-metadata-files

Metadata

  • MIT
  • Whatever
  • Unknown
  • released 10/7/2020

Downloads

Maintainers