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
This project consists of TWO parts
The module can be imported into other Node.js scripts and offers the following interface:
path
: Absolute or relative path to the file or directory.option
: Boolean value indicating whether to validate or not.
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.
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);
The executable of our application is executed through the terminal:
md-links <path-to-file> [options]
For example:
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.
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:
With npm
npm install md-links-sr
git clone https://github.com/SaraiRojas/CDMX012-md-links.git
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
[Sarai Rojas]- sara.r.sandoval@gmail.com