Enable, disable, and ignore messages with remark.
Installation
npm:
npm install remark-message-control
Usage
var remark = require('remark');
var report = require('vfile-reporter');
var control = require('remark-message-control');
remark().use(warn).use(control, {name: 'foo'}).process([
'<!--foo ignore-->',
'',
'## Heading',
''
].join('\n'), function (err, file) {
console.log(report(err || file));
});
function warn() {
return function (tree, file) {
var message = file.message('Whoops!', tree.children[1]);
message.ruleId = 'thing';
message.source = 'foo';
};
}
Yields:
no issues found
API
Let comment markers control messages from a certain sources.
options
name
(string
) — Name of markers which can control the
message sources.known
(Array.<string>
, optional) — List of allowed
ruleId
s. When given, a warning is triggered when
someone tries to control an unknown rule.reset
(boolean
, default: false
) — Whether to treat
all messages as turned off initially.enable
(Array.<string>
, optional) — List of allowed
ruleId
s used when reset: true
to initially turn on.
By default (reset: false
), all rules are turned on.disable
(Array.<string>
, optional) — List of disallowed
ruleId
s used when reset: false
to initially turn off.sources
(string
or Array.<string>
, optional) — One or more
sources which markers by the specified name
can control.
Markers
disable
The “disable” marker turns off all messages of the given rule
identifiers. When without identifiers, all messages are turned
off.
For example, to turn off certain messages:
<!--lint disable list-item-bullet-indent strong-marker-->
* **foo**
A paragraph, and now another list.
* __bar__
enable
The “enable” marker turns on all messages of the given rule
identifiers. When without identifiers, all messages are turned
on.
For example, to enable certain messages:
<!--lint enable strong-marker-->
**foo** and __bar__.
ignore
The “ignore” marker turns off all messages of the given rule
identifiers for the duration of the following node. When without
identifiers, all messages are turned off.
After the end of the adjacent node, messages are allowed again.
For example, to turn off certain messages for the next node:
<!--lint ignore list-item-bullet-indent strong-marker-->
* **foo**
* __bar__
License
MIT © Titus Wormer