North Pittsburgh Meatpackers

    gulp-folder-index

    0.0.3 • Public • Published

    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.

    Install

    npm i gulp-folder-index

    DownloadsWeekly Downloads

    6

    Version

    0.0.3

    License

    MIT

    Last publish

    Collaborators

    • davesag