mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
fix markdownlint-rules-grav-pages
This commit is contained in:
parent
36fed7866e
commit
b190487475
25 changed files with 15787 additions and 7 deletions
.markdownlint.json
markdownlint-rules-grav-pages
.eslintrc.gitignore.travis.ymlCHANGELOG.mdREADME.md
lib
package-lock.jsonpackage.jsonrules
tests
.eslintrc
assets
valid-images.spec.jsvalid-internal-links.spec.jsvalid-metadata-block.spec.js
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"extends": "markdownlint-rules-grav-pages",
|
"extends": "markdownlint-rules-grav-pages/rules/frontmatter.schema.json",
|
||||||
|
"default": true,
|
||||||
"code-block-style": {
|
"code-block-style": {
|
||||||
"style": "fenced"
|
"style": "fenced"
|
||||||
},
|
},
|
||||||
|
@ -15,6 +16,9 @@
|
||||||
"ul-style": {
|
"ul-style": {
|
||||||
"style": "dash"
|
"style": "dash"
|
||||||
},
|
},
|
||||||
|
"ul-indent": {
|
||||||
|
"indent": 2
|
||||||
|
},
|
||||||
"heading-style": {
|
"heading-style": {
|
||||||
"style": "atx"
|
"style": "atx"
|
||||||
},
|
},
|
||||||
|
@ -27,6 +31,10 @@
|
||||||
"ol-prefix": {
|
"ol-prefix": {
|
||||||
"style": "ordered"
|
"style": "ordered"
|
||||||
},
|
},
|
||||||
|
"no-trailing-punctuation": {
|
||||||
|
"punctuation": ".,;:"
|
||||||
|
},
|
||||||
|
"no-inline-html": false,
|
||||||
"fenced-code-language": {
|
"fenced-code-language": {
|
||||||
"allowed_languages": [
|
"allowed_languages": [
|
||||||
"bash",
|
"bash",
|
||||||
|
@ -50,7 +58,5 @@
|
||||||
"GitHub"
|
"GitHub"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"line-length": {
|
"line-length": false
|
||||||
"line_length": 180
|
|
||||||
}
|
|
||||||
}
|
}
|
10
markdownlint-rules-grav-pages/.eslintrc
Normal file
10
markdownlint-rules-grav-pages/.eslintrc
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"extends": "airbnb-base",
|
||||||
|
"rules": {
|
||||||
|
"no-empty": ["error", { "allowEmptyCatch": true }],
|
||||||
|
"prefer-rest-params": "off",
|
||||||
|
"prefer-spread": "off",
|
||||||
|
"strict": "off",
|
||||||
|
"indent": ["error", 4]
|
||||||
|
}
|
||||||
|
}
|
2
markdownlint-rules-grav-pages/.gitignore
vendored
Normal file
2
markdownlint-rules-grav-pages/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/node_modules/
|
||||||
|
/.idea
|
9
markdownlint-rules-grav-pages/.travis.yml
Normal file
9
markdownlint-rules-grav-pages/.travis.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- "8"
|
||||||
|
- "9"
|
||||||
|
- "10"
|
||||||
|
- "11"
|
||||||
|
script:
|
||||||
|
- npm run lint
|
||||||
|
- npm run test
|
79
markdownlint-rules-grav-pages/CHANGELOG.md
Normal file
79
markdownlint-rules-grav-pages/CHANGELOG.md
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
### [1.0.19](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.18...v1.0.19) (2022-05-18)
|
||||||
|
|
||||||
|
### [1.0.18](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.17...v1.0.18) (2022-02-08)
|
||||||
|
|
||||||
|
### [1.0.17](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.16...v1.0.17) (2022-02-03)
|
||||||
|
|
||||||
|
### [1.0.16](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.15...v1.0.16) (2020-03-15)
|
||||||
|
|
||||||
|
### [1.0.15](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.14...v1.0.15) (2019-12-30)
|
||||||
|
|
||||||
|
### [1.0.14](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.13...v1.0.14) (2019-07-11)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### [1.0.13](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.12...v1.0.13) (2019-05-10)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.12"></a>
|
||||||
|
### [1.0.12](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.11...v1.0.12) (2019-02-14)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.11"></a>
|
||||||
|
### [1.0.11](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.10...v1.0.11) (2018-12-04)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.10"></a>
|
||||||
|
### [1.0.10](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.9...v1.0.10) (2018-10-23)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.9"></a>
|
||||||
|
### [1.0.9](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.8...v1.0.9) (2018-10-03)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.8"></a>
|
||||||
|
### [1.0.8](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.7...v1.0.8) (2018-09-14)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.7"></a>
|
||||||
|
### [1.0.7](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.6...v1.0.7) (2018-08-28)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.6"></a>
|
||||||
|
### [1.0.6](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.5...v1.0.6) (2018-08-28)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.5"></a>
|
||||||
|
### [1.0.5](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.4...v1.0.5) (2018-08-20)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.4"></a>
|
||||||
|
### [1.0.4](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.3...v1.0.4) (2018-08-09)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.3"></a>
|
||||||
|
### [1.0.3](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.2...v1.0.3) (2018-08-09)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.2"></a>
|
||||||
|
### [1.0.2](https://github.com/syseleven/markdownlint-rules-grav-pages/compare/v1.0.1...v1.0.2) (2018-07-30)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.0.1"></a>
|
||||||
|
### 1.0.1 (2018-07-19)
|
|
@ -1,5 +1,44 @@
|
||||||
# Markdown Lint Rules for Grav Pages
|
# Markdown Lint Rules for Grav Pages
|
||||||
|
|
||||||
## source
|
[](https://travis-ci.org/syseleven/markdownlint-rules-grav-pages)
|
||||||
|
|
||||||
those files comes from <https://github.com/syseleven/markdownlint-rules-grav-pages>
|
This package contains additional linting rules for [markdownlint](https://github.com/DavidAnson/markdownlint)
|
||||||
|
that check if a Markdown file is a valid [Grav CMS](https://getgrav.org/) page.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
### valid-images
|
||||||
|
|
||||||
|
* Checks if a relatively referenced image is present.
|
||||||
|
|
||||||
|
### valid-internal-links
|
||||||
|
|
||||||
|
* Checks if a link to a another markdown file in the same repo is correct.
|
||||||
|
|
||||||
|
### valid-metadata-block
|
||||||
|
|
||||||
|
* Checks if a Frontmatter metadata block is present and valid.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
See https://github.com/DavidAnson/markdownlint/blob/master/doc/CustomRules.md
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
To lint all source files run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm run lint
|
||||||
|
```
|
||||||
|
|
||||||
|
To run all tests:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm run test
|
||||||
|
```
|
||||||
|
|
||||||
|
To release a new version, ensure that the checkout is clean, then run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm run release && git push --follow-tags origin master && npm publish
|
||||||
|
```
|
||||||
|
|
10
markdownlint-rules-grav-pages/lib/flat.js
Normal file
10
markdownlint-rules-grav-pages/lib/flat.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module.exports = function flat(array) {
|
||||||
|
let result = [];
|
||||||
|
array.forEach((a) => {
|
||||||
|
result.push(a);
|
||||||
|
if (Array.isArray(a.children)) {
|
||||||
|
result = result.concat(flat(a.children));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
};
|
15298
markdownlint-rules-grav-pages/package-lock.json
generated
Normal file
15298
markdownlint-rules-grav-pages/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
42
markdownlint-rules-grav-pages/package.json
Normal file
42
markdownlint-rules-grav-pages/package.json
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"name": "markdownlint-rules-grav-pages",
|
||||||
|
"version": "1.0.19",
|
||||||
|
"description": "Markdownlint rules for Grav Pages",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"repository": "https://github.com/syseleven/markdownlint-rules-grav-pages",
|
||||||
|
"author": "Bastian Hofmann <b.hofmann@syseleven.de>",
|
||||||
|
"scripts": {
|
||||||
|
"lint": "eslint .",
|
||||||
|
"test": "jest tests",
|
||||||
|
"release": "standard-version"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"markdownlint-rule"
|
||||||
|
],
|
||||||
|
"husky": {
|
||||||
|
"hooks": {
|
||||||
|
"pre-commit": "npm run lint && npm run test"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"jsonschema": "^1.2.5",
|
||||||
|
"markdown-it": "^12.3.2",
|
||||||
|
"markdownlint": "^0.25.1",
|
||||||
|
"markdownlint-cli": "^0.31.1",
|
||||||
|
"transliteration": "^2.1.8",
|
||||||
|
"yamljs": "^0.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint": "^6.8.0",
|
||||||
|
"eslint-config-airbnb-base": "^14.1.0",
|
||||||
|
"eslint-plugin-import": "^2.20.1",
|
||||||
|
"husky": "^4.2.3",
|
||||||
|
"jest": "^28.1.0",
|
||||||
|
"standard-version": "^9.5.0"
|
||||||
|
},
|
||||||
|
"jest": {
|
||||||
|
"testEnvironmentOptions": {
|
||||||
|
"url": "http://localhost"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
markdownlint-rules-grav-pages/tests/.eslintrc
Normal file
9
markdownlint-rules-grav-pages/tests/.eslintrc
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"globals": {
|
||||||
|
"test": true,
|
||||||
|
"expect": true,
|
||||||
|
"describe": true,
|
||||||
|
"beforeEach": true,
|
||||||
|
"afterEach": true
|
||||||
|
}
|
||||||
|
}
|
0
markdownlint-rules-grav-pages/tests/assets/test.image
Normal file
0
markdownlint-rules-grav-pages/tests/assets/test.image
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Valid Images Test
|
||||||
|
|
||||||
|
Valid image
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Valid relative image
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Invalid image
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Invalid relative image
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Valid External Anchor
|
||||||
|
|
||||||
|
Valid image with modifying grav query
|
||||||
|
|
||||||
|

|
|
@ -0,0 +1,46 @@
|
||||||
|
# Valid Internal Links Test
|
||||||
|
|
||||||
|
Valid path
|
||||||
|
|
||||||
|
[Text](test.md)
|
||||||
|
|
||||||
|
Valid relative path
|
||||||
|
|
||||||
|
[Text](../valid-images/test.md)
|
||||||
|
|
||||||
|
Invalid path
|
||||||
|
|
||||||
|
[Text](test.invalid)
|
||||||
|
|
||||||
|
Valid relative path
|
||||||
|
|
||||||
|
[Text](../valid-images/invalid.md)
|
||||||
|
|
||||||
|
No file
|
||||||
|
|
||||||
|
[Text](../valid-images)
|
||||||
|
|
||||||
|
As child: valid [Text](test.md) invalid [Text](test.invalid)
|
||||||
|
|
||||||
|
[Anchor](#valid-anchor)
|
||||||
|
[Anchor](#invalid-anchor)
|
||||||
|
|
||||||
|
## Valid Anchor
|
||||||
|
|
||||||
|
Valid relative path with anchor
|
||||||
|
|
||||||
|
[Text](../valid-images/test.md#valid-external-anchor)
|
||||||
|
|
||||||
|
Valid relative path with invalid anchor
|
||||||
|
|
||||||
|
[Text](../valid-images/test.md#invalid-external-anchor)
|
||||||
|
|
||||||
|
## Anchor with question?
|
||||||
|
|
||||||
|
[Anchor](#anchor-with-question)
|
||||||
|
|
||||||
|
## Anchor with umlaut üÜß
|
||||||
|
|
||||||
|
[Anchor](#anchor-with-umlaut-ueuess)
|
||||||
|
|
||||||
|
[LinkWithoutSrc]()
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: VeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitle
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: My Page
|
||||||
|
invalid: field
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: My Page
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content
|
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
title: My Page
|
||||||
|
taxonomy:
|
||||||
|
category:
|
||||||
|
- one
|
||||||
|
- two
|
||||||
|
tag:
|
||||||
|
- tag
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content
|
31
markdownlint-rules-grav-pages/tests/valid-images.spec.js
Normal file
31
markdownlint-rules-grav-pages/tests/valid-images.spec.js
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
const markdownlint = require('markdownlint');
|
||||||
|
const validImagesRule = require('../rules/valid-images');
|
||||||
|
|
||||||
|
test('validate images', () => {
|
||||||
|
const src = `${__dirname}/assets/valid-images/test.md`;
|
||||||
|
const results = markdownlint.sync({
|
||||||
|
customRules: validImagesRule,
|
||||||
|
files: [src],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results[src]).toEqual([
|
||||||
|
{
|
||||||
|
lineNumber: 13,
|
||||||
|
ruleNames: ['valid-images'],
|
||||||
|
ruleDescription: 'Rule that reports if a file has valid image references',
|
||||||
|
ruleInformation: null,
|
||||||
|
errorDetail: 'Image src \'test.invalid\' does not link to a valid file.',
|
||||||
|
errorContext: '',
|
||||||
|
errorRange: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
lineNumber: 17,
|
||||||
|
ruleNames: ['valid-images'],
|
||||||
|
ruleDescription: 'Rule that reports if a file has valid image references',
|
||||||
|
ruleInformation: null,
|
||||||
|
errorDetail: 'Image src \'../invalid/test.image\' does not link to a valid file.',
|
||||||
|
errorContext: '',
|
||||||
|
errorRange: null,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
});
|
|
@ -0,0 +1,89 @@
|
||||||
|
const markdownlint = require('markdownlint');
|
||||||
|
const validInternalLinks = require('../rules/valid-internal-links');
|
||||||
|
|
||||||
|
test('validate internal link', () => {
|
||||||
|
const src = `${__dirname}/assets/valid-internal-links/test.md`;
|
||||||
|
const results = markdownlint.sync({
|
||||||
|
customRules: validInternalLinks,
|
||||||
|
files: [src],
|
||||||
|
config: {
|
||||||
|
default: true,
|
||||||
|
'no-trailing-punctuation': {
|
||||||
|
punctuation: '.,;:!',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results[src]).toEqual([
|
||||||
|
{
|
||||||
|
errorContext: '[LinkWithoutSrc]()',
|
||||||
|
errorDetail: null,
|
||||||
|
errorRange: [1, 18],
|
||||||
|
lineNumber: 46,
|
||||||
|
ruleDescription: 'No empty links',
|
||||||
|
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.25.1/doc/Rules.md#md042',
|
||||||
|
ruleNames: [
|
||||||
|
'MD042',
|
||||||
|
'no-empty-links',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
lineNumber: 13,
|
||||||
|
ruleNames: ['valid-internal-links'],
|
||||||
|
ruleDescription: 'Rule that reports if a file has an internal link to an invalid file',
|
||||||
|
ruleInformation: null,
|
||||||
|
errorDetail: 'Relative link \'test.invalid\' does not link to a valid file.',
|
||||||
|
errorContext: '[Text](test.invalid)',
|
||||||
|
errorRange: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
lineNumber: 17,
|
||||||
|
ruleNames: ['valid-internal-links'],
|
||||||
|
ruleDescription: 'Rule that reports if a file has an internal link to an invalid file',
|
||||||
|
ruleInformation: null,
|
||||||
|
errorDetail: 'Relative link \'../valid-images/invalid.md\' does not link to a valid file.',
|
||||||
|
errorContext: '[Text](../valid-images/invalid.md)',
|
||||||
|
errorRange: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
lineNumber: 21,
|
||||||
|
ruleNames: ['valid-internal-links'],
|
||||||
|
ruleDescription: 'Rule that reports if a file has an internal link to an invalid file',
|
||||||
|
ruleInformation: null,
|
||||||
|
errorDetail: 'Relative link \'../valid-images\' does not link to a valid file.',
|
||||||
|
errorContext: '[Text](../valid-images)',
|
||||||
|
errorRange: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
lineNumber: 23,
|
||||||
|
ruleNames: ['valid-internal-links'],
|
||||||
|
ruleDescription: 'Rule that reports if a file has an internal link to an invalid file',
|
||||||
|
ruleInformation: null,
|
||||||
|
errorDetail: 'Relative link \'test.invalid\' does not link to a valid file.',
|
||||||
|
errorContext: 'As child: valid [Text](test.md) invalid [Text](test.invalid)',
|
||||||
|
errorRange: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: '[Anchor](#invalid-anchor)',
|
||||||
|
errorDetail: "Did not find matching heading for anchor '#invalid-anchor'",
|
||||||
|
errorRange: null,
|
||||||
|
lineNumber: 26,
|
||||||
|
ruleDescription: 'Rule that reports if a file has an internal link to an invalid file',
|
||||||
|
ruleInformation: null,
|
||||||
|
ruleNames: [
|
||||||
|
'valid-internal-links',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorContext: '[Text](../valid-images/test.md#invalid-external-anchor)',
|
||||||
|
errorDetail: "Did not find matching heading for anchor '#invalid-external-anchor'",
|
||||||
|
errorRange: null,
|
||||||
|
lineNumber: 36,
|
||||||
|
ruleDescription: 'Rule that reports if a file has an internal link to an invalid file',
|
||||||
|
ruleInformation: null,
|
||||||
|
ruleNames: [
|
||||||
|
'valid-internal-links',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
});
|
|
@ -0,0 +1,60 @@
|
||||||
|
const markdownlint = require('markdownlint');
|
||||||
|
const validMetadataBlockRule = require('../rules/valid-metadata-block');
|
||||||
|
|
||||||
|
// TODO add more test cases
|
||||||
|
|
||||||
|
test('validate valid minimum block', () => {
|
||||||
|
const src = `${__dirname}/assets/valid-metadata-block/valid-minimum-block.md`;
|
||||||
|
const results = markdownlint.sync({
|
||||||
|
customRules: validMetadataBlockRule,
|
||||||
|
files: [src],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results[src]).toEqual([]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('validate too long title', () => {
|
||||||
|
const src = `${__dirname}/assets/valid-metadata-block/invalid-too-long-title.md`;
|
||||||
|
const results = markdownlint.sync({
|
||||||
|
customRules: validMetadataBlockRule,
|
||||||
|
files: [src],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results[src]).toEqual([{
|
||||||
|
errorContext: 'title: VeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitleVeryLongTitle',
|
||||||
|
errorDetail: 'instance.title does not meet maximum length of 80',
|
||||||
|
errorRange: null,
|
||||||
|
lineNumber: 5,
|
||||||
|
ruleDescription: 'Rule that reports if a file does not have a valid grav metadata block',
|
||||||
|
ruleInformation: null,
|
||||||
|
ruleNames: ['valid-metadata-block'],
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('validate unrecognized property', () => {
|
||||||
|
const src = `${__dirname}/assets/valid-metadata-block/invalid-unrecognized-property.md`;
|
||||||
|
const results = markdownlint.sync({
|
||||||
|
customRules: validMetadataBlockRule,
|
||||||
|
files: [src],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results[src]).toEqual([{
|
||||||
|
errorContext: 'title: My Page\ninvalid: field',
|
||||||
|
errorDetail: 'instance additionalProperty "invalid" exists in instance when not allowed',
|
||||||
|
errorRange: null,
|
||||||
|
lineNumber: 6,
|
||||||
|
ruleDescription: 'Rule that reports if a file does not have a valid grav metadata block',
|
||||||
|
ruleInformation: null,
|
||||||
|
ruleNames: ['valid-metadata-block'],
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('validate valid taxonomy', () => {
|
||||||
|
const src = `${__dirname}/assets/valid-metadata-block/valid-taxonomy.md`;
|
||||||
|
const results = markdownlint.sync({
|
||||||
|
customRules: validMetadataBlockRule,
|
||||||
|
files: [src],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results[src]).toEqual([]);
|
||||||
|
});
|
Loading…
Add table
Reference in a new issue