gulp-folder-index v0.0.3
gulp-folder-index
Convert a buffer of files into a JSON representation of the directory structure using gulp, with configurable file extension
Usage
First, install gulp-folder-index
as a development dependency:
npm install --save-dev gulp-folder-index
Then, add it to your gulpfile.js
:
let folderIndex = require("gulp-folder-index");
gulp.src('app/**/*.yml')
.pipe(folderIndex({
extension: '.json', // default
filename: 'index.json', // default
prefix: '', // default
directory: false // default
}))
.pipe(gulp.dest('dist'));
Given this directory structure...
app
| folder-1
| folder-2
| something.yml
| faqs.yml
| folder-3
|_folder-4
| something-else.yml
| hello-world.yml
... this JSON object would be written to dist/index.json
:
[
"hello-world.json",
"folder-1/faqs.json",
"folder-1/folder2/something.json",
"folder-3/folder-4/something-else.json"
]
This is useful for mapping out a directory structure after passing files through a pre-processor, generating data to create navigation during build, and more. Have fun!
API
folder-index(options)
options.filename
Type: String
Default: index.json
The path to write the directory structure JSON file to.
options.prefix
Type: String
Default: none
A string to prepend to every url.
Given the directory structure above, specifiying prefix: 'prefixed-folder'
would generate this JSON:
[
"prefixed-folder/hello-world.json",
"prefixed-folder/folder-1/faqs.json",
"prefixed-folder/folder-1/folder2/something.json",
"prefixed-folder/folder-3/folder-4/something-else.json"
]
options.extension
Type: String
Default: json
An extension string to replace the original with.
Given the directory structure above, specifiying extension: 'html'
would generate this JSON:
[
"hello-world.html",
"folder-1/faqs.html",
"folder-1/folder2/something.html",
"folder-3/folder-4/something-else.html"
]
options.directory
Type: Boolean
Default: false
An extension boolean to generate json with directory and path.
Given the directory structure above, specifiying directory: true
would generate this JSON:
[
{
"directory": "",
"path": "hello-world.json"
},
{
"directory": "folder-1/",
"path": "folder-1/faqs.json"
},
{
"directory": "folder-1/folder2/",
"path": "folder-1/folder2/something.json"
},
{
"directory": "folder-3/folder-4/",
"path": "folder-3/folder-4/something-else.json"
}
]
Contributing
Contributions are welcomed. Please see the contributing notes for details.
License
Thanks
Thanks to @masondesu for creating the gulp-directory-map upon which this is based.