mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2024-03-22 13:30:58 +08:00
commit
e2a11312c7
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
scripts/build
|
||||||
|
scripts/nodesjs/build
|
||||||
|
node_modules
|
||||||
|
_site
|
31
.travis.yml
Normal file
31
.travis.yml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# This is the configuration for Travis CI, a free github-integrated service that runs this script for each pull request (if configured)
|
||||||
|
|
||||||
|
# Be nice to travis, allow docker builds, must not use sudo below
|
||||||
|
sudo: false
|
||||||
|
|
||||||
|
# provides gcc, clang, make, scons, cmake
|
||||||
|
language: c++
|
||||||
|
|
||||||
|
# alternatives: gcc, clang, or both (as yaml list)
|
||||||
|
compiler: clang
|
||||||
|
|
||||||
|
install:
|
||||||
|
-
|
||||||
|
|
||||||
|
script:
|
||||||
|
- cd scripts; make -k
|
||||||
|
- cd ..
|
||||||
|
|
||||||
|
## find lines with tabs
|
||||||
|
# - rm -f CppCoreGuidelines.md.tabs
|
||||||
|
# - cat CppCoreGuidelines.md | nl -ba | sed -s 's/\(^[^\t]*\)\t/\1--/g' | grep $'\t' | sed -s 's/\t/\*\*\*\*/g' > CppCoreGuidelines.md.tabs
|
||||||
|
# - if [[ -s CppCoreGuidelines.md.tabs ]]; then echo 'Tabs found'; cat CppCoreGuidelines.md.tabs; false; fi;
|
||||||
|
|
||||||
|
## check references unique
|
||||||
|
- rm -f CppCoreGuidelines.md.uniq
|
||||||
|
- grep -oP '(?<=<a name=")[^\"]+' CppCoreGuidelines.md | uniq -d > CppCoreGuidelines.md.uniq
|
||||||
|
- if [[ -s CppCoreGuidelines.md.uniq ]]; then echo 'Found duplicate anchors:'; cat CppCoreGuidelines.md.uniq; false; fi;
|
||||||
|
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
email: false
|
65
scripts/Makefile
Normal file
65
scripts/Makefile
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# This Makefile is supposed to run on the Travis CI server and also locally
|
||||||
|
# it assumes the nodejs package managaer npm is installed
|
||||||
|
|
||||||
|
# make magic not needed
|
||||||
|
MAKEFLAGS += --no-builtin-rules
|
||||||
|
.SUFFIXES:
|
||||||
|
|
||||||
|
BUILD_DIR=build
|
||||||
|
SOURCEFILE = CppCoreGuidelines.md
|
||||||
|
SOURCEPATH = ../$(SOURCEFILE)
|
||||||
|
|
||||||
|
.PHONY: default
|
||||||
|
default: all
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: \
|
||||||
|
check-markdown \
|
||||||
|
check-references
|
||||||
|
|
||||||
|
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
#### clean: remove all files generated by the productive rules
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
|
#### distclean: remove all helper executables that may be downloaded by the Makefile
|
||||||
|
.PHONY: distclean
|
||||||
|
distclean:
|
||||||
|
rm -rf ./nodejs/node_modules
|
||||||
|
|
||||||
|
|
||||||
|
#### check markdown
|
||||||
|
|
||||||
|
## run remark markdown checker based on configuration in .remarkrc
|
||||||
|
.PHONY: check-markdown
|
||||||
|
check-markdown: nodejs/node_modules/remark nodejs/remark/.remarkrc $(SOURCEPATH) $(BUILD_DIR) Makefile
|
||||||
|
## run remark, paste output to temporary file
|
||||||
|
cd nodejs; ./node_modules/.bin/remark ../$(SOURCEPATH) --no-color -q --config-path ./remark/.remarkrc 1> ../$(BUILD_DIR)/$(SOURCEFILE).fixed --frail
|
||||||
|
|
||||||
|
## show a diff with changes remark suggests
|
||||||
|
.PHONY: show-diff
|
||||||
|
show-diff: nodejs/node_modules/remark nodejs/remark/.remarkrc $(SOURCEPATH) $(BUILD_DIR) Makefile
|
||||||
|
cd nodejs; ./node_modules/.bin/remark ../$(SOURCEPATH) --no-color -q --config-path ./remark/.remarkrc 1> ../$(BUILD_DIR)/$(SOURCEFILE).fixed
|
||||||
|
## compare temporary file to original, error and fail with message if differences exist
|
||||||
|
diff $(SOURCEPATH) $(BUILD_DIR)/$(SOURCEFILE).fixed -u3 || \
|
||||||
|
(echo "Error: remark found bad markdown syntax, see output above" && false)
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: check-references
|
||||||
|
check-references: $(SOURCEPATH) $(BUILD_DIR) Makefile
|
||||||
|
## check references unique
|
||||||
|
rm $(BUILD_DIR)/$(SOURCEFILE).uniq
|
||||||
|
grep -oP '(?<=<a name=")[^\"]+' $(SOURCEPATH) | uniq -d > $(BUILD_DIR)/$(SOURCEFILE).uniq
|
||||||
|
## check if output has data
|
||||||
|
if [ -s "build/CppCoreGuidelines.md.uniq" ]; then echo 'Found duplicate anchors:'; cat $(BUILD_DIR)/$(SOURCEFILE).uniq; false; fi
|
||||||
|
|
||||||
|
|
||||||
|
#### install npm modules
|
||||||
|
# install/update npm dependencies defined in file package.json
|
||||||
|
# requires npm (nodejs package manager)
|
||||||
|
nodejs/node_modules/%: nodejs/package.json
|
||||||
|
@cd nodejs; npm install
|
12
scripts/nodejs/package.json
Normal file
12
scripts/nodejs/package.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"name": "CppCoreGuidelinesCheck",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"description": "CppCoreGuidelines Check",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"remark": "^4.2.0",
|
||||||
|
"remark-lint": "^3.2.0",
|
||||||
|
"remark-lint-sentence-newline": "^2.0.0",
|
||||||
|
"remark-validate-links": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
31
scripts/nodejs/remark/.remarkrc
Normal file
31
scripts/nodejs/remark/.remarkrc
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"plugins": {
|
||||||
|
"remark-lint": {
|
||||||
|
"unordered-list-marker-style": "consistent",
|
||||||
|
"list-item-bullet-indent": false,
|
||||||
|
"list-item-indent": false,
|
||||||
|
"list-item-spacing": false,
|
||||||
|
"no-html": false,
|
||||||
|
"maximum-line-length": false,
|
||||||
|
"no-file-name-mixed-case": false,
|
||||||
|
"heading-increment": false,
|
||||||
|
"no-multiple-toplevel-headings": false,
|
||||||
|
"no-consecutive-blank-lines": false,
|
||||||
|
"maximum-line-length": 9000,
|
||||||
|
"maximum-heading-length": 300,
|
||||||
|
"no-heading-punctuation": false,
|
||||||
|
"no-duplicate-headings": false,
|
||||||
|
"emphasis-marker": "*",
|
||||||
|
"no-tabs": false,
|
||||||
|
"blockquote-indentation": false,
|
||||||
|
"strong-marker": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"bullet": "*",
|
||||||
|
"listItemIndent": "1",
|
||||||
|
"strong": "*",
|
||||||
|
"emphasis": "*"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user