metalsmith-metadata-files v3.0.0
Metalsmith Metadata Files 
Metalsmith plugin to inject file metadata from matching .json or .yaml files.
Installation
npm install --save metalsmith-metadata-filesCLI
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 --savesrc/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
