1.1.0 • Published 1 year ago

tinfantebonilla-md-links v1.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Markdown Link Librarie

Markdown title

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: Message fail or ok (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

CLI Flowchart API Flowchart