tinfantebonilla-md-links v1.1.0
Markdown Link Librarie
Index
1. Project Summary
Markdown is a markup language lightweight very popular among developers. It is used on many platforms handle plain text (GitHub, forums, blogs, ...) and it is very common
find multiple files in that format in any kind of repository (starting with the traditional README.md
).
These Markdown
iles usually contain links that
many times they are broken or no longer valid and that greatly damages the value of
the information you want to share.
We develop a tool using Node.js, that read and parse files
in Markdown
format, to verify with a http request the status of the links, and generate some statistics.
2. Installation
On the command line you must write:
npm install tinfantebonilla-md-links
3. Usage
3.1 API
Import the library with require()
const { mdLinks } = require("tinfantebonilla-md-links");
This is the function you will use:
mdLinks(path, options)
path
: absolute or relative route to the file or directory.options
: An object with only this property:validate
: Boolean that determines if links need to be validated.
It returns a Promise
that is resolved with an Array
of objects, where every Object
represents a link and contains these properties:
With validate:false
:
href
: URL that was found.text
: Text inside the link (<a>
).file
: Files's route where the link was found.
With validate:true
:
href
: URL that was found.text
: Text inside the link (<a>
).file
: Files's route where the link was found.status
: Response HTTP Code.ok
: Messagefail
orok
(if it was successful).
Examples (results as comments):
const { mdLinks } = require("jleon-md-links");
mdLinks("./some/example.md", { validate: false })
.then(
(links) => console.log(links)
// => [{ href, text, file }, ...]
)
.catch(console.error);
mdLinks("./some/example.md", { validate: true })
.then(
(links) => console.log(links)
// => [{ href, text, file, status, ok }, ...]
)
.catch(console.error);
mdLinks("./some/dir", { validate: false })
.then(
(links) => console.log(links)
// => [{ href, text, file }, ...]
)
.catch(console.error);
mdLinks("./some/dir", { validate: true })
.then(
(links) => console.log(links)
// => [{ href, text, file, status, ok }, ...]
)
.catch(console.error);
3.2 CLI
This is the way you can use the executable file by the command line:
md-links <path-to-file> [options]
An example:
$ md-links ./some/example.md
./some/example.md http://something.com/2/3/ Link to something
./some/example.md https://otra-cosa.net/any-doc.html any doc
./some/example.md http://google.com/ Google
Options
--validate
An example:
$ md-links ./some/example.md --validate
./some/example.md http://something.com/2/3/ Ok 200 Link to something
./some/example.md https://otra-cosa.net/any-doc.html Fail 404 any doc
./some/example.md http://google.com/ ok 301 Google
--stats
An example:
$ md-links ./some/example.md --stats
Total: 3
Unique: 3
Also you can use both --stats
and --validate
(it doesn´t matter the order).
Examples:
$ md-links ./some/example.md --stats --validate
Total: 3
Unique: 3
Broken: 1
$ md-links ./some/example.md --validate --stats
Total: 3
Unique: 3
Broken: 1
4. Flowchart