metalsmith-basename

0.2.4 • Public • Published

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

Package Sidebar

Install

npm i metalsmith-basename

Weekly Downloads

15

Version

0.2.4

License

MIT

Last publish

Collaborators

  • jmu