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
: Messagefail
on failure orok
on 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-sr
With Git
git clone https://github.com/SaraiRojas/CDMX012-md-links.git
Flowchart
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
link
object indicating whichline
of 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