plugins to check (lint) markdown code style
Go to file
2016-01-15 11:17:30 +01:00
doc Add support for global externals when running globally 2016-01-13 10:55:36 +01:00
lib Add support for global externals when running globally 2016-01-13 10:55:36 +01:00
script Add support for global externals when running globally 2016-01-13 10:55:36 +01:00
test Add no-undefined-references rule 2016-01-09 22:12:05 +01:00
.editorconfig Replace internal dependency of mdast > remark 2015-12-26 14:25:46 +01:00
.eslintignore Remove superfluous ignores 2015-12-26 14:49:32 +01:00
.eslintrc Update eslint, jscs style guidelines 2015-12-26 14:49:07 +01:00
.gitignore Remove distribution files from source 2015-12-26 14:53:25 +01:00
.jscs.json Remove superfluous ignores 2015-12-26 14:49:32 +01:00
.remarkignore Replace internal dependency of mdast > remark 2015-12-26 14:25:46 +01:00
.remarkrc Replace internal dependency of mdast > remark 2015-12-26 14:25:46 +01:00
.travis.yml Add node 4, 5 to travis 2015-12-26 14:53:44 +01:00
component.json 2.2.0 2016-01-13 12:07:25 +01:00
history.md Update dev-dependencies 2016-01-15 11:17:30 +01:00
index.js Update eslint, jscs style guidelines 2015-12-26 14:49:07 +01:00
LICENSE Initial commit 2015-06-11 18:07:00 +02:00
logo.svg Update logo.svg 2015-12-24 15:44:54 +01:00
package.json Update dev-dependencies 2016-01-15 11:17:30 +01:00
readme.md Fix incorrect link 2016-01-10 10:01:33 +01:00
screenshot.png Rename screen-shot.png to screenshot.png 2016-01-09 22:27:25 +01:00

remark-lint

Build Status Coverage Status

remark-lint is a markdown code style linter. Another linter? Yes. Ensuring the markdown you (and contributors) write is of great quality will provide better rendering in all the different markdown parsers, and makes sure less refactoring is needed afterwards. What is quality? Thats up to you, but the defaults are sensible 👌.

remark-lint has lots of tests. Supports Node, io.js, and the browser. 100% coverage. 50+ rules. Its built on remark, a powerful markdown processor powered by plugins (such as this one).

Table of Contents

Installation

npm:

npm install remark-lint

remark-lint is also available for duo, and as an AMD, CommonJS, and globals module, uncompressed and compressed.

Command line

Example of how remark-lint looks on screen

Use remark-lint together with remark:

npm install --global remark remark-lint

Lets say example.md looks as follows:

* Hello

[World][]

Then, to run remark-lint on example.md:

remark example.md -u remark-lint
#
# Yields:
#
# example.md
#         1:3  warning  Incorrect list-item indent: add 2 spaces  list-item-indent
#    3:1-3:10  warning  Found reference to undefined definition   no-undefined-references
#
# ⚠ 2 warnings

See doc/rules.md for what those warnings are (and how to turn them off).

Programmatic

doc/api.md describes how to use remark-lints programatic interface in JavaScript.

Rules

doc/rules.md describes all available rules, what they check for, examples of markdown they warn for, and how to fix their warnings.

Configuring remark-lint

remark-lint is just a remark plug-in. Meaning, you can opt to configure using configuration files. Read more about these files (.remarkrc or package.json) in remarks docs.

An example .remarkrc file could look as follows:

{
  "plugins": {
    "lint": {
        "no-multiple-toplevel-headings": false,
        "maximum-line-length": 79,
        "emphasis-marker": "_",
        "strong-marker": "*"
    }
  },
  "settings": {
    "commonmark": true
  }
}

Where the object at plugins.lint is a map of ruleIds and their values. The object at settings determines how remark parses (and compiles) markdown code. Read more about the latter on remarks readme.

In addition, you can also provide configuration comments to turn a rule on or off inside a file (note that you cannot change what a setting, such as maximum-line-length, youre either enabling or disabling warnings).

The following file will warn twice for the duplicate headings:

# Hello

## Hello

### Hello

The following file will warn once (the second heading is ignored, but the third is re-enabled):

# Hello

<!--lint disable no-duplicate-headings-->

## Hello

<!--lint enable no-duplicate-headings-->

### Hello

Using remark to fix your markdown

One of remarks cool parts is that it compiles to very clean, and highly cross-vendor supported markdown. Itll ensure list items use a single bullet, emphasis and strong use a standard marker, and that your table fences are aligned.

remark should be able to fix most of your styling issues automatically, and I strongly suggest checking out how it can make your life easier 👍

Editor Integrations

Currently, remark-lint is integrated with Atom through linter-markdown.

Im very interested in more integrations. Let me know if I can help.

List of External Rules

License

MIT © Titus Wormer