Nondeterministic Programming Methodology
Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

metalsmith-filemetadata

2.1.0 • Public • Published

metalsmith-filemetadata

A Metalsmith plugin to add metadata on files based on a pattern.

BuildStatus

Installation

$ npm install metalsmith-filemetadata

JavaScript usage

var fileMetadata = require('metalsmith-filemetadata');
 
metalsmith.use(fileMetadata([
    {pattern: "posts/*", metadata: {"section": "blogs", "type": "post"}},
    {pattern: "pages/*", metadata: {"section": "content", "type": "page"}}
]));
 

The pattern property of each rule should be a valid minimatch pattern. If the pattern matches the file, the corresponding metadata are set on the file entry. For a given file, all patterns are tested, so if several rules are matching, the latter can override the previously applied rules.

The metadata property can also be a function, to enable making global metadata available to files, or setting file metadata defaults, e.g.:

{
  pattern: "posts/*",
  metadata: function(file, globalMetadata) {
    return {
      title: file.keywords || globalMetadata.keywords,
      allPosts: globalMetadata.collections.posts
    };
  }
}

Adding preserve: true to any rule will prevent overriding pre-defined values.

CLI usage

{
  "plugins": {
    "metalsmith-filemetadata": [
      {"pattern": "posts/*", "metadata": {"section": "blogs", "type": "post"}},
      {"pattern": "pages/*", "metadata": {"section": "content", "type": "page"}}
    ]
  }
}

License

MIT

Install

npm i metalsmith-filemetadata

DownloadsWeekly Downloads

104

Version

2.1.0

License

MIT

Unpacked Size

8.78 kB

Total Files

6

Last publish

Collaborators

  • avatar