# {%= name %} {%= badge("fury") %} > {%= description %} ## Install {%= include("install") %} ## How it works Substitute **prop-strings** like `:basename`, `:ext`, `:dirname` or [any random string](#random-string) that has a [match on the context](#context) object. The generated `dest` path will be appended to whatever is defined in `gulp.dest()`. **For example:** ```js gulp.src('*.js') .pipe(rte(':basename:ext')) .pipe(gulp.dest('blog')); //=> blog/a.js, blog/b.js, blog/c.js... ``` ## Context File paths are parsed to create the default `context` object, so given the filepath `a/b/c/d.js` any of the following will work: * `:dirname` returns `a/b/c` * `:basename` returns `d.js` * `:ext`|`:extname` returns `.js` **Note** that, continuing with this example, the path must actually have an extension for `:ext` to return an extension. If an extension doesn't actually exist on the filepath then `ext` itself will be returned. An easy way around this is to define `ext` as a [custom property](#custom-properties). ### Custom properties Pass custom properties as a second parameter (continuing with `a/b/c/d.js`): ```js rte(':alpha/:gamma:ext', {alpha: 'one', gamma: 'three'}) //=> one/three.js rte(':alpha/:basename/:gamma:ext', {alpha: 'one', gamma: 'three'}) //=> one/d/three.js ``` ## Usage examples ### Basic example This is just a basic example of what [rte](https://github.com/jonschlinkert/rte) can do: ```js var gulp = require('gulp'); var rte = require('gulp-rte'); // given you have: // ['a/b/c/foo.js', 'a/b/c/bar.js', 'a/b/c/baz.js'] gulp.task('default', function() { return gulp.src('a/b/c/*.js') .pipe(rte(':basename.min:ext')) .pipe(gulp.dest('blog')); }); //=> blog/foo.min.js //=> blog/bar.min.js //=> blog/baz.min.js ``` ### Random string Add a radomized string to any point in a file path: ```js var context = { random: Math.random().toString(36).substr(2, 5); }; gulp.task('default', function() { return gulp.src('a/b/c/*.js') .pipe(rte(':basename-:random.js', context)) .pipe(gulp.dest('blog')); }); //=> blog/foo-qi2os.js //=> blog/bar-s5s7p.js //=> blog/baz-bu96e.js ``` **Any pattern** can be used. For inspiration or examples, see: * [rte](https://github.com/jonschlinkert/rte) * [strings](https://github.com/assemble/strings) * [permalinks](https://github.com/jonschlinkert/permalinks) ## Author {%= include("author") %} ## License {%= copyright() %} {%= license() %} *** {%= include("footer") %}