Skip to content

A metalsmith plugin that adds the collection file basenames into metadata

Notifications You must be signed in to change notification settings

juhamust/metalsmith-basename

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

metalsmith-basename

A Metalsmith plugin that adds file's basename as a metadate for the file, making it available for example for permalinks and helps to generate files based on it.

npm i -D metalsmith-basename
basename({
  pattern: ['**/*.html'],
  verbose: true
})

opts.pattern (array)

Process only selected documents. Example:

basename({ 
  pattern: ['**/*', '!test-**.md'] 
})

opts.verbose (boolean)

Log the files that gets processed and skipped. Defaults to false.

Example

Example usage of plugin with others.

Installation:

npm i -D metalsmith \
  harmonize \
  gulp-load-plugins \
  metalsmith-markdown-remarkable \
  metalsmith-permalinks \
  metalsmith-basename 

Documents:

src/
  my-document.md
  my another document.md
package.json

Building:

// Harmonize is required with metalsmith when using node <= 0.12 
require('harmonize')();
var Metalsmith = require('metalsmith');
var loadPlugins = require('gulp-load-plugins');

// Using gulp plugin loader to load metalsmith plugins
var plugins = loadPlugins({
  pattern: ['metalsmith-*', 'metalsmith.*'],
  replaceString: /^metalsmith(-|\.)/,
});

new Metalsmith(__dirname)
  .use(plugins.markdownRemarkable({
    html: true
  }))
  .use(plugins.basename({
    pattern: ['**/*.html'],
    verbose: false
  }))
  .use(plugins.permalinks({
    // Using basename as output path
    pattern: ':basename'
  }))
  .build(function(err) {
    if (err) {
      console.error(err);
    }
  });

Output:

build/
  my-document/index.html
  my-another-document/index.html
src/
  my-document.md
  my another document.md
package.json

License

MIT licensed

About

A metalsmith plugin that adds the collection file basenames into metadata

Resources

Stars

Watchers

Forks

Packages

No packages published