Skip to content

leviwheatcroft/metalsmith-filemetadata

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

metalsmith-filemetadata

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

Build Status Dependency Status

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"}},
    {
      pattern: [ "posts/*", "pages/*", "!**/index*" ],
      metadata: {
        cover: 'images/{title}.jpg'
      }
    },
    {
      // metalsmith-mapsite reads 'lastmod'
      pattern: [ 'articles/*', '!articles/index' ],
      // {lastmod} template evaluates to token passed in below
      metadata: { 'lastmod': '{lastmod}' },
      tokens: { lastmod: (meta) => {
        return meta.modifiedDate.slice(0, 10)
      }}
    }
]));

CLI usage

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

Parameters

  • pattern: {String|Array} multimatch pattern to filter files.
  • metadata: {Object} key value pairs to set on matched files. If several rules match the last rule will be applied. Values will be interpolated.
  • tokens: {Object} additional tokens you want to be available for interpolation.
  • preserve: {Boolean} preserve existing values.

License

MIT

About

Metalsmith plugin to add metadata on files based on a pattern

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%