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.! is, but not !".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
.remarkrc
Via npm install -g remarknpm install -g remark-lintnpm 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
npm install -g remarknpm install -g remark-lintnpm 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."] } } }}