md-links-sr v2.0.0
Markdown Links
This project consists of a command line tool (CLI) as well as a JavaScript library. Md-links allows us to validate the status of links from Markdown files and obtain basic and advanced statistics about the links.
Getting started • Installation • Flowchart • Contributing • Contact • Acknowledgments
Getting Started
This project consists of TWO parts
1) JavaScript API
The module can be imported into other Node.js scripts and offers the following interface:
mdLinks(path, option)
Arguments
path: Absolute or relative path to the file or directory.option: Boolean value indicating whether to validate or not.
Return value
The function returns a promise (Promise) that resolves to an array
(Array) of objects (Object), where each object represents a link and contains
the following properties
With option === false :
href: URL found.text: Text that appeared inside the link (<a>).file: Path of the file where the link was found.
With option === true :
href: URL found.text: Text that appeared inside the link (<a>).file: Path of the file where the link was found.status: HTTP response code.ok: Messagefailon failure orokon success.
Example
const mdLinks = require("md-links-sr");
mdLinks("./some/example.md")
.then((links) => {
// => [{ href, text, file }, ...]
})
.catch(console.error);
mdLinks("./some/example.md", { validate: true })
.then((links) => {
// => [{ href, text, file, status, ok }, ...]
})
.catch(console.error);
mdLinks("./some/dir")
.then((links) => {
// => [{ href, text, file }, ...]
})
.catch(console.error);2) CLI (Command Line Interface)
The executable of our application is executed through the terminal:
md-links <path-to-file> [options]
For example:
Options
--validate
If we pass --validate or -v option, the module must make an HTTP request to
find out if the link works or not. If the link results in a redirect to a
URL that responds ok, then we will consider the link as ok.
For example:
We see that the output in this case includes the word ok or fail after
the URL, as well as the status of the response received to the HTTP request to that
URLs.
--stats
If we pass --stats or -s option the output will be a text with basic statistics
about the links.
For example:
We can also combine --stats and --validate to get statistics that
need validated results.
For example:
Installation
With npm
npm install md-links-srWith Git
git clone https://github.com/SaraiRojas/CDMX012-md-links.gitFlowchart
API flowchart
CLI flowchart
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Suggested contributions:
- Add the line property to each
linkobject indicating whichlineof the file the link was found on. - Add more stats.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Contact
Sarai Rojas- sara.r.sandoval@gmail.com