Skip to content

ahmadnassri/node-metalsmith-paths

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Metalsmith Paths

A Metalsmith plugin that adds file path values (base, dir, ext, name, href) to metadata path property.

license release semantic

Install

npm install metalsmith-paths

API

const metalsmith = new Metalsmith(__dirname)
  .use(paths({
    property: "paths"
  }))

given the following directory structure:

src/
└── blog
    └── post.html

The following metadata will be generated:

metadata value
path.base post.html
path.dir blog
path.ext .html
path.name post
path.href /blog/post.html
path.dhref /blog/

CLI

You can also use the plugin with the Metalsmith CLI by adding a key to your metalsmith.json file:

{
  "plugins": {
    "metalsmith-paths": {
      "property": "paths"
    }
  }
}

Options

name description default
property property to store the path data to path
directoryIndex remove the filename if it matches disabled
winToUnix exchange \ for / on Windows true

directoryIndex

Removes the filename from the href attribute if it matches the value of directoryIndex. Default: disabled. For example, the following configuration:

{
  "plugins": {
    "metalsmith-paths": {
      "property": "path",
      "directoryIndex": "index.html"
    }
  }
}

Would produce the following filenames:

Filename path.href
/index.html /
/portfolio/index.html /portfolio/
/portfolio/project1.html /portfolio/project1.html
/portfolio/project2.html /portfolio/project2.html

Author: Ahmad Nassri • Twitter: @AhmadNassri