Skip to content

why-jay/remark-lint-sentence-newline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build status Coverage Status

remark-lint-sentence-newline

This is an remark-lint rule that enforces a newline after an end of sentence in Markdown.

How do we define an end of sentence? It is a ., ? or ! followed by a space.

<!-- Invalid -->

Hello, world. This sentence should be on a second line.

<!-- Valid -->

Hello, world.
This sentence should be on a second line.

Hello.<-There is no space after the dot, so this is not an error.

"Hello, world!" This sentence is not required to be on a second line because
!" is not an end of sentence.

Regarding that !" example: ! is a sentence end, but !" isn't. But you're free to add a newline after !", or wherever. This rule's job is to complain when you don't have a newline in certain cases. It never complains when you do have a newline.

Using the rule

Via .remarkrc

npm install -g remark
npm install -g remark-lint
npm install remark-lint-sentence-newline # local install!

Then, set up your .remarkrc:

{
  "plugins": {
    "remark-lint": {
      "external": ["remark-lint-sentence-newline"]
    }
  }
}

Now you can use the following command to run the lint:

remark --no-stdout xxx.md

Via CLI

The following works for remark-lint >= 2.2.0. Prior to 2.2.0, remark-lint did not load globally installed (a la npm install -g) lint rules, so the following wouldn't work.

npm install -g remark
npm install -g remark-lint
npm install -g remark-lint-sentence-newline # global install!
remark --no-stdout -u remark-lint="external:[\"remark-lint-sentence-newline\"]" xxx.md

Blacklisting

Earlier, we defined what an end of sentence is, but often there are exceptions to the rule. For example, we often use e.g. followed by a space. The second dot followed by a space is eligible as an end of sentence, but we don't want a newline in the middle of the following sentence for example:

Some open-source projects (e.g. remark-lint) are awesome

So we need a way to define exceptions. The blacklist option in your .remarkrc (or in your CLI option) allows you to achieve this.

{
  "plugins": {
    "remark-lint": {
      "external": ["remark-lint-sentence-newline"],
      "sentence-newline": {
        "blacklist": ["e.g."]
      }
    }
  }
}

About

Enforce a newline after an end of sentence in Markdown

Resources

Stars

Watchers

Forks

Packages

No packages published