Add a make target and Travis CI stage for linting docs

Nobody wants borked markdown syntax in docs
This commit is contained in:
Łukasz Mierzwa
2018-01-20 12:51:15 -08:00
parent 764ccc2147
commit 25e796f2ac
4 changed files with 155 additions and 1 deletions

View File

@@ -2,6 +2,16 @@ go_import_path: github.com/cloudflare/unsee
jobs:
include:
- stage: Lint docs
language: node_js
node_js: "8"
cache:
directories:
- node_modules
# install defaults to "npm install", which is done via make
install: []
script: make lint-docs
- stage: Test Go code
language: go
go: "1.9.2"

View File

@@ -113,8 +113,12 @@ lint-go: .build/deps-lint-go.ok
lint-js: .build/deps-build-node.ok
$(CURDIR)/node_modules/.bin/eslint --quiet assets/static/*.js
.PHONY: lint-docs
lint-docs: .build/deps-build-node.ok
$(CURDIR)/node_modules/.bin/markdownlint *.md docs
.PHONY: lint
lint: lint-go lint-js
lint: lint-go lint-js lint-docs
# Creates mock bindata_assetfs.go with source assets rather than webpack generated ones
.PHONY: mock-assets

139
package-lock.json generated
View File

@@ -1767,6 +1767,15 @@
"delayed-stream": "1.0.0"
}
},
"commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
"dev": true,
"requires": {
"graceful-readlink": "1.0.1"
}
},
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -2131,6 +2140,12 @@
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
"deep-extend": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
"dev": true
},
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -2296,6 +2311,12 @@
"tapable": "0.2.8"
}
},
"entities": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
"dev": true
},
"eonasdan-bootstrap-datetimepicker": {
"version": "4.17.47",
"resolved": "https://registry.npmjs.org/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47.tgz",
@@ -4073,6 +4094,12 @@
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
"graceful-readlink": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
"dev": true
},
"growly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -4392,6 +4419,12 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
},
"inquirer": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
@@ -5976,6 +6009,15 @@
"type-check": "0.3.2"
}
},
"linkify-it": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
"dev": true,
"requires": {
"uc.micro": "1.0.3"
}
},
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -6096,6 +6138,12 @@
"integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
"dev": true
},
"lodash.flatten": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.3.0.tgz",
"integrity": "sha1-5exO/ofvxZzlL5F8uovxYGNkac8=",
"dev": true
},
"lodash.isarguments": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
@@ -6155,6 +6203,12 @@
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"dev": true
},
"lodash.values": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.2.0.tgz",
"integrity": "sha1-kyYl99LJVLY9uJUlVUjztJ8SDpo=",
"dev": true
},
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -6228,6 +6282,59 @@
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"dev": true
},
"markdown-it": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz",
"integrity": "sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w==",
"dev": true,
"requires": {
"argparse": "1.0.9",
"entities": "1.1.1",
"linkify-it": "2.0.3",
"mdurl": "1.0.1",
"uc.micro": "1.0.3"
}
},
"markdownlint": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.6.4.tgz",
"integrity": "sha512-gcojwPjnWIE6qJh16veEN2k62rkJdXEznAaupbNiBpwHlMqFqh5SMA5/YPJO6/uEpwn2NJjSYkYk2OcIWvgkeQ==",
"dev": true,
"requires": {
"markdown-it": "8.3.2"
}
},
"markdownlint-cli": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.6.0.tgz",
"integrity": "sha512-gRkrvv2WrUTp/jbY+GZxyKPc10Bad5AmX0pnJWHX2eoaRDzFcrTGKTHzSXkyyy0fhBoXF7kgR/7FLvlz+agi3A==",
"dev": true,
"requires": {
"commander": "2.9.0",
"deep-extend": "0.4.2",
"glob": "7.0.6",
"lodash.flatten": "4.3.0",
"lodash.values": "4.2.0",
"markdownlint": "0.6.4",
"rc": "1.1.7"
},
"dependencies": {
"glob": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
"integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
"dev": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
}
}
},
"masonry-layout": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/masonry-layout/-/masonry-layout-4.2.0.tgz",
@@ -6265,6 +6372,12 @@
}
}
},
"mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
"dev": true
},
"mem": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
@@ -7742,6 +7855,26 @@
"resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.19.1.tgz",
"integrity": "sha512-E01uqSgP4JJIZNCaug2rV8g3JcIabLP09POLJ6wpM0oWftfnjqIWHYipUuscltCjQAxsPV3FFnMkW22/93qgig=="
},
"rc": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
"integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=",
"dev": true,
"requires": {
"deep-extend": "0.4.2",
"ini": "1.3.5",
"minimist": "1.2.0",
"strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
}
}
},
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -8970,6 +9103,12 @@
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
"uc.micro": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz",
"integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI=",
"dev": true
},
"uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",

View File

@@ -67,6 +67,7 @@
"jest": "^21.2.1",
"jquery-bridget": "^2.0.1",
"less": "^2.7.3",
"markdownlint-cli": "^0.6.0",
"mock-xhr": "^0.1.0",
"node-sass": "^4.6.0",
"resolve-url-loader": "^2.2.0",