Name: metalsmith-copy
Owner: Particle
Description: Metalsmith plugin that copies and renames files
Forked from: AdrieanKhisbe/metalsmith-copy
Created: 2017-03-02 20:40:13.0
Updated: 2017-03-02 20:40:14.0
Pushed: 2018-01-03 18:33:05.0
Size: 11
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
This is a plugin for Metalsmith that copies files matching a pattern
based on either a transform
function or a directory
and extension
. Think of metalsmith-copy as a file converter plugin like metalsmith-markdown, but it doesn't make any changes to the content and name changes are programmatically specified in its options.
If using the CLI for Metalsmith, metalsmith-copy can be used like any other plugin by including it in metalsmith.json
. For example:
lugins": {
"metalsmith-copy": {
"pattern": "*.md",
"directory": "markdown-files"
}
Note that the transform
option cannot be used, as JSON doesn't serialize JavaScript functions.
For Metalscript's JavaScript API, metalsmith-copy can be used like any other plugin, by attaching it to the function invocation chain on the Metalscript object. For example:
copy = require('metalsmith-copy');
ire('metalsmith')(__dirname)
se(copy({
pattern: '*.md',
transform: function (file) {
return file + '.bak';
}
uild();
metalsmith-copy requires a pattern
option as well as at least one of the transformation options: extension
, directory
, or transform
.
pattern
is a globbing pattern that specifies which files to copy.extension
is an extension (starting with .
) that replaces the file's current last extension.directory
is a directory relative to the build directory for the new file to be copied.transform
supercedes both extension
and directory
and is a function which takes one argument (the path to the file being copied) and returns a new path for the file to be copied to.move
is boolean value indication files should be moved instead of copied.If you're running a blog, perhaps you want to mimic John Gruber's articles, where he provides both an HTML version of his article and a Markdown version (ending in .text
). To set this up with metalsmith-copy, provide the following options to the plugin:
attern": "articles/*.md",
xtension": ".text"
To move all files in a given folder to the root of your build directory, you could try the following options:
attern": "static/*",
irectory": "",
ove": true