ClydeDz / markdown-list-linter-npm

Lint markdown lists to warn when list items are not alphabetically ordered

Home Page:https://www.npmjs.com/package/markdown-list-linter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Markdown List Linter

Lints markdown lists and warn when list items are not alphabetically ordered.

A complete solution

This functionality is available to be consumed in three different ways:

  • A GitHub Action as part of your CI/CD process

  • 📦 An NPM package that can be consumed in your JavaScript or TypeScript code

  • 💻 A CLI that you can run in your terminal

Installation

You can install this package in your JavaScript or Typescript project.

npm install markdown-list-linter

Usage

Very simple to use, all results will be container in the returned object.

import { lintMarkdownList } from '../src/markdown-list-linter'

const results = lintMarkdownList('./path/to/markdown/file.md')
console.log(results)

When there are no errors, the returned object should look something like this. The property formattedMessage is supplied if you need to print the output to a terminal console.

{
  'summary': 'No errors found',
  'formattedMessage': 'SUMMARY:\nNo errors found\n'
}

When there are errors, the returned object should look something like this.

{
  'summary': 'Markdown list needs to be sorted',
  'errorObject': [
      {
          'type': 'HEADINGS',
          'message': 'Please correct the alphabetical order for these heading items',
          'details': [
            ['C'],
            ['D', 'A']
          ],
      },
      {
          'type': 'LIST_ITEMS',
          'message': 'Please correct the alphabetical order for these list items',
          'details': [
            [
                `[African Buffalo]('https://www.AfricanBuffalo.com')`,
                `[Aardwolf]('https://www.Aardwolf.com')`
            ]
          ],
      }
  ],
  'formattedMessage': "SUMMARY:\nMarkdown list needs to be sorted\n\nDETAILS:\nPlease correct the alphabetical order for these heading items\n\tSection #1\n\t\tD\n\t\tA\n\t\tB\n\t\tC\n\nPlease correct the alphabetical order for these list items\n\tSection #1\n\t\t[African Buffalo]('https://www.AfricanBuffalo.com')\n\t\t[Aardwolf]('https://www.Aardwolf.com')\n\n\"
}

The array items in the details object is sections in the list which need to be reordered.

About

Lint markdown lists to warn when list items are not alphabetically ordered

https://www.npmjs.com/package/markdown-list-linter

License:MIT License


Languages

Language:TypeScript 94.2%Language:JavaScript 5.8%