modelify

Scans a directory tree and returns an array of their files processed with markdown.

Modelify

Scans a directory tree and returns an array of their files processed with markdown.

npm install modelify --save

Let's say you have a folder named _data and you want to modelize the folder content, which is this:

| _data/
| -- posts/
| -- -- 1-hello-world.md
| -- -- 2-lorem-ipsum.md
| -- projects/
| -- -- 1-kevin-wolf-me.markdown
| index.js

And the file contents are:

name: Hello World
description: This is a simple Hello World task.
foo: bar
 
# Hello World
Hello! I am the item content.
name: Lorem Ipsum
description: Generic text.
bar: foo
 
## Lorem ipsum
 
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
name: Kevin Wolf
description: My personal portfolio
url: http://kevinwolf.me
 
This is my portfolio

On the index.js file, place this code, calling the library.

var modelify = require('modelify');
var result = modelify('path_to_folder');

And you will get this result:

{
  posts: [
    {
      name: 'Hello World',
      description: 'This is a simple Hello World task.',
      foo: 'bar',
      content: '<h1>Hello World</h1>\n<p>Hello! I am the item content.</p>\n'
    },
    {
      name: 'Lorem Ipsum',
      description: 'Generic text.',
      bar: 'foo',
      content: '<h2>Lorem ipsum</h2>\n<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n'
    }
  ],
  projects: [
    {
      name: 'Kevin Wolf',
      description: 'My personal portfolio',
      url: 'http://kevinwolf.me',
      content: '<p>This is my portfolio</p>\n'
    }
  ]
}