Markdown Links
This repository is an implementation of this proposal
Find all links included in a markdown file or in all markdown files inside a folder.
Installation
to install globally
npm install -g @raulingg/md-links
to install as a dependency in your project
npm install @raulingg/md-links
Usage
-
Requiring dependency
const mdLinks = require('@raulingg/md-links')
mdLinks('path/to/file.md')
.then(mdlink => {
mdlink.data().forEach(item => {
console.log(item.path, item.href, item.text)
})
});
mdLinks('path/to/directory').data().then(data => {});
-
Importing using ES6
import mdLinks from require('@raulingg/md-links')
const mdlink = await mdLinks('path/to/file.md')
const results = mdlink.data()
-
validate broken links
mdLinks('path/to/file.md', { validate: true}).then((mdlink) => {
mdlink.data().forEach((item) => {
console.log(item.path, item.text, item.href, item.status, item.statusCode)
})
});
-
Get stats
mdLinks('path/to/file.md').then(mdlink => mdlink.stats());
mdLinks('path/to/file.md', { validate: true}).then(mdlink => mdlink.stats());
CLI
-
Basic usage
md-links <path/to/file.md>
md-links <path/to/directory>
-
Adding a validation option (--validate or -val)
md-links <path/to/directory> --validate
-
Get stats about how many links and broken links exist
md-links <path/to/directory> --stats
md-links <path/to/directory> --validate --stats
Markdown file
Extensions supported
Format supported
-
Basic Cases
[valid link](http://test.com)
[test-link@test.com](http://test.com/test-link?djdjd&)
[title (parenthesis)](http://www.test.com)
[title with
linebreak](http://test.com)
-
Extra Cases
[[extra sq bracket](https://test.com?g=154&fh=!445?)
-
Video Case
Find image and video url
[![Solution Temperature converter](https://i.ytimg.com/vi/Ix6VLiBcABw/0.jpg)](https://www.youtube.com/watch?v=Ix6VLiBcABw)
-
Unsupported Cases
[extra sq bracket - invalid]](https://test.com)
[link with linebreak - invalid](http:
//test.com)