A stylelint custom rule to check for a header comment (i.e., copyright notice).
APACHE-2.0 License
A stylelint custom rule to check for a header comment (i.e., copyright notice).
This rule will cause stylelint to throw an error if no header exists in the file or if autofix is enabled, it will prepend the header to the document.
yarn add -DW stylelint-header
npm install --dev stylelint-header
Type object
; Default {}
This is an object of key/value pairs that will be used to replace variables in the header template. For example, if you have a header template that looks like this:
(c) <%= YEAR %> <%= company %>
You can pass in an object like this:
{
templateVariables: {
company: "Adobe",
},
}
And the resulting header will look like this:
/*!
* (c) 2020 Adobe
*/
Notice that the YEAR
variable was replaced with the current year but not provided in the templateVariables object. This variable is automatically supported by the plugin.
The following variables are supported by default:
YEAR
: The current yearFILE_NAME
: The name of the file being lintedFILE_PATH
: The path to the file being lintedThis plugin is using lodash.template to replace variables in the header template. Please refer to the lodash documentation for more information on how to use this feature.
Type numeric
; Default 0.98
This is a number between 0 and 1 representing the percentage of allowed difference between a found comment in the file and the provided header. Uses string-similarity
to determine value.
Add it to your stylelint config plugins
array, then add header/header
to your rules, specifying a string or file location for the header template. To toggle the rule off, set the rule to null
.
To leverage the plugin with a hardcoded template string and a custom tolerance:
{
"plugins": ["stylelint-header"],
"rules": {
"header/header": [
"Copyright <%= YEAR %>. <%= company %>",
{
templateVariables: {
company: "Adobe",
},
nonMatchingTolerance: 0.8
}
],
},
};
To leverage the plugin with a path to a file containing the header template:
{
"plugins": ["stylelint-header"],
"rules": {
"header/header": ["./COPYRIGHT"],
},
};