Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
directory-tree-md
Advanced tools
Readme
A variation of node-directory-tree
Creates a JavaScript object representing a directory tree.
$ npm i directory-tree-md
Markdown directory is generated.
const dirTree = require('node-directory-tree-md');
const tree = dirTree('/some/path', {
mdconf: true, // Whether to return Markdown configuration.
extensions: /\.md/,
});
Markdown configuration set by comments, support yaml.
<!--
title: Layout
heder: 😆😆😆😆
des: A detailed description
header:
url: http://google.com
-->
Other Markdown content
node-directory-tree-md
will return this JS object:
{
"path": "/some/path",
"name": "doc",
"children": [
{
"path": "/some/path/README.md",
"name": "README.md",
"relative": "/README.md",
"mdconf": {
"title": "Layout",
"heder": "😆😆😆😆",
"des": "A detailed description",
"header": {
"url": "http://google.com"
}
},
"isEmpty": true,
"size": 23,
"extension": ".md",
"type": "file"
},
{
"path": "/some/path/doc/layout.en.md",
"name": "layout.en.md",
"relative": "/doc/layout.en.md",
"mdconf": {
"title": "Layout"
},
"size": 285,
"extension": ".md",
"type": "file"
}
],
"size": 2607,
"type": "directory"
}
And you can also filter by an extensions regex: This is useful for including only certain types of files.
const dirTree = require('node-directory-tree-md');
const filteredTree = dirTree('/some/path', {extensions:/\.txt/});
You can also exclude paths from the tree using a regex:
const dirTree = require('node-directory-tree-md');
const filteredTree = dirTree('/some/path', {exclude:/some_path_to_exclude/});
A callback function can be executed with each file that matches the extensions provided:
const PATH = require('path');
const dirTree = require('node-directory-tree-md');
const tree = dirTree('./test/test_data', {extensions:/\.txt$/}, (item, PATH) => {
console.log(item);
});
The callback function takes the directory item (has path, name, size, and extension) and an instance of node path.
Given a directory structured like this:
photos
├── summer
│ └── june
│ └── windsurf.jpg
└── winter
└── january
├── ski.png
└── snowboard.jpg
node-directory-tree-md
will return this JS object:
{
"path": "photos",
"name": "photos",
"size": 600,
"type": "directory",
"children": [
{
"path": "photos/summer",
"name": "summer",
"size": 400,
"type": "directory",
"children": [
{
"path": "photos/summer/june",
"name": "june",
"size": 400,
"type": "directory",
"children": [
{
"path": "photos/summer/june/windsurf.jpg",
"name": "windsurf.jpg",
"size": 400,
"type": "file",
"extension": ".jpg"
}
]
}
]
},
{
"path": "photos/winter",
"name": "winter",
"size": 200,
"type": "directory",
"children": [
{
"path": "photos/winter/january",
"name": "january",
"size": 200,
"type": "directory",
"children": [
{
"path": "photos/winter/january/ski.png",
"name": "ski.png",
"size": 100,
"type": "file",
"extension": ".png"
},
{
"path": "photos/winter/january/snowboard.jpg",
"name": "snowboard.jpg",
"size": 100,
"type": "file",
"extension": ".jpg"
}
]
}
]
}
]
}
Device, FIFO and socket files are ignored.
Files to which the user does not have permissions are included in the directory tree, however, directories to which the user does not have permissions, along with all of its contained files, are completely ignored.
To run tests go the package root in your CLI and run,
$ npm test
Make sure you have the dev dependencies installed (e.g. npm install .
)
This project requires at least Node v4.2.
Check out version 0.1.1
if you need support for older versions of Node.
FAQs
Convert a directory tree to a JS object.
The npm package directory-tree-md receives a total of 8 weekly downloads. As such, directory-tree-md popularity was classified as not popular.
We found that directory-tree-md demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.