@raulingg/md-links

0.5.2 • Public • Published

Markdown Links

This repository is an implementation of this proposal

Node.js CI Coverage Status

Find all links included in a markdown file or in all markdown files inside a folder.

Installation

to install globally

npm install -g @raulingg/md-links

to install as a dependency in your project

npm install @raulingg/md-links

Usage

  • Requiring dependency

    const mdLinks = require('@raulingg/md-links')
    
    mdLinks('path/to/file.md')
      .then(mdlink => {
        // Return an object with two methods data and stats
    
        // data() return an array with results
        mdlink.data().forEach(item => {
          console.log(item.path, item.href, item.text)
        })
      });
    
    // find links in all markdown files inside a directory
    mdLinks('path/to/directory').data().then(data => {});
  • Importing using ES6

    import mdLinks from require('@raulingg/md-links')
    
    const mdlink = await mdLinks('path/to/file.md')
    const results = mdlink.data()
    
    // do whatever you want
  • validate broken links

    mdLinks('path/to/file.md', { validate: true}).then((mdlink) => {
      mdlink.data().forEach((item) => {
        console.log(item.path, item.text, item.href, item.status, item.statusCode)
      })
    });
  • Get stats

    /**
     * Stats Object
     * {
     *    total: <#linksFound>
     *    unique: <#LinksUnique>
     *    broken: <#LinksBroken>
     * }
     */
    mdLinks('path/to/file.md').then(mdlink => mdlink.stats());
    
    // get stats from broken links
    mdLinks('path/to/file.md', { validate: true}).then(mdlink => mdlink.stats());

CLI

  • Basic usage

    # single file
    md-links <path/to/file.md>
    
    # scan all markdown files in directory
    md-links <path/to/directory>
  • Adding a validation option (--validate or -val)

    md-links <path/to/directory> --validate
  • Get stats about how many links and broken links exist

    md-links <path/to/directory> --stats
    
    # validate and return stats
    md-links <path/to/directory> --validate --stats

Markdown file

Extensions supported

  • .md
  • .markdown

Format supported

  • Basic Cases

    [valid link](http://test.com)
    [test-link@test.com](http://test.com/test-link?djdjd&)
    [title (parenthesis)](http://www.test.com)
    [title with
    linebreak](http://test.com)
  • Extra Cases

    [[extra sq bracket](https://test.com?g=154&fh=!445?)
  • Video Case

    Find image and video url

    [![Solution Temperature converter](https://i.ytimg.com/vi/Ix6VLiBcABw/0.jpg)](https://www.youtube.com/watch?v=Ix6VLiBcABw)
    
  • Unsupported Cases

    [extra sq bracket - invalid]](https://test.com)
    
    [link with linebreak - invalid](http:
    //test.com)

Readme

Keywords

Package Sidebar

Install

npm i @raulingg/md-links

Weekly Downloads

0

Version

0.5.2

License

ISC

Unpacked Size

12.4 kB

Total Files

6

Last publish

Collaborators

  • raulingg