gfi

gulp-folder-index

Gulp plugin to generate folder indexes.

Showing:

Popularity

Downloads/wk

34

GitHub Stars

1

Maintenance

Last Commit

4yrs ago

Contributors

2

Package

Dependencies

6

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

gulp-folder-index

NPM version Build Status

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

MIT License

Thanks

Thanks to @masondesu for creating the gulp-directory-map upon which this is based.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100