Compare commits
4 Commits
main
...
engineApiC
Author | SHA1 | Date |
---|---|---|
Roland Tyler | 2b85372607 | 3 years ago |
rolandtyler | 9f5718149e | 3 years ago |
achraf17 | 27c600fb53 | 3 years ago |
Justin Florentine | b3d5b7e52b | 3 years ago |
@ -0,0 +1,204 @@ |
||||
--- |
||||
version: 2.1 |
||||
executors: |
||||
python_executor: |
||||
docker: |
||||
- image: circleci/python:3.7.4 |
||||
auth: |
||||
username: $DOCKER_USER_RO |
||||
password: $DOCKER_PASSWORD_RO |
||||
node_executor: |
||||
docker: |
||||
- image: circleci/node:lts-buster |
||||
auth: |
||||
username: $DOCKER_USER_RO |
||||
password: $DOCKER_PASSWORD_RO |
||||
shell_executor: |
||||
docker: |
||||
- image: circleci/buildpack-deps:buster-scm |
||||
auth: |
||||
username: $DOCKER_USER_RO |
||||
password: $DOCKER_PASSWORD_RO |
||||
|
||||
commands: |
||||
install_node: |
||||
description: "Install Node dependencies" |
||||
steps: |
||||
- restore_cache: |
||||
keys: |
||||
- deps-{{ checksum "package-lock.json" }} |
||||
- run: |
||||
name: update-npm |
||||
command: 'sudo npm install -g npm@latest' |
||||
- run: |
||||
name: Install dependencies |
||||
command: | |
||||
npm ci |
||||
|
||||
save_node_cache: |
||||
description: "Save Node dependencies" |
||||
steps: |
||||
- save_cache: |
||||
paths: |
||||
- ./node_modules |
||||
key: deps-{{ checksum "package-lock.json" }} |
||||
|
||||
jobs: |
||||
dco: |
||||
executor: shell_executor |
||||
steps: |
||||
- checkout |
||||
- run: |
||||
name: check |
||||
command: | |
||||
status=0 |
||||
while IFS= read -r -a line; do |
||||
my_array+=( "$line" ) |
||||
done < <( git branch -r | grep -v origin/HEAD ) |
||||
for branch in "${my_array[@]}" |
||||
do |
||||
branch=$(echo "$branch" | xargs) |
||||
echo "Checking commits in branch $branch for commits missing DCO..." |
||||
while read -r results; do |
||||
status=1 |
||||
commit_hash="$(echo "$results" | cut -d' ' -f1)" |
||||
>&2 echo "$commit_hash is missing Signed-off-by line." |
||||
done < <(git log "$branch" --no-merges --pretty="%H %ae" --grep 'Signed-off-by' --invert-grep -- ) |
||||
done |
||||
exit $status |
||||
|
||||
build: |
||||
executor: python_executor |
||||
steps: |
||||
- checkout |
||||
- restore_cache: |
||||
keys: |
||||
- deps-{{ checksum "CI/requirements.txt" }} |
||||
- run: |
||||
name: install dependencies |
||||
command: | |
||||
python3 -m venv venv |
||||
. venv/bin/activate |
||||
pip install -q -r CI/requirements.txt |
||||
- save_cache: |
||||
paths: |
||||
- ./venv |
||||
key: deps-{{ checksum "CI/requirements.txt" }} |
||||
- run: |
||||
name: Run MkDocs |
||||
command: | |
||||
. venv/bin/activate |
||||
mkdocs build -s |
||||
|
||||
vale: |
||||
executor: python_executor |
||||
steps: |
||||
- checkout |
||||
- run: |
||||
name: Install dependencies |
||||
command: | |
||||
curl -sfL https://install.goreleaser.com/github.com/ValeLint/vale.sh | sh -s v2.6.6 |
||||
- run: |
||||
name: Run Vale |
||||
command: | |
||||
./bin/vale --config ./CI/vale/.vale.ini --glob='*.{md}' . | tee ./vale.out |
||||
- store_artifacts: |
||||
path: ./vale.out |
||||
destination: ./vale.out |
||||
|
||||
linkchecker: |
||||
executor: node_executor |
||||
steps: |
||||
- checkout |
||||
- install_node |
||||
- run: |
||||
name: Run markdown link checker |
||||
command: | |
||||
npm run test:links |
||||
- save_node_cache |
||||
- store_artifacts: |
||||
path: ./linkchecker.out |
||||
destination: linkchecker.out |
||||
|
||||
markdownlint: |
||||
executor: node_executor |
||||
steps: |
||||
- checkout |
||||
- install_node |
||||
- run: |
||||
shell: /bin/bash #this is a non breaking command so it will always return success |
||||
name: Run Markdownlint info checks |
||||
command: | |
||||
npm run test:markdown:info |
||||
- run: |
||||
name: Run Markdownlint |
||||
command: | |
||||
npm run test:markdown |
||||
- save_node_cache |
||||
- store_artifacts: |
||||
path: ./markdownlint.out |
||||
destination: ./markdownlint.out |
||||
- store_artifacts: |
||||
path: ./markdownlint_info.out |
||||
destination: ./markdownlint_info.out |
||||
|
||||
repolint: |
||||
executor: node_executor |
||||
steps: |
||||
- checkout |
||||
- install_node |
||||
- run: |
||||
shell: /bin/bash #this is a non breaking command so it will always return success |
||||
name: Run repolinter |
||||
command: | |
||||
npm run lint:repo |
||||
- save_node_cache |
||||
|
||||
workflows: |
||||
version: 2 |
||||
default: |
||||
jobs: |
||||
- dco: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
- build: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
- vale: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
- markdownlint: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
- linkchecker: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
- repolint: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
|
||||
nightly: |
||||
triggers: |
||||
- schedule: # GMT |
||||
cron: "0 0 * * *" |
||||
filters: |
||||
branches: |
||||
only: |
||||
- main |
||||
jobs: |
||||
- linkchecker: |
||||
context: |
||||
- besu-dockerhub-ro |
||||
|
||||
weekly: |
||||
triggers: |
||||
- schedule: |
||||
cron: "0 0 * * 0" |
||||
filters: |
||||
branches: |
||||
only: |
||||
- main |
||||
jobs: |
||||
- repolint: |
||||
context: |
||||
- besu-dockerhub-ro |
@ -1,16 +0,0 @@ |
||||
[*] |
||||
charset=utf-8 |
||||
end_of_line=lf |
||||
trim_trailing_whitespace=true |
||||
insert_final_newline=true |
||||
indent_style=space |
||||
indent_size=2 |
||||
|
||||
[.editorconfig] |
||||
indent_style=space |
||||
indent_size=4 |
||||
|
||||
[{*.yml,*.yaml}] |
||||
indent_style=space |
||||
indent_size=2 |
||||
|
@ -0,0 +1,45 @@ |
||||
--- |
||||
name: Doc content issue report |
||||
about: Create a report to help us improve our content. |
||||
title: '' |
||||
|
||||
--- |
||||
|
||||
<!-- |
||||
**IMPORTANT: this is only for reporting documentation content issues.** |
||||
|
||||
- Report Besu software issues at https://github.com/hyperledger/besu/issues. |
||||
- Report doc tool issues using the "Doc tool bug report" template. |
||||
|
||||
**Before creating a bug**, have you tried using the search field in the documentation |
||||
to find what you're looking for? |
||||
--> |
||||
|
||||
## Describe the bug |
||||
|
||||
<!-- A clear and concise description of what the doc issue is. |
||||
|
||||
Check the issue type in the following list (insert X instead of space between [ ]): --> |
||||
|
||||
- [ ] Missing content |
||||
- [ ] Outdated content |
||||
- [ ] Wrong content |
||||
- [ ] Confusing or misleading content |
||||
- [ ] Other |
||||
|
||||
## The broken page |
||||
|
||||
[Paste the doc site page link here.] |
||||
|
||||
## Change suggestion |
||||
|
||||
<!-- If you know how to fix the content, don't hesitate to provide a suggestion. --> |
||||
|
||||
## Screenshots |
||||
|
||||
<!-- If applicable, don't hesitate to link an annotated screenshot |
||||
or a small demo video to help understanding the issue. --> |
||||
|
||||
## More context |
||||
|
||||
<!-- Add any other context about the problem here. --> |
@ -1,75 +0,0 @@ |
||||
--- |
||||
name: Doc content issue report |
||||
description: Create a report to help us improve our content. |
||||
title: "[Content] " |
||||
labels: ["triage"] |
||||
body: |
||||
- type: markdown |
||||
attributes: |
||||
value: | |
||||
IMPORTANT: This is only for reporting documentation content issues. |
||||
|
||||
Report Besu software issues at https://github.com/hyperledger/besu/issues. |
||||
Report documentation tool issues using the "Documentation tool bug report" template. |
||||
|
||||
Before creating an issue, make sure you've tried using the search field in the documentation to find what you're looking for. |
||||
|
||||
- type: textarea |
||||
id: description |
||||
attributes: |
||||
label: Describe the issue |
||||
description: Add a clear and concise description of what the documentation issue is and what you expected the content to be. |
||||
placeholder: Tell us what you see! |
||||
validations: |
||||
required: true |
||||
|
||||
- type: input |
||||
id: page-url |
||||
attributes: |
||||
label: What page has the issue? |
||||
description: Provide the URL of the page where you found this issue. |
||||
placeholder: https://besu.hyperledger.org/en/stable/... |
||||
validations: |
||||
required: true |
||||
|
||||
- type: dropdown |
||||
id: issue-type |
||||
attributes: |
||||
label: Issue type |
||||
description: Select the issue type. |
||||
multiple: false |
||||
options: |
||||
- Missing content |
||||
- Outdated content |
||||
- Wrong content |
||||
- Confusing or misleading content |
||||
- Other |
||||
validations: |
||||
required: true |
||||
|
||||
- type: textarea |
||||
id: change-suggestion |
||||
attributes: |
||||
label: Change suggestion |
||||
description: If you know how to fix the content, provide a suggestion. |
||||
validations: |
||||
required: false |
||||
|
||||
- type: textarea |
||||
attributes: |
||||
label: More context |
||||
description: | |
||||
Add any other context about the problem here, for example, screenshots or a small demo video. |
||||
|
||||
Tip: You can attach image and video files by copy and pasting or by selecting this area to highlight it and then dragging files in. |
||||
validations: |
||||
required: false |
||||
|
||||
- type: checkboxes |
||||
id: recommendations |
||||
attributes: |
||||
label: Besu documentation issue guidelines |
||||
description: By checking this box, you confirm that you read and followed the [Besu documentation issue guidelines](https://wiki.hyperledger.org/display/BESU/Raise+issues). |
||||
options: |
||||
- label: I read and followed this project's documentation guidelines. |
||||
required: true |
@ -0,0 +1,51 @@ |
||||
--- |
||||
name: Doc tool bug report |
||||
about: Create a report to help us improve our doc tools. |
||||
title: '' |
||||
labels: bug |
||||
assignees: 'NicolasMassart' |
||||
|
||||
--- |
||||
|
||||
<!-- **IMPORTANT: this is only for reporting documentation tools bugs.** |
||||
|
||||
- Report Besu software issues at https://github.com/hyperledger/besu/issues. |
||||
- Report doc content issues using the "Doc content issue report" template. |
||||
|
||||
**Before creating a bug**, did you try refreshing your browser cache for our site? |
||||
--> |
||||
|
||||
## Describe the bug |
||||
|
||||
<!-- A clear and concise description of what the doc bug is. --> |
||||
|
||||
## The broken page |
||||
|
||||
[Paste the doc site page link here.] |
||||
|
||||
## System (please complete the following information) |
||||
|
||||
- OS: [Windows, macOS, Linux] and its version. |
||||
- Browser: [Chrome, Firefox, Safari,…] and its version. |
||||
- Plugins: list plugins activated in your Browser. |
||||
|
||||
## To Reproduce |
||||
|
||||
Steps to reproduce the behavior: |
||||
1. Go to page '…' |
||||
2. Click on '…' |
||||
3. Scroll down to '…' |
||||
4. See error |
||||
|
||||
## Expected behavior |
||||
|
||||
<!-- A clear and concise description of what you expected to happen. --> |
||||
|
||||
## Screenshots |
||||
|
||||
<!-- If applicable, don't hesitate to link an annotated screenshot |
||||
or a small demo video to help understanding the issue. --> |
||||
|
||||
## More context |
||||
|
||||
<!-- Add any other context about the problem here. --> |
@ -1,115 +0,0 @@ |
||||
--- |
||||
name: Doc tool issue report |
||||
description: Create a report to help us improve our doc tools. |
||||
title: "[Doc tooling] " |
||||
labels: ["triage"] |
||||
assignees: 'NicolasMassart' |
||||
|
||||
body: |
||||
- type: markdown |
||||
attributes: |
||||
value: | |
||||
IMPORTANT: This is only for reporting documentation tool issues. |
||||
|
||||
Report Besu software issues at https://github.com/hyperledger/besu/issues. |
||||
Report documentation content issues using the "Documentation content issue report" template. |
||||
|
||||
Before creating an issue, make sure you've refreshed your browser cache for the site. |
||||
|
||||
- type: textarea |
||||
id: description |
||||
attributes: |
||||
label: Describe the issue |
||||
description: | |
||||
Add a clear and concise description of what the documentation tool issue is. |
||||
Include steps to reproduce the bug. |
||||
placeholder: | |
||||
- Step 1: Open the page |
||||
- Step 2: Select the button |
||||
- Step 3: Notice that feature X is not showing data Y |
||||
validations: |
||||
required: true |
||||
|
||||
- type: textarea |
||||
id: expected |
||||
attributes: |
||||
label: Describe the expected behavior |
||||
description: | |
||||
Add a clear and concise description of what you expected to happen. |
||||
placeholder: | |
||||
I expected feature X to show data Y when selecting the button. |
||||
validations: |
||||
required: true |
||||
|
||||
- type: input |
||||
id: page-url |
||||
attributes: |
||||
label: What page has this issue? |
||||
description: | |
||||
Provide the URL of the page where you experienced this issue. |
||||
If this issue is present on all the pages, simply point to the home page. |
||||
placeholder: https://besu.hyperledger.org/en/stable/... |
||||
validations: |
||||
required: true |
||||
|
||||
- type: input |
||||
id: version |
||||
attributes: |
||||
label: What version of the doc has this issue? |
||||
description: Provide the version of doc with the issue. |
||||
placeholder: latest, stable, 1.2.3, ... |
||||
validations: |
||||
required: true |
||||
|
||||
- type: dropdown |
||||
id: os |
||||
attributes: |
||||
label: Operating System |
||||
description: Select the operating system where you experienced the issue. |
||||
multiple: false |
||||
options: |
||||
- Windows |
||||
- macOS |
||||
- Linux |
||||
- Android |
||||
- iOS |
||||
- Other |
||||
- All of them |
||||
validations: |
||||
required: true |
||||
|
||||
- type: dropdown |
||||
id: browser |
||||
attributes: |
||||
label: Browser |
||||
description: Select the browser where you experienced the issue. |
||||
multiple: false |
||||
options: |
||||
- Chrome |
||||
- Edge |
||||
- Firefox |
||||
- Safari |
||||
- Brave |
||||
- Other |
||||
- All of them |
||||
validations: |
||||
required: true |
||||
|
||||
- type: textarea |
||||
attributes: |
||||
label: More context |
||||
description: | |
||||
Add any other context about the problem here, for example, screenshots or a small demo video. |
||||
|
||||
Tip: You can attach image and video files by copy and pasting or by selecting this area to highlight it and then dragging files in. |
||||
validations: |
||||
required: false |
||||
|
||||
- type: checkboxes |
||||
id: recommendations |
||||
attributes: |
||||
label: Besu documentation issue guidelines |
||||
description: By checking this box, you confirm that you read and followed the [Besu documentation issue guidelines](https://wiki.hyperledger.org/display/BESU/Raise+issues). |
||||
options: |
||||
- label: I read and followed this project's documentation guidelines. |
||||
required: true |
@ -1,13 +0,0 @@ |
||||
# To get started with Dependabot version updates, you'll need to specify which |
||||
# package ecosystems to update and where the package manifests are located. |
||||
# Please see the documentation for all configuration options: |
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates |
||||
|
||||
version: 2 |
||||
updates: |
||||
- package-ecosystem: "pip" # See documentation for possible values |
||||
directory: "/CI" # Location of package manifests |
||||
schedule: |
||||
interval: "weekly" |
||||
labels: |
||||
- "DocOps" |
@ -1,60 +1,66 @@ |
||||
## Pull request checklist |
||||
|
||||
Use the following list to make sure your PR fits the Besu documentation quality standard. |
||||
Use the following list to make sure your PR fits the Besu doc quality standard. |
||||
|
||||
### Before creating the pull request |
||||
|
||||
Make sure that: |
||||
|
||||
- [ ] [All commits in this PR are signed off for the DCO](https://wiki.hyperledger.org/display/BESU/DCO). |
||||
- [ ] You've read the [contribution guidelines](https://wiki.hyperledger.org/display/BESU/Documentation). |
||||
- [ ] You've [previewed your changes locally](https://wiki.hyperledger.org/display/BESU/Preview+the+documentation). |
||||
- [ ] [all commits in this PR are signed off for the DCO](https://wiki.hyperledger.org/display/BESU/DCO). |
||||
- [ ] you read the [contribution guidelines](https://wiki.hyperledger.org/display/BESU/Contributing+to+documentation). |
||||
- [ ] you have [tested your changes locally](https://wiki.hyperledger.org/display/BESU/MkDocs+And+Markdown+Guide#MkDocsAndMarkdownGuide-PreviewTheDocumentation) before submitting them to the community for review. |
||||
|
||||
### After creating your pull request and tests finished |
||||
|
||||
Make sure that: |
||||
|
||||
- [ ] you fixed all the issues raised by the tests, if any. |
||||
- [ ] you verified the rendering of your changes on [ReadTheDocs.org PR preview](https://wiki.hyperledger.org/display/BESU/MkDocs+And+Markdown+Guide#MkDocsAndMarkdownGuide-PreviewwithReadTheDocs) |
||||
and updated the testing link (see [Testing](#testing)). |
||||
|
||||
## Describe the change |
||||
|
||||
<!-- Add a clear and concise description of what your PR changes in the documentation. --> |
||||
<!-- A clear and concise description of what this PR changes in the documentation. --> |
||||
|
||||
## Issue fixed |
||||
|
||||
<!-- Link to the GitHub issue that your PR addresses. |
||||
|
||||
Add "fixes #{your issue number}" to close the issue automatically when the PR is merged. |
||||
<!-- Except for minor changes (typos, commas) it's required to have a Github issue linked to your |
||||
pull request. |
||||
|
||||
If your PR doesn't completely fix the issue, add "see #{your issue number}" to link to the issue |
||||
without automatically closing it. --> |
||||
Use the following to make Github close the issue automatically when merging the PR: |
||||
fixes #{your issue number} |
||||
If multiple issues are involved, use one line for each issue. |
||||
|
||||
## Impacted parts |
||||
If you don't want to close the issue, use: |
||||
see #{your issue number} --> |
||||
|
||||
<!-- Check the item from the following lists that your PR impacts. You can check multiple boxes. --> |
||||
## Impacted parts <!-- check as many boxes as needed --> |
||||
|
||||
For content changes: |
||||
### For content changes |
||||
|
||||
- [ ] Documentation content |
||||
- [ ] Documentation page organization |
||||
- [ ] Doc content |
||||
- [ ] Doc pages organisation |
||||
|
||||
For tool changes: |
||||
### For tools changes |
||||
|
||||
- [ ] Github Actions workflow |
||||
- [ ] Build and QA tools configuration (for example, lint rules or Vale style) |
||||
- [ ] CircleCI workflow |
||||
- [ ] Build and QA tools (lint, vale,…) |
||||
- [ ] MkDocs templates |
||||
- [ ] MkDocs configuration |
||||
- [ ] Python dependencies |
||||
- [ ] Node dependencies and JavaScript |
||||
- [ ] Read the Docs configuration |
||||
- [ ] ReadTheDocs configuration |
||||
- [ ] GitHub integration |
||||
|
||||
## After creating your PR and tests have finished |
||||
## Testing |
||||
|
||||
Make sure that: |
||||
|
||||
- [ ] You've fixed any issues raised by the tests. |
||||
- [ ] You've [previewed your changes on Read the Docs](https://wiki.hyperledger.org/display/BESU/Preview+the+documentation) |
||||
and added a [preview link](#preview). |
||||
|
||||
## Preview |
||||
<!-- Steps to follow to review and test your changes. |
||||
Add links to preview the pages changes here. |
||||
Link format is https://hyperledger-besu--{your PR number}.org.readthedocs.build/en/{your PR number}/ |
||||
Where {your PR number} must be replaced by the number of this PR, for instance 123 |
||||
--> |
||||
|
||||
<!-- Add the link to preview your changes on Read the Docs. |
||||
## Screenshots / recording |
||||
|
||||
The link format is "https://hyperledger-besu--{your PR number}.org.readthedocs.build/en/{your PR number}/", |
||||
where {your PR number} is replaced by the number of this PR. |
||||
--> |
||||
<!-- If it helps understanding your change, |
||||
don't hesitate to link an annotated screenshot or a small demo video. --> |
||||
|
@ -1,41 +0,0 @@ |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
--- |
||||
name: Build without insider |
||||
|
||||
on: [pull_request] |
||||
|
||||
concurrency: |
||||
group: build-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
check: |
||||
name: Run build |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- uses: actions/checkout@v3 |
||||
with: |
||||
# Full git history is needed to get a proper list of changed files within `super-linter` |
||||
fetch-depth: 0 |
||||
|
||||
- name: Install Python |
||||
uses: actions/setup-python@v4 |
||||
with: |
||||
python-version: '3.9' |
||||
cache: 'pip' # caching pip dependencies |
||||
|
||||
- name: Install dependencies |
||||
shell: sh |
||||
run: pip install -q -r CI/requirements-mkdocs-material.txt -r CI/requirements.txt |
||||
|
||||
- name: MkDocs Material non insider build |
||||
shell: sh |
||||
run: mkdocs build -s |
||||
|
||||
- name: Site artifacts |
||||
uses: actions/upload-artifact@v3 |
||||
with: |
||||
name: site-no-insider |
||||
path: site |
@ -1,34 +0,0 @@ |
||||
--- |
||||
name: Check file name case |
||||
|
||||
on: [pull_request] |
||||
|
||||
concurrency: |
||||
group: case-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
lint: |
||||
name: Check file name case |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- uses: actions/checkout@v3 |
||||
- name: Check pages file name case |
||||
shell: sh |
||||
run: | |
||||
echo "Testing file case in docs." |
||||
passed=true |
||||
for filename in $(find docs -name "*.md" | ( ! grep -P -v "^[[:lower:][:digit:]\/\-_]+\.md$" )) |
||||
do |
||||
echo "$filename" |
||||
echo "::error file=$filename ::File path must be only lowercase letters, digits, - (dash) and _ (underscore)" |
||||
passed=false |
||||
done; |
||||
if [ "$passed" = false ] ; then |
||||
echo "::error ::Some files path are incorrect. Check error annotations in the pull request." |
||||
echo "Correct example: my-folder/my-file-name_new2.md" |
||||
echo "Wrong example: My-Folder/MyFile-NAME.old.md" |
||||
exit 1 |
||||
fi |
@ -1,28 +0,0 @@ |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
--- |
||||
name: Verify links |
||||
|
||||
on: [pull_request] |
||||
|
||||
concurrency: |
||||
group: links-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
check: |
||||
name: Run check |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- name: Checkout tools repo |
||||
uses: actions/checkout@v3 |
||||
|
||||
- name: Test changed files links |
||||
uses: gaurav-nelson/github-action-markdown-link-check@v1 |
||||
with: |
||||
use-quiet-mode: yes |
||||
use-verbose-mode: yes |
||||
check-modified-files-only: yes |
||||
base-branch: main |
||||
config-file: ./CI/linkchecker/link_check_conf.json |
@ -1,36 +0,0 @@ |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
--- |
||||
name: Lint Code Base |
||||
|
||||
on: [pull_request] |
||||
|
||||
concurrency: |
||||
group: lint-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
check: |
||||
name: Run check |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- uses: actions/checkout@v3 |
||||
with: |
||||
# Full git history is needed to get a proper list of changed files within `super-linter` |
||||
fetch-depth: 0 |
||||
|
||||
- name: Lint Code Base |
||||
uses: github/super-linter/slim@v4 |
||||
env: |
||||
VALIDATE_ALL_CODEBASE: false |
||||
DEFAULT_BRANCH: main |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
LINTER_RULES_PATH: ./CI/lint |
||||
MARKDOWN_CONFIG_FILE: .markdown.yml |
||||
LOG_LEVEL: ERROR |
||||
CSS_FILE_NAME: .stylelintrc.yaml |
||||
FILTER_REGEX_EXCLUDE: (/CI/vale/vale_styles/*|LICENSE) |
||||
VALIDATE_JAVASCRIPT_STANDARD: false |
||||
VALIDATE_PYTHON: false |
||||
IGNORE_GITIGNORED_FILES: true |
@ -1,32 +0,0 @@ |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
--- |
||||
name: Nightly check |
||||
|
||||
on: |
||||
schedule: |
||||
# * is a special character in YAML so you have to quote this string |
||||
- cron: "0 0 * * *" |
||||
workflow_dispatch: {} |
||||
|
||||
concurrency: |
||||
group: nightly-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
check: |
||||
name: Run check |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- name: Checkout tools repo |
||||
uses: actions/checkout@v3 |
||||
|
||||
- name: Test all the links |
||||
uses: gaurav-nelson/github-action-markdown-link-check@v1 |
||||
with: |
||||
use-quiet-mode: yes |
||||
use-verbose-mode: yes |
||||
check-modified-files-only: no |
||||
base-branch: main |
||||
config-file: ./CI/linkchecker/link_check_conf.json |
@ -1,34 +0,0 @@ |
||||
--- |
||||
name: Verify spelling and guidelines |
||||
|
||||
on: [pull_request] |
||||
|
||||
concurrency: |
||||
group: spelling-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
env: |
||||
CONFIG: ./CI/vale/.vale.ini |
||||
|
||||
jobs: |
||||
check: |
||||
name: Run check |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- uses: actions/checkout@v3 |
||||
|
||||
- name: Sync Vale styles |
||||
run: | |
||||
docker run --rm \ |
||||
-v "$(pwd)":"/docs" \ |
||||
-w "/docs" \ |
||||
jdkato/vale --config "$CONFIG" sync |
||||
|
||||
- name: Run Vale check |
||||
run: | |
||||
docker run --rm \ |
||||
-v "$(pwd)":"/docs" \ |
||||
-w "/docs" \ |
||||
jdkato/vale --config "$CONFIG" --glob='!docs/assets/*' ./docs/ |
@ -1,29 +0,0 @@ |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
--- |
||||
name: Weekly check |
||||
|
||||
on: |
||||
schedule: |
||||
# * is a special character in YAML so you have to quote this string |
||||
- cron: "0 0 * * 0" |
||||
workflow_dispatch: {} |
||||
|
||||
concurrency: |
||||
group: weekly-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
check: |
||||
name: Run check |
||||
runs-on: ubuntu-latest |
||||
permissions: |
||||
contents: read |
||||
steps: |
||||
- name: Checkout tools repo |
||||
uses: actions/checkout@v3 |
||||
with: |
||||
fetch-depth: 0 |
||||
- name: Lint repository |
||||
uses: philips-labs/github-action-repolinter@2d7dc7e43a8d8d52db80b010434df2b8388b5817 |
||||
env: |
||||
CUSTOM_REPOLINT_FILE: https://github.com/hyperledger-labs/hyperledger-community-management-tools/raw/main/repo_structure/repolint.json |
@ -1,66 +0,0 @@ |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/private-networks/tutorials/ibft/index.md:generic-api-key:81 |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/private-networks/tutorials/ibft/index.md:generic-api-key:86 |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/private-networks/tutorials/ibft/index.md:generic-api-key:91 |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/private-networks/tutorials/qbft.md:generic-api-key:85 |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/private-networks/tutorials/qbft.md:generic-api-key:90 |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/private-networks/tutorials/qbft.md:generic-api-key:95 |
||||
b9e467f7cc5506b55c355377ab1cdc321e877608:docs/public-networks/reference/api/index.md:generic-api-key:992 |
||||
ccdb84d37aeedae7d9cd9040d03a322cb71133ad:docs/private-networks/tutorials/permissioning/onchain.md:generic-api-key:342 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/private-networks/tutorials/ibft/index.md:generic-api-key:81 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/private-networks/tutorials/ibft/index.md:generic-api-key:86 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/private-networks/tutorials/ibft/index.md:generic-api-key:91 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/private-networks/tutorials/qbft.md:generic-api-key:85 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/private-networks/tutorials/qbft.md:generic-api-key:90 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/private-networks/tutorials/qbft.md:generic-api-key:95 |
||||
eff7626024f1ffede485af83462bfa7400942c50:docs/public-networks/reference/api/index.md:generic-api-key:992 |
||||
33d9743ab3a7a6de405a6e73df639a3b31fdb34a:docs/private-networks/tutorials/permissioning/onchain.md:generic-api-key:343 |
||||
0664558481b5998b6a48ffbd073fb696c291430b:docs/Tutorials/Developer-Quickstart.md:generic-api-key:444 |
||||
4b187749465ea4649f249915fc89e8d1396826fd:docs/HowTo/Interact/APIs/Authentication.md:generic-api-key:220 |
||||
d7291bec68c37df5c81c69a420d0581741e1b410:docs/Tutorials/Permissioning/Create-Permissioned-Network.md:generic-api-key:346 |
||||
6307f2ad01351a41e17684b8b5327fb3418029cf:docs/Tutorials/Contracts/Deploying-Contracts.md:generic-api-key:91 |
||||
73828ccb7d26fe2791a32f633800c25005b3bdc2:docs/Tutorials/Private-Network/Create-QBFT-Network.md:generic-api-key:86 |
||||
73828ccb7d26fe2791a32f633800c25005b3bdc2:docs/Tutorials/Private-Network/Create-QBFT-Network.md:generic-api-key:91 |
||||
73828ccb7d26fe2791a32f633800c25005b3bdc2:docs/Tutorials/Private-Network/Create-QBFT-Network.md:generic-api-key:96 |
||||
1fc6985e0c1f348a47af0df79e5493118ec2ddca:docs/Tutorials/Contracts/Account-Funds-Transfers.md:generic-api-key:33 |
||||
1fc6985e0c1f348a47af0df79e5493118ec2ddca:docs/Tutorials/Contracts/Account-Funds-Transfers.md:generic-api-key:101 |
||||
1fc6985e0c1f348a47af0df79e5493118ec2ddca:docs/Tutorials/Contracts/Deploying-Contracts.md:generic-api-key:77 |
||||
f362855c75de52cff7abbedc86066c4f9f3f9452:docs/Reference/API-Methods.md:generic-api-key:844 |
||||
f362855c75de52cff7abbedc86066c4f9f3f9452:docs/Reference/API-Methods.md:generic-api-key:1180 |
||||
f362855c75de52cff7abbedc86066c4f9f3f9452:docs/Reference/API-Methods.md:generic-api-key:3457 |
||||
f8f25358b437025ed54e959a119cfc5665835b8f:docs/Reference/API-Methods.md:generic-api-key:2834 |
||||
f8f25358b437025ed54e959a119cfc5665835b8f:docs/Reference/API-Methods.md:generic-api-key:2947 |
||||
f8f25358b437025ed54e959a119cfc5665835b8f:docs/Reference/API-Methods.md:generic-api-key:3048 |
||||
10a5072f64d7c3a928161337336be600f21d609d:docs/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md:generic-api-key:102 |
||||
10a5072f64d7c3a928161337336be600f21d609d:docs/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md:generic-api-key:107 |
||||
10a5072f64d7c3a928161337336be600f21d609d:docs/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md:generic-api-key:112 |
||||
5704d47b9c12c9acd3e054d713fbae790b31bd91:docs/Reference/methods.md:generic-api-key:4146 |
||||
5704d47b9c12c9acd3e054d713fbae790b31bd91:docs/Reference/methods.md:generic-api-key:4364 |
||||
5bd8b42f3d7e5e9ea4bd3f9e7d7d202225f234cd:docs/HowTo/Interact/APIs/Authentication.md:generic-api-key:170 |
||||
a5461b01f3675ae62a8c83715c23dc6065a9657b:docs/HowTo/Interact/APIs/Authentication.md:generic-api-key:170 |
||||
e600f7708709572f81a8835c80aa4cfc08b75384:docs/HowTo/Interact/APIs/Authentication.md:generic-api-key:170 |
||||
7800037d514057d55c1bac6d1a52b487ebd71152:docs/HowTo/Interact/APIs/Authentication.md:jwt:119 |
||||
7800037d514057d55c1bac6d1a52b487ebd71152:docs/HowTo/Interact/APIs/Authentication.md:jwt:220 |
||||
7800037d514057d55c1bac6d1a52b487ebd71152:docs/Reference/API-Methods.md:generic-api-key:3912 |
||||
7800037d514057d55c1bac6d1a52b487ebd71152:docs/Reference/API-Methods.md:generic-api-key:3967 |
||||
a97689b945d2065456df4cfc77bb6fc36f0cc753:docs/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md:generic-api-key:92 |
||||
2443a3318818539f273558e225fdcda2ecb3717d:docs/Reference/API-Methods.md:generic-api-key:3017 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Pantheon-API/Authentication.md:jwt:85 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Pantheon-API/Authentication.md:jwt:110 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-IBFT-Network.md:generic-api-key:78 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-IBFT-Network.md:generic-api-key:83 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-IBFT-Network.md:generic-api-key:88 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Permissioned-Network.md:generic-api-key:85 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Permissioned-Network.md:generic-api-key:90 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Permissioned-Network.md:generic-api-key:95 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Permissioned-Network.md:generic-api-key:295 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Permissioned-Network.md:generic-api-key:307 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Private-Clique-Network.md:generic-api-key:81 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Private-Clique-Network.md:generic-api-key:86 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Private-Clique-Network.md:generic-api-key:91 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Private-Network.md:generic-api-key:63 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Create-Private-Network.md:generic-api-key:68 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Tutorials/Private-Network-Quickstart.md:generic-api-key:338 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/global/test_accounts.md:generic-api-key:8 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/global/test_accounts.md:generic-api-key:13 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/global/test_accounts.md:generic-api-key:18 |
||||
9f067a02a5efa7110da117e80e8ea58d26847e70:docs/Reference/Pantheon-API-Methods.md:generic-api-key:2884 |
@ -1,20 +0,0 @@ |
||||
# .readthedocs.yaml |
||||
# Read the Docs configuration file |
||||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details |
||||
|
||||
# Required |
||||
version: 2 |
||||
|
||||
build: |
||||
os: ubuntu-22.04 |
||||
tools: |
||||
python: "3.9" |
||||
|
||||
python: |
||||
install: |
||||
- requirements: CI/requirements-mkdocs-material-insider.txt |
||||
- requirements: CI/requirements.txt |
||||
|
||||
mkdocs: |
||||
configuration: mkdocs-insider.yml |
||||
fail_on_warning: true |
@ -1,25 +0,0 @@ |
||||
{ |
||||
"tagname-lowercase": true, |
||||
"attr-lowercase": true, |
||||
"attr-value-double-quotes": true, |
||||
"attr-value-not-empty": false, |
||||
"attr-no-duplication": false, |
||||
"doctype-first": false, |
||||
"tag-pair": true, |
||||
"tag-self-close": false, |
||||
"spec-char-escape": true, |
||||
"id-unique": true, |
||||
"src-not-empty": true, |
||||
"title-require": true, |
||||
"alt-require": true, |
||||
"doctype-html5": true, |
||||
"id-class-value": "false", |
||||
"style-disabled": false, |
||||
"inline-style-disabled": false, |
||||
"inline-script-disabled": false, |
||||
"space-tab-mixed-disabled": "space", |
||||
"id-class-ad-disabled": false, |
||||
"href-abs-or-rel": false, |
||||
"attr-unsafe-chars": true, |
||||
"head-script-disabled": true |
||||
} |
@ -1,3 +0,0 @@ |
||||
{ |
||||
"threshold": 20 |
||||
} |
@ -1,41 +0,0 @@ |
||||
--- |
||||
########################### |
||||
########################### |
||||
## Markdown Linter rules ## |
||||
########################### |
||||
########################### |
||||
|
||||
# Linter rules doc: |
||||
# - https://github.com/DavidAnson/markdownlint |
||||
# |
||||
# Note: |
||||
# To comment out a single error: |
||||
# <!-- markdownlint-disable --> |
||||
# any violations you want |
||||
# <!-- markdownlint-restore --> |
||||
# |
||||
default: true |
||||
no-trailing-punctuation: |
||||
punctuation: '.,;:!' |
||||
ul-indent: |
||||
indent: 4 |
||||
|
||||
no-bare-urls: false |
||||
code-block-style: false |
||||
line-length: false |
||||
|
||||
# excluded rule for as kramdown has a bug. |
||||
# see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 |
||||
# these are now in info style. |
||||
# to be put back in error style once bug fixed. |
||||
single-h1: false |
||||
no-space-in-code: false |
||||
no-duplicate-header: false |
||||
first-line-h1: false |
||||
|
||||
# Because I hate HTML but sometimes a table is hard to format in MD |
||||
# now in info style. |
||||
no-inline-html: false |
||||
|
||||
# MD053 code bloc are wrongly recognised as indented making links ignored in admonitions |
||||
link-image-reference-definitions: false |
@ -1,20 +0,0 @@ |
||||
--- |
||||
########################## |
||||
## OpenAPI Linter rules ## |
||||
########################## |
||||
|
||||
extends: |
||||
- spectral:oas |
||||
|
||||
#rules: |
||||
# operation-tag-defined: off |
||||
# operation-operationId: off |
||||
# operation-description: off |
||||
# operation-tags: off |
||||
# oas2-valid-schema-example: off |
||||
# oas2-api-host: off |
||||
# oas2-operation-security-defined: off |
||||
# oas2-api-schemes: off |
||||
# info-contact : off |
||||
|
||||
|
@ -1,5 +0,0 @@ |
||||
--- |
||||
rules: |
||||
# disable selector-class-pattern as we mostly use class names from MkDOcs Material and they don't |
||||
# match the default linter pattern (kebab case) and can be overrides of generated selectors. |
||||
selector-class-pattern: null |
@ -1,7 +0,0 @@ |
||||
{ |
||||
"rules": { |
||||
"terminology": { |
||||
"severity" : "warning" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
default: true |
||||
no-trailing-punctuation: |
||||
punctuation: '.,;:!' |
||||
ul-indent: |
||||
indent: 4 |
||||
|
||||
no-bare-urls: false |
||||
code-block-style: false |
||||
line-length: false |
||||
|
||||
# excluded rule for as kramdown has a bug. |
||||
# see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 |
||||
# these are now in info style. |
||||
# to be put back in error style once bug fixed. |
||||
single-h1: false |
||||
no-space-in-code: false |
||||
no-duplicate-header: false |
||||
first-line-h1: false |
||||
|
||||
# Because I hate HTML but sometimes a table is hard to format in MD |
||||
# now in info style. |
||||
no-inline-html: false |
||||
|
@ -0,0 +1,20 @@ |
||||
line-length: |
||||
line_length: 100 |
||||
code_blocks: false |
||||
tables: false |
||||
|
||||
no-bare-urls: false |
||||
|
||||
# excluded rule for error as kramdown has a bug. |
||||
# see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 |
||||
# these are now in this info style. |
||||
# to be put back in error style once bug fixed. |
||||
single-h1: true |
||||
no-space-in-code: true |
||||
no-duplicate-header: |
||||
allow_different_nesting: true |
||||
first-line-h1: true |
||||
|
||||
# Because I hate HTML but sometimes a table is hard to format in MD |
||||
no-inline-html: true |
||||
|
@ -1 +0,0 @@ |
||||
git+https://${MKDOCS_GITHUB_USER}:${MKDOCS_GITHUB_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git@8.5.6-insiders-4.25.4 |
@ -1,2 +0,0 @@ |
||||
mkdocs-material==8.5.11 |
||||
|
@ -1,8 +1,11 @@ |
||||
markdown-fenced-code-tabs==1.0.5 |
||||
markdown-include==0.8.0 |
||||
mkdocs-markdownextradata-plugin==0.2.5 |
||||
mkdocs==1.1.2 |
||||
mkdocs-material==6.1.7 |
||||
Markdown==3.2.1 |
||||
markdown-fenced-code-tabs==1.0.3 |
||||
markdown-include==0.5.1 |
||||
mkdocs-markdownextradata-plugin==0.1.3 |
||||
mkdocs-exclude==1.0.2 |
||||
mkdocs-redirects==1.2.0 |
||||
mkdocs-git-revision-date-localized-plugin==1.1.0 |
||||
mkdocs-minify-plugin==0.6.2 |
||||
plantuml-markdown==3.7.3 |
||||
mkdocs-redirects==1.0.0 |
||||
mkdocs-git-revision-date-localized-plugin==0.5.0 |
||||
# mkdocs-minify-plugin==0.3.0 |
||||
plantuml-markdown==3.3.0 |
||||
|
@ -0,0 +1,36 @@ |
||||
# Doc quality testing scripts |
||||
|
||||
Use the scripts in this directory to run CircleCI jobs on your local machine before pushing your |
||||
work to the GitHub repositories. |
||||
|
||||
## Requirements |
||||
|
||||
* Install the [Circle CI local CLI](https://circleci.com/docs/2.0/local-cli/) |
||||
* Install [Docker](https://docs.docker.com/install/). |
||||
|
||||
## Running the scripts |
||||
|
||||
Go to the `besu-doc` project root directory and run one of the following scripts: |
||||
|
||||
* `CI/scripts/test_build.sh` runs the doc build with MkDocs. |
||||
* `CI/scripts/test_guidelines.sh` tests the doc with Vale and our custom rules. |
||||
* `CI/scripts/test_links.sh` tests the internal and external links in the doc. If a link is |
||||
incorrect or the targeted Web page is unavailable (for external sites), the test will fail and |
||||
display the faulty link. |
||||
* `CI/scripts/test_markdown_syntax.sh` tests the Markdown syntax for issues. Sometimes they are not visible |
||||
but making sure the markdown is correct helps to make it readable and bug free. |
||||
* `CI/scripts/test_all.sh` runs all the tests in one pass. |
||||
|
||||
## Known issues |
||||
|
||||
You will notice messages like: |
||||
|
||||
```bash |
||||
====>> Saving Cache |
||||
Error: |
||||
Skipping cache - error checking storage: not supported |
||||
|
||||
Step failed |
||||
``` |
||||
|
||||
This is normal. Circle CI doesn't support some of the features the server version does. Ignore them. |
@ -0,0 +1,29 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
set -o pipefail |
||||
|
||||
if [ -z "$1" ] |
||||
then |
||||
echo "No job mame supplied. See .circleci/config.yml for job names." |
||||
exit 1 |
||||
else |
||||
JOB=$1 |
||||
fi |
||||
|
||||
exec < /dev/tty |
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
||||
LOGFILE=${DIR}/${JOB}.log |
||||
|
||||
echo -e "\rRunning ${JOB} test job, please wait.\r" |
||||
|
||||
circleci config process .circleci/config.yml > .circleci/process.yml && circleci local execute -c .circleci/process.yml --job $JOB > ${LOGFILE} 2>&1 |
||||
|
||||
if [ "$?" -eq "0" ] |
||||
then |
||||
echo -e "\r✓ ${JOB} test job succeeded\r" |
||||
exit 0 |
||||
else |
||||
echo -e "\r✖ ${JOB} test job failed. See ${LOGFILE}" |
||||
exit 1 |
||||
fi |
@ -0,0 +1,16 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
echo -e "\r=================================" |
||||
echo -e "\rRunning all tests jobs, please wait." |
||||
echo -e "\r=================================" |
||||
|
||||
CI/scripts/run_job.sh build & buildPID=$! |
||||
CI/scripts/run_job.sh vale & guidelinesPID=$! |
||||
CI/scripts/run_job.sh linkchecker & linksPID=$! |
||||
CI/scripts/run_job.sh markdownlint & syntaxPID=$! |
||||
|
||||
wait $buildPID $linksPID $syntaxPID $guidelinesPID |
||||
|
||||
echo -e "\r=================================" |
||||
echo -e "\rAll tests jobs completed." |
||||
echo -e "\r=================================" |
@ -0,0 +1,3 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CI/scripts/run_job.sh build |
@ -0,0 +1,3 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CI/scripts/run_job.sh vale |
@ -0,0 +1,3 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CI/scripts/run_job.sh linkchecker |
@ -0,0 +1,3 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CI/scripts/run_job.sh markdownlint |
@ -0,0 +1,9 @@ |
||||
extends: existence |
||||
message: Use 'AM' or 'PM' (preceded by a space). |
||||
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms |
||||
level: error |
||||
nonword: true |
||||
tokens: |
||||
- '\d{1,2}[AP]M' |
||||
- '\d{1,2} ?[ap]m' |
||||
- '\d{1,2} ?[aApP]\.[mM]\.' |
@ -0,0 +1,25 @@ |
||||
extends: existence |
||||
message: "Don't use language (such as '%s') that defines people by their disability." |
||||
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms |
||||
level: suggestion |
||||
ignorecase: true |
||||
tokens: |
||||
- a victim of |
||||
- able-bodied |
||||
- affected by |
||||
- an epileptic |
||||
- crippled |
||||
- disabled |
||||
- dumb |
||||
- handicapped |
||||
- handicaps |
||||
- healthy |
||||
- lame |
||||
- maimed |
||||
- missing a limb |
||||
- mute |
||||
- normal |
||||
- sight-impaired |
||||
- stricken with |
||||
- suffers from |
||||
- vision-impaired |
@ -0,0 +1,64 @@ |
||||
extends: conditional |
||||
message: "'%s' has no definition." |
||||
link: https://docs.microsoft.com/en-us/style-guide/acronyms |
||||
level: suggestion |
||||
ignorecase: false |
||||
# Ensures that the existence of 'first' implies the existence of 'second'. |
||||
first: '\b([A-Z]{3,5})\b' |
||||
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)' |
||||
# ... with the exception of these: |
||||
exceptions: |
||||
- API |
||||
- ASP |
||||
- CLI |
||||
- CPU |
||||
- CSS |
||||
- CSV |
||||
- DEBUG |
||||
- DOM |
||||
- DPI |
||||
- FAQ |
||||
- GCC |
||||
- GDB |
||||
- GET |
||||
- GPU |
||||
- GTK |
||||
- GUI |
||||
- HTML |
||||
- HTTP |
||||
- HTTPS |
||||
- IDE |
||||
- JAR |
||||
- JSON |
||||
- JSX |
||||
- LESS |
||||
- LLDB |
||||
- NET |
||||
- NOTE |
||||
- NVDA |
||||
- OSS |
||||
- PATH |
||||
- PDF |
||||
- PHP |
||||
- POST |
||||
- RAM |
||||
- REPL |
||||
- RSA |
||||
- SCM |
||||
- SCSS |
||||
- SDK |
||||
- SQL |
||||
- SSH |
||||
- SSL |
||||
- SVG |
||||
- TBD |
||||
- TCP |
||||
- TODO |
||||
- URI |
||||
- URL |
||||
- USB |
||||
- UTF |
||||
- XML |
||||
- XSS |
||||
- YAML |
||||
- ZIP |
@ -0,0 +1,270 @@ |
||||
extends: existence |
||||
message: "Consider removing '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences |
||||
ignorecase: true |
||||
level: warning |
||||
action: |
||||
name: remove |
||||
tokens: |
||||
- abnormally |
||||
- absentmindedly |
||||
- accidentally |
||||
- adventurously |
||||
- anxiously |
||||
- arrogantly |
||||
- awkwardly |
||||
- bashfully |
||||
- beautifully |
||||
- bitterly |
||||
- bleakly |
||||
- blindly |
||||
- blissfully |
||||
- boastfully |
||||
- boldly |
||||
- bravely |
||||
- briefly |
||||
- brightly |
||||
- briskly |
||||
- broadly |
||||
- busily |
||||
- calmly |
||||
- carefully |
||||
- carelessly |
||||
- cautiously |
||||
- cheerfully |
||||
- cleverly |
||||
- closely |
||||
- coaxingly |
||||
- colorfully |
||||
- continually |
||||
- coolly |
||||
- courageously |
||||
- crossly |
||||
- cruelly |
||||
- curiously |
||||
- daintily |
||||
- dearly |
||||
- deceivingly |
||||
- deeply |
||||
- defiantly |
||||
- deliberately |
||||
- delightfully |
||||
- diligently |
||||
- dimly |
||||
- doubtfully |
||||
- dreamily |
||||
- easily |
||||
- elegantly |
||||
- energetically |
||||
- enormously |
||||
- enthusiastically |
||||
- excitedly |
||||
- extremely |
||||
- fairly |
||||
- faithfully |
||||
- famously |
||||
- ferociously |
||||
- fervently |
||||
- fiercely |
||||
- fondly |
||||
- foolishly |
||||
- fortunately |
||||
- frankly |
||||
- frantically |
||||
- freely |
||||
- frenetically |
||||
- frightfully |
||||
- furiously |
||||
- generally |
||||
- generously |
||||
- gently |
||||
- gladly |
||||
- gleefully |
||||
- gracefully |
||||
- gratefully |
||||
- greatly |
||||
- greedily |
||||
- happily |
||||
- hastily |
||||
- healthily |
||||
- heavily |
||||
- helplessly |
||||
- honestly |
||||
- hopelessly |
||||
- hungrily |
||||
- innocently |
||||
- inquisitively |
||||
- intensely |
||||
- intently |
||||
- interestingly |
||||
- inwardly |
||||
- irritably |
||||
- jaggedly |
||||
- jealously |
||||
- jovially |
||||
- joyfully |
||||
- joyously |
||||
- jubilantly |
||||
- judgmentally |
||||
- justly |
||||
- keenly |
||||
- kiddingly |
||||
- kindheartedly |
||||
- knavishly |
||||
- knowingly |
||||
- knowledgeably |
||||
- lazily |
||||
- lightly |
||||
- limply |
||||
- lively |
||||
- loftily |
||||
- longingly |
||||
- loosely |
||||
- loudly |
||||
- lovingly |
||||
- loyally |
||||
- madly |
||||
- majestically |
||||
- meaningfully |
||||
- mechanically |
||||
- merrily |
||||
- miserably |
||||
- mockingly |
||||
- mortally |
||||
- mysteriously |
||||
- naturally |
||||
- nearly |
||||
- neatly |
||||
- nervously |
||||
- nicely |
||||
- noisily |
||||
- obediently |
||||
- obnoxiously |
||||
- oddly |
||||
- offensively |
||||
- optimistically |
||||
- overconfidently |
||||
- painfully |
||||
- partially |
||||
- patiently |
||||
- perfectly |
||||
- playfully |
||||
- politely |
||||
- poorly |
||||
- positively |
||||
- potentially |
||||
- powerfully |
||||
- promptly |
||||
- properly |
||||
- punctually |
||||
- quaintly |
||||
- queasily |
||||
- queerly |
||||
- questionably |
||||
- quickly |
||||
- quietly |
||||
- quirkily |
||||
- quizzically |
||||
- randomly |
||||
- rapidly |
||||
- rarely |
||||
- readily |
||||
- really |
||||
- reassuringly |
||||
- recklessly |
||||
- regularly |
||||
- reluctantly |
||||
- repeatedly |
||||
- reproachfully |
||||
- restfully |
||||
- righteously |
||||
- rightfully |
||||
- rigidly |
||||
- roughly |
||||
- rudely |
||||
- safely |
||||
- scarcely |
||||
- scarily |
||||
- searchingly |
||||
- sedately |
||||
- seemingly |
||||
- selfishly |
||||
- separately |
||||
- seriously |
||||
- shakily |
||||
- sharply |
||||
- sheepishly |
||||
- shrilly |
||||
- shyly |
||||
- silently |
||||
- sleepily |
||||
- slowly |
||||
- smoothly |
||||
- softly |
||||
- solemnly |
||||
- solidly |
||||
- speedily |
||||
- stealthily |
||||
- sternly |
||||
- strictly |
||||
- suddenly |
||||
- supposedly |
||||
- surprisingly |
||||
- suspiciously |
||||
- sweetly |
||||
- swiftly |
||||
- sympathetically |
||||
- tenderly |
||||
- tensely |
||||
- terribly |
||||
- thankfully |
||||
- thoroughly |
||||
- thoughtfully |
||||
- tightly |
||||
- tremendously |
||||
- triumphantly |
||||
- truthfully |
||||
- ultimately |
||||
- unabashedly |
||||
- unaccountably |
||||
- unbearably |
||||
- unethically |
||||
- unexpectedly |
||||
- unfortunately |
||||
- unimpressively |
||||
- unnaturally |
||||
- unnecessarily |
||||
- urgently |
||||
- usefully |
||||
- uselessly |
||||
- utterly |
||||
- vacantly |
||||
- vaguely |
||||
- vainly |
||||
- valiantly |
||||
- vastly |
||||
- verbally |
||||
- very |
||||
- viciously |
||||
- victoriously |
||||
- violently |
||||
- vivaciously |
||||
- voluntarily |
||||
- warmly |
||||
- weakly |
||||
- wearily |
||||
- wetly |
||||
- wholly |
||||
- wildly |
||||
- willfully |
||||
- wisely |
||||
- woefully |
||||
- wonderfully |
||||
- worriedly |
||||
- yawningly |
||||
- yearningly |
||||
- yieldingly |
||||
- youthfully |
||||
- zealously |
||||
- zestfully |
||||
- zestily |
@ -0,0 +1,11 @@ |
||||
extends: existence |
||||
message: "In general, don't hyphenate '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/auto |
||||
ignorecase: true |
||||
level: error |
||||
action: |
||||
name: convert |
||||
params: |
||||
- simple |
||||
tokens: |
||||
- 'auto-\w+' |
@ -0,0 +1,18 @@ |
||||
extends: existence |
||||
message: "Don't use '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide |
||||
ignorecase: true |
||||
level: error |
||||
tokens: |
||||
- abortion |
||||
- and so on |
||||
- and/or |
||||
- app developer |
||||
- app(?:lication)? file |
||||
- application developer |
||||
- application program |
||||
- applications developer |
||||
- as well as |
||||
- ask |
||||
- backbone |
||||
- backend |
@ -0,0 +1,12 @@ |
||||
extends: substitution |
||||
message: "Use '%s' instead of '%s'." |
||||
level: warning |
||||
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/back-end |
||||
# Use 'back end' (noun) or 'back-end' (adj). |
||||
pos: 'back-end/NN|backend/(?:JJ|NN)|back/\w+ end/JJ|back/(?:JJ|RB) end/\w+' |
||||
ignorecase: true |
||||
action: |
||||
name: replace |
||||
swap: |
||||
back-end: back end |
||||
back end: back-end |
@ -0,0 +1,120 @@ |
||||
extends: substitution |
||||
message: "Consider using '%s' instead of '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences |
||||
ignorecase: true |
||||
level: suggestion |
||||
action: |
||||
name: replace |
||||
swap: |
||||
"approximate(?:ly)?": about |
||||
abundance: plenty |
||||
accelerate: speed up |
||||
accentuate: stress |
||||
accompany: go with |
||||
accomplish: carry out|do |
||||
accorded: given |
||||
accordingly: so |
||||
accrue: add |
||||
accurate: right|exact |
||||
acquiesce: agree |
||||
acquire: get|buy |
||||
additional: more|extra |
||||
address: discuss |
||||
addressees: you |
||||
adjacent to: next to |
||||
adjustment: change |
||||
admissible: allowed |
||||
advantageous: helpful |
||||
advise: tell |
||||
aggregate: total |
||||
aircraft: plane |
||||
alleviate: ease |
||||
allocate: assign|divide |
||||
alternatively: or |
||||
alternatives: choices|options |
||||
ameliorate: improve |
||||
amend: change |
||||
anticipate: expect |
||||
apparent: clear|plain |
||||
ascertain: discover|find out |
||||
assistance: help |
||||
attain: meet |
||||
attempt: try |
||||
authorize: allow |
||||
belated: late |
||||
bestow: give |
||||
cease: stop|end |
||||
collaborate: work together |
||||
commence: begin |
||||
compensate: pay |
||||
component: part |
||||
comprise: form|include |
||||
concept: idea |
||||
concerning: about |
||||
confer: give|award |
||||
consequently: so |
||||
consolidate: merge |
||||
constitutes: forms |
||||
contains: has |
||||
convene: meet |
||||
demonstrate: show|prove |
||||
depart: leave |
||||
designate: choose |
||||
desire: want|wish |
||||
determine: decide|find |
||||
detrimental: bad|harmful |
||||
disclose: share|tell |
||||
discontinue: stop |
||||
disseminate: send|give |
||||
eliminate: end |
||||
elucidate: explain |
||||
employ: use |
||||
enclosed: inside|included |
||||
encounter: meet |
||||
endeavor: try |
||||
enumerate: count |
||||
equitable: fair |
||||
equivalent: equal |
||||
exclusively: only |
||||
expedite: hurry |
||||
facilitate: ease |
||||
females: women |
||||
finalize: complete|finish |
||||
frequently: often |
||||
identical: same |
||||
incorrect: wrong |
||||
indication: sign |
||||
initiate: start|begin |
||||
itemized: listed |
||||
jeopardize: risk |
||||
liaise: work with|partner with |
||||
maintain: keep|support |
||||
methodology: method |
||||
modify: change |
||||
monitor: check|watch |
||||
multiple: many |
||||
necessitate: cause |
||||
notify: tell |
||||
numerous: many |
||||
objective: aim|goal |
||||
obligate: bind|compel |
||||
optimum: best|most |
||||
permit: let |
||||
portion: part |
||||
possess: own |
||||
previous: earlier |
||||
previously: before |
||||
prioritize: rank |
||||
procure: buy |
||||
provide: give|offer |
||||
purchase: buy |
||||
relocate: move |
||||
solicit: request |
||||
state-of-the-art: latest |
||||
subsequent: later|next |
||||
substantial: large |
||||
sufficient: enough |
||||
terminate: end |
||||
transmit: send |
||||
utilization: use |
||||
utilize: use |
@ -0,0 +1,30 @@ |
||||
extends: substitution |
||||
message: "Use '%s' instead of '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-contractions |
||||
level: error |
||||
ignorecase: true |
||||
action: |
||||
name: replace |
||||
swap: |
||||
are not: aren't |
||||
cannot: can't |
||||
could not: couldn't |
||||
did not: didn't |
||||
do not: don't |
||||
does not: doesn't |
||||
has not: hasn't |
||||
have not: haven't |
||||
how is: how's |
||||
is not: isn't |
||||
it is: it's |
||||
should not: shouldn't |
||||
that is: that's |
||||
they are: they're |
||||
was not: wasn't |
||||
we are: we're |
||||
we have: we've |
||||
were not: weren't |
||||
what is: what's |
||||
when is: when's |
||||
where is: where's |
||||
will not: won't |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Remove the spaces around '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/emes |
||||
ignorecase: true |
||||
nonword: true |
||||
level: error |
||||
action: |
||||
name: edit |
||||
params: |
||||
- remove |
||||
- ' ' |
||||
tokens: |
||||
- '\s[—–]\s' |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: Use 'July 31, 2016' format, not '%s'. |
||||
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms |
||||
ignorecase: true |
||||
level: error |
||||
nonword: true |
||||
tokens: |
||||
- '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}' |
@ -0,0 +1,40 @@ |
||||
extends: existence |
||||
message: "Don't use ordinal numbers for dates." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers#numbers-in-dates |
||||
level: error |
||||
nonword: true |
||||
ignorecase: true |
||||
raw: |
||||
- \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?)\b\s* |
||||
tokens: |
||||
- first |
||||
- second |
||||
- third |
||||
- fourth |
||||
- fifth |
||||
- sixth |
||||
- seventh |
||||
- eighth |
||||
- ninth |
||||
- tenth |
||||
- eleventh |
||||
- twelfth |
||||
- thirteenth |
||||
- fourteenth |
||||
- fifteenth |
||||
- sixteenth |
||||
- seventeenth |
||||
- eighteenth |
||||
- nineteenth |
||||
- twentieth |
||||
- twenty-first |
||||
- twenty-second |
||||
- twenty-third |
||||
- twenty-fourth |
||||
- twenty-fifth |
||||
- twenty-sixth |
||||
- twenty-seventh |
||||
- twenty-eighth |
||||
- twenty-ninth |
||||
- thirtieth |
||||
- thirty-first |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "Always spell out the name of the month." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers#numbers-in-dates |
||||
ignorecase: true |
||||
level: error |
||||
nonword: true |
||||
tokens: |
||||
- '\b\d{1,2}/\d{1,2}/(?:\d{4}|\d{2})\b' |
@ -0,0 +1,9 @@ |
||||
extends: existence |
||||
message: "In general, don't use an ellipsis." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/ellipses |
||||
nonword: true |
||||
level: warning |
||||
action: |
||||
name: remove |
||||
tokens: |
||||
- '\.\.\.' |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Use first person (such as '%s') sparingly." |
||||
link: https://docs.microsoft.com/en-us/style-guide/grammar/person |
||||
ignorecase: true |
||||
level: warning |
||||
nonword: true |
||||
tokens: |
||||
- (?:^|\s)I\s |
||||
- (?:^|\s)I,\s |
||||
- \bI'm\b |
||||
- \bme\b |
||||
- \bmy\b |
||||
- \bmine\b |
@ -0,0 +1,12 @@ |
||||
extends: substitution |
||||
message: "Use '%s' instead of '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words |
||||
ignorecase: true |
||||
level: error |
||||
nonword: true |
||||
action: |
||||
name: replace |
||||
swap: |
||||
'\b(?:eg|e\.g\.)[\s,]': for example |
||||
'\b(?:ie|i\.e\.)[\s,]': that is |
||||
|
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "Don't use '%s'." |
||||
link: https://github.com/MicrosoftDocs/microsoft-style-guide/blob/master/styleguide/grammar/nouns-pronouns.md#pronouns-and-gender |
||||
level: error |
||||
ignorecase: true |
||||
tokens: |
||||
- he/she |
||||
- s/he |
@ -0,0 +1,44 @@ |
||||
extends: substitution |
||||
message: "Consider using '%s' instead of '%s'." |
||||
ignorecase: true |
||||
level: error |
||||
swap: |
||||
(?:alumna|alumnus): graduate |
||||
(?:alumnae|alumni): graduates |
||||
air(?:m[ae]n|wom[ae]n): pilot(s) |
||||
anchor(?:m[ae]n|wom[ae]n): anchor(s) |
||||
authoress: author |
||||
camera(?:m[ae]n|wom[ae]n): camera operator(s) |
||||
chair(?:m[ae]n|wom[ae]n): chair(s) |
||||
congress(?:m[ae]n|wom[ae]n): member(s) of congress |
||||
door(?:m[ae]|wom[ae]n): concierge(s) |
||||
draft(?:m[ae]n|wom[ae]n): drafter(s) |
||||
fire(?:m[ae]n|wom[ae]n): firefighter(s) |
||||
fisher(?:m[ae]n|wom[ae]n): fisher(s) |
||||
fresh(?:m[ae]n|wom[ae]n): first-year student(s) |
||||
garbage(?:m[ae]n|wom[ae]n): waste collector(s) |
||||
lady lawyer: lawyer |
||||
ladylike: courteous |
||||
landlord: building manager |
||||
mail(?:m[ae]n|wom[ae]n): mail carriers |
||||
man and wife: husband and wife |
||||
man enough: strong enough |
||||
mankind: human kind |
||||
manmade: manufactured |
||||
manpower: personnel |
||||
men and girls: men and women |
||||
middle(?:m[ae]n|wom[ae]n): intermediary |
||||
news(?:m[ae]n|wom[ae]n): journalist(s) |
||||
ombuds(?:man|woman): ombuds |
||||
oneupmanship: upstaging |
||||
poetess: poet |
||||
police(?:m[ae]n|wom[ae]n): police officer(s) |
||||
repair(?:m[ae]n|wom[ae]n): technician(s) |
||||
sales(?:m[ae]n|wom[ae]n): salesperson or sales people |
||||
service(?:m[ae]n|wom[ae]n): soldier(s) |
||||
steward(?:ess)?: flight attendant |
||||
tribes(?:m[ae]n|wom[ae]n): tribe member(s) |
||||
waitress: waiter |
||||
woman doctor: doctor |
||||
woman scientist[s]?: scientist(s) |
||||
work(?:m[ae]n|wom[ae]n): worker(s) |
@ -0,0 +1,11 @@ |
||||
extends: existence |
||||
message: "For a general audience, use 'address' rather than 'URL'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/urls-web-addresses |
||||
level: warning |
||||
action: |
||||
name: replace |
||||
params: |
||||
- URL |
||||
- address |
||||
tokens: |
||||
- URL |
@ -0,0 +1,7 @@ |
||||
extends: existence |
||||
message: "Avoid using acronyms in a title or heading." |
||||
link: https://docs.microsoft.com/en-us/style-guide/acronyms#be-careful-with-acronyms-in-titles-and-headings |
||||
level: warning |
||||
scope: heading |
||||
tokens: |
||||
- '[A-Z]{2,4}' |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "Capitalize '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/colons |
||||
nonword: true |
||||
level: error |
||||
scope: heading |
||||
tokens: |
||||
- ':\s[a-z]' |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Don't use end punctuation in headings." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods |
||||
nonword: true |
||||
level: warning |
||||
scope: heading |
||||
action: |
||||
name: edit |
||||
params: |
||||
- remove |
||||
- '.?!' |
||||
tokens: |
||||
- '[a-z0-9][.?!](?:\s|$)' |
@ -0,0 +1,28 @@ |
||||
extends: capitalization |
||||
message: "'%s' should use sentence-style capitalization." |
||||
link: https://docs.microsoft.com/en-us/style-guide/capitalization |
||||
level: suggestion |
||||
scope: heading |
||||
match: $sentence |
||||
indicators: |
||||
- ':' |
||||
exceptions: |
||||
- Azure |
||||
- CLI |
||||
- Code |
||||
- Cosmos |
||||
- Docker |
||||
- Emmet |
||||
- I |
||||
- Kubernetes |
||||
- Linux |
||||
- macOS |
||||
- Marketplace |
||||
- MongoDB |
||||
- REPL |
||||
- Studio |
||||
- TypeScript |
||||
- URLs |
||||
- Visual |
||||
- VS |
||||
- Windows |
@ -0,0 +1,14 @@ |
||||
extends: existence |
||||
message: "'%s' doesn't need a hyphen." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens |
||||
level: warning |
||||
ignorecase: false |
||||
nonword: true |
||||
action: |
||||
name: edit |
||||
params: |
||||
- replace |
||||
- '-' |
||||
- ' ' |
||||
tokens: |
||||
- '\s[^\s-]+ly-' |
@ -0,0 +1,21 @@ |
||||
MIT License |
||||
|
||||
Copyright (c) 2018 - 2019 Joseph Kato |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Form a negative number with an en dash, not a hyphen." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers |
||||
nonword: true |
||||
level: error |
||||
action: |
||||
name: edit |
||||
params: |
||||
- replace |
||||
- '-' |
||||
- '–' |
||||
tokens: |
||||
- '\s-\d+\s' |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Don't add -ly to an ordinal number." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers |
||||
level: error |
||||
action: |
||||
name: edit |
||||
params: |
||||
- trim |
||||
- ly |
||||
tokens: |
||||
- firstly |
||||
- secondly |
||||
- thirdly |
@ -0,0 +1,7 @@ |
||||
extends: existence |
||||
message: "Use the Oxford comma in '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/commas |
||||
scope: sentence |
||||
level: warning |
||||
tokens: |
||||
- '(?:[^,]+,){1,}\s\w+\s(?:and|or)' |
@ -0,0 +1,183 @@ |
||||
extends: existence |
||||
message: "'%s' looks like passive voice." |
||||
ignorecase: true |
||||
level: suggestion |
||||
raw: |
||||
- \b(am|are|were|being|is|been|was|be)\b\s* |
||||
tokens: |
||||
- '[\w]+ed' |
||||
- awoken |
||||
- beat |
||||
- become |
||||
- been |
||||
- begun |
||||
- bent |
||||
- beset |
||||
- bet |
||||
- bid |
||||
- bidden |
||||
- bitten |
||||
- bled |
||||
- blown |
||||
- born |
||||
- bought |
||||
- bound |
||||
- bred |
||||
- broadcast |
||||
- broken |
||||
- brought |
||||
- built |
||||
- burnt |
||||
- burst |
||||
- cast |
||||
- caught |
||||
- chosen |
||||
- clung |
||||
- come |
||||
- cost |
||||
- crept |
||||
- cut |
||||
- dealt |
||||
- dived |
||||
- done |
||||
- drawn |
||||
- dreamt |
||||
- driven |
||||
- drunk |
||||
- dug |
||||
- eaten |
||||
- fallen |
||||
- fed |
||||
- felt |
||||
- fit |
||||
- fled |
||||
- flown |
||||
- flung |
||||
- forbidden |
||||
- foregone |
||||
- forgiven |
||||
- forgotten |
||||
- forsaken |
||||
- fought |
||||
- found |
||||
- frozen |
||||
- given |
||||
- gone |
||||
- gotten |
||||
- ground |
||||
- grown |
||||
- heard |
||||
- held |
||||
- hidden |
||||
- hit |
||||
- hung |
||||
- hurt |
||||
- kept |
||||
- knelt |
||||
- knit |
||||
- known |
||||
- laid |
||||
- lain |
||||
- leapt |
||||
- learnt |
||||
- led |
||||
- left |
||||
- lent |
||||
- let |
||||
- lighted |
||||
- lost |
||||
- made |
||||
- meant |
||||
- met |
||||
- misspelt |
||||
- mistaken |
||||
- mown |
||||
- overcome |
||||
- overdone |
||||
- overtaken |
||||
- overthrown |
||||
- paid |
||||
- pled |
||||
- proven |
||||
- put |
||||
- quit |
||||
- read |
||||
- rid |
||||
- ridden |
||||
- risen |
||||
- run |
||||
- rung |
||||
- said |
||||
- sat |
||||
- sawn |
||||
- seen |
||||
- sent |
||||
- set |
||||
- sewn |
||||
- shaken |
||||
- shaven |
||||
- shed |
||||
- shod |
||||
- shone |
||||
- shorn |
||||
- shot |
||||
- shown |
||||
- shrunk |
||||
- shut |
||||
- slain |
||||
- slept |
||||
- slid |
||||
- slit |
||||
- slung |
||||
- smitten |
||||
- sold |
||||
- sought |
||||
- sown |
||||
- sped |
||||
- spent |
||||
- spilt |
||||
- spit |
||||
- split |
||||
- spoken |
||||
- spread |
||||
- sprung |
||||
- spun |
||||
- stolen |
||||
- stood |
||||
- stridden |
||||
- striven |
||||
- struck |
||||
- strung |
||||
- stuck |
||||
- stung |
||||
- stunk |
||||
- sung |
||||
- sunk |
||||
- swept |
||||
- swollen |
||||
- sworn |
||||
- swum |
||||
- swung |
||||
- taken |
||||
- taught |
||||
- thought |
||||
- thrived |
||||
- thrown |
||||
- thrust |
||||
- told |
||||
- torn |
||||
- trodden |
||||
- understood |
||||
- upheld |
||||
- upset |
||||
- wed |
||||
- wept |
||||
- withheld |
||||
- withstood |
||||
- woken |
||||
- won |
||||
- worn |
||||
- wound |
||||
- woven |
||||
- written |
||||
- wrung |
@ -0,0 +1,7 @@ |
||||
extends: existence |
||||
message: "Use a numeral plus the units." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers |
||||
nonword: true |
||||
level: error |
||||
tokens: |
||||
- '\b[a-zA-z]+\spercent\b' |
@ -0,0 +1,7 @@ |
||||
extends: existence |
||||
message: 'Punctuation should be inside the quotes.' |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/quotation-marks |
||||
level: error |
||||
nonword: true |
||||
tokens: |
||||
- '["“][^"”“]+["”][.,]' |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Use an en dash in a range of numbers." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers |
||||
nonword: true |
||||
level: error |
||||
action: |
||||
name: edit |
||||
params: |
||||
- replace |
||||
- '-' |
||||
- '–' |
||||
tokens: |
||||
- '\b\d+\s?[-]\s?\d+\b' |
@ -0,0 +1,13 @@ |
||||
extends: existence |
||||
message: "Use 'to' instead of a dash in '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/numbers |
||||
nonword: true |
||||
level: error |
||||
action: |
||||
name: edit |
||||
params: |
||||
- replace |
||||
- '[-–]' |
||||
- 'to' |
||||
tokens: |
||||
- '\b(?:AM|PM)\s?[-–]\s?.+(?:AM|PM)\b' |
@ -0,0 +1,7 @@ |
||||
extends: existence |
||||
message: "In most cases, use 'from' or 'through' to describe a range of numbers." |
||||
link: 'https://docs.microsoft.com/en-us/style-guide/numbers' |
||||
nonword: true |
||||
level: warning |
||||
tokens: |
||||
- '\b\d+\s?[-–]\s?\d+\b' |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "Try to simplify this sentence." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/semicolons |
||||
nonword: true |
||||
scope: sentence |
||||
level: suggestion |
||||
tokens: |
||||
- ';' |
@ -0,0 +1,7 @@ |
||||
extends: occurrence |
||||
message: "Try to keep sentences short (< 30 words)." |
||||
scope: sentence |
||||
level: suggestion |
||||
max: 30 |
||||
token: \b(\w+)\b |
||||
|
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "'%s' should have one space." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods |
||||
level: error |
||||
nonword: true |
||||
tokens: |
||||
- '[a-z][.?!] {2,}[A-Z]' |
||||
- '[a-z][.?!][A-Z]' |
@ -0,0 +1,7 @@ |
||||
extends: existence |
||||
message: "Don't use '%s' unless space is limited." |
||||
link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens |
||||
ignorecase: true |
||||
level: warning |
||||
tokens: |
||||
- '\w+- and \w+-' |
@ -0,0 +1,43 @@ |
||||
extends: substitution |
||||
message: "Prefer '%s' over '%s'." |
||||
level: warning |
||||
ignorecase: true |
||||
action: |
||||
name: replace |
||||
swap: |
||||
'(?:agent|virtual assistant|intelligent personal assistant)': personal digital assistant |
||||
'(?:drive C:|drive C>|C: drive)': drive C |
||||
'(?:internet bot|web robot)s?': bot(s) |
||||
'(?:microsoft cloud|the cloud)': cloud |
||||
'(?:mobile|smart) ?phone': phone |
||||
'24/7': every day |
||||
'audio(?:-| )book': audiobook |
||||
'back(?:-| )light': backlight |
||||
'chat ?bots?': chatbot(s) |
||||
adaptor: adapter |
||||
administrate: administer |
||||
afterwards: afterward |
||||
alphabetic: alphabetical |
||||
alphanumerical: alphanumeric |
||||
anti-aliasing: antialiasing |
||||
anti-malware: antimalware |
||||
anti-spyware: antispyware |
||||
anti-virus: antivirus |
||||
appendixes: appendices |
||||
artificial intelligence: artificial intelligence |
||||
assembler: assembly language |
||||
bpp: bpp |
||||
bps: bps |
||||
caap: CaaP |
||||
conversation-as-a-platform: conversation as a platform |
||||
eb: EB |
||||
gb: GB |
||||
gbps: Gbps |
||||
kb: KB |
||||
keypress: keystroke |
||||
mb: MB |
||||
pb: PB |
||||
tb: TB |
||||
zb: ZB |
||||
viz: namely |
||||
ergo: therefore |
@ -0,0 +1,10 @@ |
||||
extends: substitution |
||||
message: "Use '%s' instead of '%s'." |
||||
ignorecase: true |
||||
level: error |
||||
action: |
||||
name: replace |
||||
swap: |
||||
URL for: URL of |
||||
an URL: a URL |
||||
|
@ -0,0 +1,16 @@ |
||||
extends: existence |
||||
message: "Don't spell out the number in '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/units-of-measure-terms |
||||
level: error |
||||
raw: |
||||
- '[a-zA-Z]+\s' |
||||
tokens: |
||||
- '(?:centi|milli)?meters' |
||||
- '(?:kilo)?grams' |
||||
- '(?:kilo)?meters' |
||||
- '(?:mega)?pixels' |
||||
- cm |
||||
- inches |
||||
- lb |
||||
- miles |
||||
- pounds |
@ -0,0 +1,23 @@ |
||||
extends: existence |
||||
message: "Verify your use of '%s' with the A-Z word list." |
||||
link: 'https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/abort-abortion' |
||||
level: suggestion |
||||
ignorecase: true |
||||
tokens: |
||||
- above |
||||
- accessible |
||||
- actionable |
||||
- against |
||||
- alarm |
||||
- alert |
||||
- alias |
||||
- allows? |
||||
- assure |
||||
- author |
||||
- avg |
||||
- ensure |
||||
- he |
||||
- insure |
||||
- she |
||||
- sample |
||||
- beta |
@ -0,0 +1,11 @@ |
||||
extends: existence |
||||
message: "Try to avoid using first-person plural like '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/grammar/person#avoid-first-person-plural |
||||
level: warning |
||||
ignorecase: true |
||||
tokens: |
||||
- we |
||||
- we'(?:ve|re) |
||||
- ours? |
||||
- us |
||||
- let's |
@ -0,0 +1,122 @@ |
||||
extends: substitution |
||||
message: "Consider using '%s' instead of '%s'." |
||||
link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences |
||||
ignorecase: true |
||||
level: warning |
||||
action: |
||||
name: replace |
||||
swap: |
||||
(?:give|gave) rise to: lead to |
||||
(?:previous|prior) to: before |
||||
a (?:large)? majority of: most |
||||
a (?:large)? number of: many |
||||
a myriad of: myriad |
||||
adversely impact: hurt |
||||
all across: across |
||||
all of a sudden: suddenly |
||||
all of these: these |
||||
all of: all |
||||
all-time record: record |
||||
almost all: most |
||||
almost never: seldom |
||||
along the lines of: similar to |
||||
an adequate number of: enough |
||||
an appreciable number of: many |
||||
an estimated: about |
||||
any and all: all |
||||
are in agreement: agree |
||||
as a matter of fact: in fact |
||||
as a means of: to |
||||
as a result of: because of |
||||
as of yet: yet |
||||
as per: per |
||||
at a later date: later |
||||
at all times: always |
||||
at the present time: now |
||||
at this point in time: at this point |
||||
based in large part on: based on |
||||
based on the fact that: because |
||||
basic necessity: necessity |
||||
because of the fact that: because |
||||
came to a realization: realized |
||||
came to an abrupt end: ended abruptly |
||||
carry out an evaluation of: evaluate |
||||
close down: close |
||||
closed down: closed |
||||
complete stranger: stranger |
||||
completely separate: separate |
||||
concerning the matter of: regarding |
||||
conduct a review of: review |
||||
conduct an investigation: investigate |
||||
conduct experiments: experiment |
||||
continue on: continue |
||||
despite the fact that: although |
||||
disappear from sight: disappear |
||||
drag and drop: drag |
||||
drag-and-drop: drag |
||||
doomed to fail: doomed |
||||
due to the fact that: because |
||||
during the period of: during |
||||
during the time that: while |
||||
emergency situation: emergency |
||||
except when: unless |
||||
excessive number: too many |
||||
extend an invitation: invite |
||||
fall down: fall |
||||
fell down: fell |
||||
for the duration of: during |
||||
gather together: gather |
||||
has the ability to: can |
||||
has the capacity to: can |
||||
has the opportunity to: could |
||||
hold a meeting: meet |
||||
if this is not the case: if not |
||||
in a careful manner: carefully |
||||
in a thoughtful manner: thoughtfully |
||||
in a timely manner: timely |
||||
in an effort to: to |
||||
in between: between |
||||
in lieu of: instead of |
||||
in many cases: often |
||||
in most cases: usually |
||||
in order to: to |
||||
in some cases: sometimes |
||||
in spite of the fact that: although |
||||
in spite of: despite |
||||
in the (?:very)? near future: soon |
||||
in the event that: if |
||||
in the neighborhood of: roughly |
||||
in the vicinity of: close to |
||||
it would appear that: apparently |
||||
lift up: lift |
||||
made reference to: referred to |
||||
make reference to: refer to |
||||
mix together: mix |
||||
none at all: none |
||||
not in a position to: unable |
||||
not possible: impossible |
||||
of major importance: important |
||||
perform an assessment of: assess |
||||
pertaining to: about |
||||
place an order: order |
||||
plays a key role in: is essential to |
||||
present time: now |
||||
readily apparent: apparent |
||||
some of the: some |
||||
span across: span |
||||
subsequent to: after |
||||
successfully complete: complete |
||||
sufficient number (?:of)?: enough |
||||
take action: act |
||||
take into account: consider |
||||
the question as to whether: whether |
||||
there is no doubt but that: doubtless |
||||
this day and age: this age |
||||
this is a subject that: this subject |
||||
time (?:frame|period): time |
||||
under the provisions of: under |
||||
until such time as: until |
||||
used for fuel purposes: used for fuel |
||||
whether or not: whether |
||||
with regard to: regarding |
||||
with the exception of: except for |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"feed": "https://github.com/errata-ai/Microsoft/releases.atom", |
||||
"vale_version": ">=1.0.0" |
||||
} |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "'%s' is airlinese." |
||||
ignorecase: true |
||||
level: error |
||||
tokens: |
||||
- enplan(?:e|ed|ing|ement) |
||||
- deplan(?:e|ed|ing|ement) |
||||
- taking off momentarily |
@ -0,0 +1,48 @@ |
||||
extends: substitution |
||||
message: "Consider using '%s' instead of '%s'." |
||||
level: error |
||||
action: |
||||
name: replace |
||||
swap: |
||||
(?:bull|ox)-like: taurine |
||||
(?:calf|veal)-like: vituline |
||||
(?:crow|raven)-like: corvine |
||||
(?:leopard|panther)-like: pardine |
||||
bird-like: avine |
||||
centipede-like: scolopendrine |
||||
crab-like: cancrine |
||||
crocodile-like: crocodiline |
||||
deer-like: damine |
||||
eagle-like: aquiline |
||||
earthworm-like: lumbricine |
||||
falcon-like: falconine |
||||
ferine: wild animal-like |
||||
fish-like: piscine |
||||
fox-like: vulpine |
||||
frog-like: ranine |
||||
goat-like: hircine |
||||
goose-like: anserine |
||||
gull-like: laridine |
||||
hare-like: leporine |
||||
hawk-like: accipitrine |
||||
hippopotamus-like: hippopotamine |
||||
lizard-like: lacertine |
||||
mongoose-like: viverrine |
||||
mouse-like: murine |
||||
ostrich-like: struthionine |
||||
peacock-like: pavonine |
||||
porcupine-like: hystricine |
||||
rattlesnake-like: crotaline |
||||
sable-like: zibeline |
||||
sheep-like: ovine |
||||
shrew-like: soricine |
||||
sparrow-like: passerine |
||||
swallow-like: hirundine |
||||
swine-like: suilline |
||||
tiger-like: tigrine |
||||
viper-like: viperine |
||||
vulture-like: vulturine |
||||
wasp-like: vespine |
||||
wolf-like: lupine |
||||
woodpecker-like: picine |
||||
zebra-like: zebrine |
@ -0,0 +1,9 @@ |
||||
extends: existence |
||||
message: "'%s' left in text." |
||||
ignorecase: false |
||||
level: error |
||||
tokens: |
||||
- XXX |
||||
- FIXME |
||||
- TODO |
||||
- NOTE |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "Excessive apologizing: '%s'" |
||||
ignorecase: true |
||||
level: error |
||||
action: |
||||
name: remove |
||||
tokens: |
||||
- More research is needed |
@ -0,0 +1,52 @@ |
||||
extends: existence |
||||
message: "'%s' is archaic." |
||||
ignorecase: true |
||||
level: error |
||||
tokens: |
||||
- alack |
||||
- anent |
||||
- begat |
||||
- belike |
||||
- betimes |
||||
- boughten |
||||
- brocage |
||||
- brokage |
||||
- camarade |
||||
- chiefer |
||||
- chiefest |
||||
- Christiana |
||||
- completely obsolescent |
||||
- cozen |
||||
- divers |
||||
- deflexion |
||||
- fain |
||||
- forsooth |
||||
- foreclose from |
||||
- haply |
||||
- howbeit |
||||
- illumine |
||||
- in sooth |
||||
- maugre |
||||
- meseems |
||||
- methinks |
||||
- nigh |
||||
- peradventure |
||||
- perchance |
||||
- saith |
||||
- shew |
||||
- sistren |
||||
- spake |
||||
- to wit |
||||
- verily |
||||
- whilom |
||||
- withal |
||||
- wot |
||||
- enclosed please find |
||||
- please find enclosed |
||||
- enclosed herewith |
||||
- enclosed herein |
||||
- inforce |
||||
- ex postfacto |
||||
- foreclose from |
||||
- forewent |
||||
- for ever |
@ -0,0 +1,8 @@ |
||||
extends: existence |
||||
message: "Do not start a paragraph with a 'but'." |
||||
level: error |
||||
scope: paragraph |
||||
action: |
||||
name: remove |
||||
tokens: |
||||
- ^But |
@ -0,0 +1,782 @@ |
||||
extends: existence |
||||
message: "'%s' is a cliche." |
||||
level: error |
||||
ignorecase: true |
||||
tokens: |
||||
- a chip off the old block |
||||
- a clean slate |
||||
- a dark and stormy night |
||||
- a far cry |
||||
- a fate worse than death |
||||
- a fine kettle of fish |
||||
- a loose cannon |
||||
- a penny saved is a penny earned |
||||
- a tough row to hoe |
||||
- a word to the wise |
||||
- ace in the hole |
||||
- acid test |
||||
- add insult to injury |
||||
- against all odds |
||||
- air your dirty laundry |
||||
- alas and alack |
||||
- all fun and games |
||||
- all hell broke loose |
||||
- all in a day's work |
||||
- all talk, no action |
||||
- all thumbs |
||||
- all your eggs in one basket |
||||
- all's fair in love and war |
||||
- all's well that ends well |
||||
- almighty dollar |
||||
- American as apple pie |
||||
- an axe to grind |
||||
- another day, another dollar |
||||
- armed to the teeth |
||||
- as luck would have it |
||||
- as old as time |
||||
- as the crow flies |
||||
- at loose ends |
||||
- at my wits end |
||||
- at the end of the day |
||||
- avoid like the plague |
||||
- babe in the woods |
||||
- back against the wall |
||||
- back in the saddle |
||||
- back to square one |
||||
- back to the drawing board |
||||
- bad to the bone |
||||
- badge of honor |
||||
- bald faced liar |
||||
- bald-faced lie |
||||
- ballpark figure |
||||
- banging your head against a brick wall |
||||
- baptism by fire |
||||
- barking up the wrong tree |
||||
- bat out of hell |
||||
- be all and end all |
||||
- beat a dead horse |
||||
- beat around the bush |
||||
- been there, done that |
||||
- beggars can't be choosers |
||||
- behind the eight ball |
||||
- bend over backwards |
||||
- benefit of the doubt |
||||
- bent out of shape |
||||
- best thing since sliced bread |
||||
- bet your bottom dollar |
||||
- better half |
||||
- better late than never |
||||
- better mousetrap |
||||
- better safe than sorry |
||||
- between a rock and a hard place |
||||
- between a rock and a hard place |
||||
- between Scylla and Charybdis |
||||
- between the devil and the deep blue see |
||||
- betwixt and between |
||||
- beyond the pale |
||||
- bide your time |
||||
- big as life |
||||
- big cheese |
||||
- big fish in a small pond |
||||
- big man on campus |
||||
- bigger they are the harder they fall |
||||
- bird in the hand |
||||
- bird's eye view |
||||
- birds and the bees |
||||
- birds of a feather flock together |
||||
- bit the hand that feeds you |
||||
- bite the bullet |
||||
- bite the dust |
||||
- bitten off more than he can chew |
||||
- black as coal |
||||
- black as pitch |
||||
- black as the ace of spades |
||||
- blast from the past |
||||
- bleeding heart |
||||
- blessing in disguise |
||||
- blind ambition |
||||
- blind as a bat |
||||
- blind leading the blind |
||||
- blissful ignorance |
||||
- blood is thicker than water |
||||
- blood sweat and tears |
||||
- blow a fuse |
||||
- blow off steam |
||||
- blow your own horn |
||||
- blushing bride |
||||
- boils down to |
||||
- bolt from the blue |
||||
- bone to pick |
||||
- bored stiff |
||||
- bored to tears |
||||
- bottomless pit |
||||
- boys will be boys |
||||
- bright and early |
||||
- brings home the bacon |
||||
- broad across the beam |
||||
- broken record |
||||
- brought back to reality |
||||
- bulk large |
||||
- bull by the horns |
||||
- bull in a china shop |
||||
- burn the midnight oil |
||||
- burning question |
||||
- burning the candle at both ends |
||||
- burst your bubble |
||||
- bury the hatchet |
||||
- busy as a bee |
||||
- but that's another story |
||||
- by hook or by crook |
||||
- call a spade a spade |
||||
- called onto the carpet |
||||
- calm before the storm |
||||
- can of worms |
||||
- can't cut the mustard |
||||
- can't hold a candle to |
||||
- case of mistaken identity |
||||
- cast aspersions |
||||
- cat got your tongue |
||||
- cat's meow |
||||
- caught in the crossfire |
||||
- caught red-handed |
||||
- chase a red herring |
||||
- checkered past |
||||
- chomping at the bit |
||||
- cleanliness is next to godliness |
||||
- clear as a bell |
||||
- clear as mud |
||||
- close to the vest |
||||
- cock and bull story |
||||
- cold shoulder |
||||
- come hell or high water |
||||
- comparing apples and oranges |
||||
- compleat |
||||
- conspicuous by its absence |
||||
- cool as a cucumber |
||||
- cool, calm, and collected |
||||
- cost a king's ransom |
||||
- count your blessings |
||||
- crack of dawn |
||||
- crash course |
||||
- creature comforts |
||||
- cross that bridge when you come to it |
||||
- crushing blow |
||||
- cry like a baby |
||||
- cry me a river |
||||
- cry over spilt milk |
||||
- crystal clear |
||||
- crystal clear |
||||
- curiosity killed the cat |
||||
- cut and dried |
||||
- cut through the red tape |
||||
- cut to the chase |
||||
- cute as a bugs ear |
||||
- cute as a button |
||||
- cute as a puppy |
||||
- cuts to the quick |
||||
- cutting edge |
||||
- dark before the dawn |
||||
- day in, day out |
||||
- dead as a doornail |
||||
- decision-making process |
||||
- devil is in the details |
||||
- dime a dozen |
||||
- divide and conquer |
||||
- dog and pony show |
||||
- dog days |
||||
- dog eat dog |
||||
- dog tired |
||||
- don't burn your bridges |
||||
- don't count your chickens |
||||
- don't look a gift horse in the mouth |
||||
- don't rock the boat |
||||
- don't step on anyone's toes |
||||
- don't take any wooden nickels |
||||
- down and out |
||||
- down at the heels |
||||
- down in the dumps |
||||
- down the hatch |
||||
- down to earth |
||||
- draw the line |
||||
- dressed to kill |
||||
- dressed to the nines |
||||
- drives me up the wall |
||||
- dubious distinction |
||||
- dull as dishwater |
||||
- duly authorized |
||||
- dyed in the wool |
||||
- eagle eye |
||||
- ear to the ground |
||||
- early bird catches the worm |
||||
- easier said than done |
||||
- easy as pie |
||||
- eat your heart out |
||||
- eat your words |
||||
- eleventh hour |
||||
- even the playing field |
||||
- every dog has its day |
||||
- every fiber of my being |
||||
- everything but the kitchen sink |
||||
- eye for an eye |
||||
- eyes peeled |
||||
- face the music |
||||
- facts of life |
||||
- fair weather friend |
||||
- fall by the wayside |
||||
- fan the flames |
||||
- far be it from me |
||||
- fast and loose |
||||
- feast or famine |
||||
- feather your nest |
||||
- feathered friends |
||||
- few and far between |
||||
- fifteen minutes of fame |
||||
- fills the bill |
||||
- filthy vermin |
||||
- fine kettle of fish |
||||
- first and foremost |
||||
- fish out of water |
||||
- fishing for a compliment |
||||
- fit as a fiddle |
||||
- fit the bill |
||||
- fit to be tied |
||||
- flash in the pan |
||||
- flat as a pancake |
||||
- flip your lid |
||||
- flog a dead horse |
||||
- fly by night |
||||
- fly the coop |
||||
- follow your heart |
||||
- for all intents and purposes |
||||
- for free |
||||
- for the birds |
||||
- for what it's worth |
||||
- force of nature |
||||
- force to be reckoned with |
||||
- forgive and forget |
||||
- fox in the henhouse |
||||
- free and easy |
||||
- free as a bird |
||||
- fresh as a daisy |
||||
- full steam ahead |
||||
- fun in the sun |
||||
- garbage in, garbage out |
||||
- gentle as a lamb |
||||
- get a kick out of |
||||
- get a leg up |
||||
- get down and dirty |
||||
- get the lead out |
||||
- get to the bottom of |
||||
- get with the program |
||||
- get your feet wet |
||||
- gets my goat |
||||
- gilding the lily |
||||
- gilding the lily |
||||
- give and take |
||||
- go against the grain |
||||
- go at it tooth and nail |
||||
- go for broke |
||||
- go him one better |
||||
- go the extra mile |
||||
- go with the flow |
||||
- goes without saying |
||||
- good as gold |
||||
- good deed for the day |
||||
- good things come to those who wait |
||||
- good time was had by all |
||||
- good times were had by all |
||||
- greased lightning |
||||
- greek to me |
||||
- green thumb |
||||
- green-eyed monster |
||||
- grist for the mill |
||||
- growing like a weed |
||||
- hair of the dog |
||||
- hand to mouth |
||||
- happy as a clam |
||||
- happy as a lark |
||||
- hasn't a clue |
||||
- have a nice day |
||||
- have a short fuse |
||||
- have high hopes |
||||
- have the last laugh |
||||
- haven't got a row to hoe |
||||
- he's got his hands full |
||||
- head honcho |
||||
- head over heels |
||||
- hear a pin drop |
||||
- heard it through the grapevine |
||||
- heart's content |
||||
- heavy as lead |
||||
- hem and haw |
||||
- high and dry |
||||
- high and mighty |
||||
- high as a kite |
||||
- his own worst enemy |
||||
- his work cut out for him |
||||
- hit paydirt |
||||
- hither and yon |
||||
- Hobson's choice |
||||
- hold your head up high |
||||
- hold your horses |
||||
- hold your own |
||||
- hold your tongue |
||||
- honest as the day is long |
||||
- horns of a dilemma |
||||
- horns of a dilemma |
||||
- horse of a different color |
||||
- hot under the collar |
||||
- hour of need |
||||
- I beg to differ |
||||
- icing on the cake |
||||
- if the shoe fits |
||||
- if the shoe were on the other foot |
||||
- if you catch my drift |
||||
- in a jam |
||||
- in a jiffy |
||||
- in a nutshell |
||||
- in a pig's eye |
||||
- in a pinch |
||||
- in a word |
||||
- in hot water |
||||
- in light of |
||||
- in the final analysis |
||||
- in the gutter |
||||
- in the last analysis |
||||
- in the nick of time |
||||
- in the thick of it |
||||
- in your dreams |
||||
- innocent bystander |
||||
- it ain't over till the fat lady sings |
||||
- it goes without saying |
||||
- it takes all kinds |
||||
- it takes one to know one |
||||
- it's a small world |
||||
- it's not what you know, it's who you know |
||||
- it's only a matter of time |
||||
- ivory tower |
||||
- Jack of all trades |
||||
- jockey for position |
||||
- jog your memory |
||||
- joined at the hip |
||||
- judge a book by its cover |
||||
- jump down your throat |
||||
- jump in with both feet |
||||
- jump on the bandwagon |
||||
- jump the gun |
||||
- jump to conclusions |
||||
- just a hop, skip, and a jump |
||||
- just the ticket |
||||
- justice is blind |
||||
- keep a stiff upper lip |
||||
- keep an eye on |
||||
- keep it simple, stupid |
||||
- keep the home fires burning |
||||
- keep up with the Joneses |
||||
- keep your chin up |
||||
- keep your fingers crossed |
||||
- kick the bucket |
||||
- kick up your heels |
||||
- kick your feet up |
||||
- kid in a candy store |
||||
- kill two birds with one stone |
||||
- kiss of death |
||||
- knock it out of the park |
||||
- knock on wood |
||||
- knock your socks off |
||||
- know him from Adam |
||||
- know the ropes |
||||
- know the score |
||||
- knuckle down |
||||
- knuckle sandwich |
||||
- knuckle under |
||||
- labor of love |
||||
- ladder of success |
||||
- land on your feet |
||||
- lap of luxury |
||||
- last but not least |
||||
- last but not least |
||||
- last hurrah |
||||
- last-ditch effort |
||||
- law of the jungle |
||||
- law of the land |
||||
- lay down the law |
||||
- leaps and bounds |
||||
- let sleeping dogs lie |
||||
- let the cat out of the bag |
||||
- let the good times roll |
||||
- let your hair down |
||||
- let's talk turkey |
||||
- letter perfect |
||||
- lick your wounds |
||||
- lies like a rug |
||||
- life's a bitch |
||||
- life's a grind |
||||
- light at the end of the tunnel |
||||
- lighter than a feather |
||||
- lighter than air |
||||
- like clockwork |
||||
- like father like son |
||||
- like taking candy from a baby |
||||
- like there's no tomorrow |
||||
- lion's share |
||||
- live and learn |
||||
- live and let live |
||||
- long and short of it |
||||
- long lost love |
||||
- look before you leap |
||||
- look down your nose |
||||
- look what the cat dragged in |
||||
- looking a gift horse in the mouth |
||||
- looks like death warmed over |
||||
- loose cannon |
||||
- lose your head |
||||
- lose your temper |
||||
- loud as a horn |
||||
- lounge lizard |
||||
- loved and lost |
||||
- low man on the totem pole |
||||
- luck of the draw |
||||
- luck of the Irish |
||||
- make a mockery of |
||||
- make hay while the sun shines |
||||
- make money hand over fist |
||||
- make my day |
||||
- make the best of a bad situation |
||||
- make the best of it |
||||
- make your blood boil |
||||
- male chauvinism |
||||
- man of few words |
||||
- man's best friend |
||||
- mark my words |
||||
- meaningful dialogue |
||||
- missed the boat on that one |
||||
- moment in the sun |
||||
- moment of glory |
||||
- moment of truth |
||||
- moment of truth |
||||
- money to burn |
||||
- more in sorrow than in anger |
||||
- more power to you |
||||
- more sinned against than sinning |
||||
- more than one way to skin a cat |
||||
- movers and shakers |
||||
- moving experience |
||||
- my better half |
||||
- naked as a jaybird |
||||
- naked truth |
||||
- neat as a pin |
||||
- needle in a haystack |
||||
- needless to say |
||||
- neither here nor there |
||||
- never look back |
||||
- never say never |
||||
- nip and tuck |
||||
- nip in the bud |
||||
- nip it in the bud |
||||
- no guts, no glory |
||||
- no love lost |
||||
- no pain, no gain |
||||
- no skin off my back |
||||
- no stone unturned |
||||
- no time like the present |
||||
- no use crying over spilled milk |
||||
- nose to the grindstone |
||||
- not a hope in hell |
||||
- not a minute's peace |
||||
- not in my backyard |
||||
- not playing with a full deck |
||||
- not the end of the world |
||||
- not written in stone |
||||
- nothing to sneeze at |
||||
- nothing ventured nothing gained |
||||
- now we're cooking |
||||
- off the top of my head |
||||
- off the wagon |
||||
- off the wall |
||||
- old hat |
||||
- olden days |
||||
- older and wiser |
||||
- older than dirt |
||||
- older than Methuselah |
||||
- on a roll |
||||
- on cloud nine |
||||
- on pins and needles |
||||
- on the bandwagon |
||||
- on the money |
||||
- on the nose |
||||
- on the rocks |
||||
- on the same page |
||||
- on the spot |
||||
- on the tip of my tongue |
||||
- on the wagon |
||||
- on thin ice |
||||
- once bitten, twice shy |
||||
- one bad apple doesn't spoil the bushel |
||||
- one born every minute |
||||
- one brick short |
||||
- one foot in the grave |
||||
- one in a million |
||||
- one red cent |
||||
- only game in town |
||||
- open a can of worms |
||||
- open and shut case |
||||
- open the flood gates |
||||
- opportunity doesn't knock twice |
||||
- out of pocket |
||||
- out of sight, out of mind |
||||
- out of the frying pan into the fire |
||||
- out of the woods |
||||
- out on a limb |
||||
- over a barrel |
||||
- over the hump |
||||
- pain and suffering |
||||
- pain in the |
||||
- panic button |
||||
- par for the course |
||||
- part and parcel |
||||
- party pooper |
||||
- pass the buck |
||||
- patience is a virtue |
||||
- pay through the nose |
||||
- penny pincher |
||||
- perfect storm |
||||
- pig in a poke |
||||
- pile it on |
||||
- pillar of the community |
||||
- pin your hopes on |
||||
- pitter patter of little feet |
||||
- plain as day |
||||
- plain as the nose on your face |
||||
- play by the rules |
||||
- play your cards right |
||||
- playing the field |
||||
- playing with fire |
||||
- pleased as punch |
||||
- plenty of fish in the sea |
||||
- point with pride |
||||
- poor as a church mouse |
||||
- pot calling the kettle black |
||||
- presidential timber |
||||
- pretty as a picture |
||||
- pull a fast one |
||||
- pull your punches |
||||
- pulled no punches |
||||
- pulling your leg |
||||
- pure as the driven snow |
||||
- put it in a nutshell |
||||
- put one over on you |
||||
- put the cart before the horse |
||||
- put the pedal to the metal |
||||
- put your best foot forward |
||||
- put your foot down |
||||
- quantum jump |
||||
- quantum leap |
||||
- quick as a bunny |
||||
- quick as a lick |
||||
- quick as a wink |
||||
- quick as lightning |
||||
- quiet as a dormouse |
||||
- rags to riches |
||||
- raining buckets |
||||
- raining cats and dogs |
||||
- rank and file |
||||
- rat race |
||||
- reap what you sow |
||||
- red as a beet |
||||
- red herring |
||||
- redound to one's credit |
||||
- redound to the benefit of |
||||
- reinvent the wheel |
||||
- rich and famous |
||||
- rings a bell |
||||
- ripe old age |
||||
- ripped me off |
||||
- rise and shine |
||||
- road to hell is paved with good intentions |
||||
- rob Peter to pay Paul |
||||
- roll over in the grave |
||||
- rub the wrong way |
||||
- ruled the roost |
||||
- running in circles |
||||
- sad but true |
||||
- sadder but wiser |
||||
- salt of the earth |
||||
- scared stiff |
||||
- scared to death |
||||
- sea change |
||||
- sealed with a kiss |
||||
- second to none |
||||
- see eye to eye |
||||
- seen the light |
||||
- seize the day |
||||
- set the record straight |
||||
- set the world on fire |
||||
- set your teeth on edge |
||||
- sharp as a tack |
||||
- shirked his duties |
||||
- shoot for the moon |
||||
- shoot the breeze |
||||
- shot in the dark |
||||
- shoulder to the wheel |
||||
- sick as a dog |
||||
- sigh of relief |
||||
- signed, sealed, and delivered |
||||
- sink or swim |
||||
- six of one, half a dozen of another |
||||
- six of one, half a dozen of the other |
||||
- skating on thin ice |
||||
- slept like a log |
||||
- slinging mud |
||||
- slippery as an eel |
||||
- slow as molasses |
||||
- smart as a whip |
||||
- smooth as a baby's bottom |
||||
- sneaking suspicion |
||||
- snug as a bug in a rug |
||||
- sow wild oats |
||||
- spare the rod, spoil the child |
||||
- speak of the devil |
||||
- spilled the beans |
||||
- spinning your wheels |
||||
- spitting image of |
||||
- spoke with relish |
||||
- spread like wildfire |
||||
- spring to life |
||||
- squeaky wheel gets the grease |
||||
- stands out like a sore thumb |
||||
- start from scratch |
||||
- stick in the mud |
||||
- still waters run deep |
||||
- stitch in time |
||||
- stop and smell the roses |
||||
- straight as an arrow |
||||
- straw that broke the camel's back |
||||
- stretched to the breaking point |
||||
- strong as an ox |
||||
- stubborn as a mule |
||||
- stuff that dreams are made of |
||||
- stuffed shirt |
||||
- sweating blood |
||||
- sweating bullets |
||||
- take a load off |
||||
- take one for the team |
||||
- take the bait |
||||
- take the bull by the horns |
||||
- take the plunge |
||||
- takes one to know one |
||||
- takes two to tango |
||||
- than you can shake a stick at |
||||
- the cream of the crop |
||||
- the cream rises to the top |
||||
- the more the merrier |
||||
- the real deal |
||||
- the real McCoy |
||||
- the red carpet treatment |
||||
- the same old story |
||||
- the straw that broke the camel's back |
||||
- there is no accounting for taste |
||||
- thick as a brick |
||||
- thick as thieves |
||||
- thick as thieves |
||||
- thin as a rail |
||||
- think outside of the box |
||||
- thinking outside the box |
||||
- third time's the charm |
||||
- this day and age |
||||
- this hurts me worse than it hurts you |
||||
- this point in time |
||||
- thought leaders? |
||||
- three sheets to the wind |
||||
- through thick and thin |
||||
- throw in the towel |
||||
- throw the baby out with the bathwater |
||||
- tie one on |
||||
- tighter than a drum |
||||
- time and time again |
||||
- time is of the essence |
||||
- tip of the iceberg |
||||
- tired but happy |
||||
- to coin a phrase |
||||
- to each his own |
||||
- to make a long story short |
||||
- to the best of my knowledge |
||||
- toe the line |
||||
- tongue in cheek |
||||
- too good to be true |
||||
- too hot to handle |
||||
- too numerous to mention |
||||
- touch with a ten foot pole |
||||
- tough as nails |
||||
- trial and error |
||||
- trials and tribulations |
||||
- tried and true |
||||
- trip down memory lane |
||||
- twist of fate |
||||
- two cents worth |
||||
- two peas in a pod |
||||
- ugly as sin |
||||
- under the counter |
||||
- under the gun |
||||
- under the same roof |
||||
- under the weather |
||||
- until the cows come home |
||||
- unvarnished truth |
||||
- up the creek |
||||
- uphill battle |
||||
- upper crust |
||||
- upset the applecart |
||||
- vain attempt |
||||
- vain effort |
||||
- vanquish the enemy |
||||
- various and sundry |
||||
- vested interest |
||||
- viable alternative |
||||
- waiting for the other shoe to drop |
||||
- wakeup call |
||||
- warm welcome |
||||
- watch your p's and q's |
||||
- watch your tongue |
||||
- watching the clock |
||||
- water under the bridge |
||||
- wax eloquent |
||||
- wax poetic |
||||
- we've got a situation here |
||||
- weather the storm |
||||
- weed them out |
||||
- week of Sundays |
||||
- went belly up |
||||
- wet behind the ears |
||||
- what goes around comes around |
||||
- what you see is what you get |
||||
- when it rains, it pours |
||||
- when push comes to shove |
||||
- when the cat's away |
||||
- when the going gets tough, the tough get going |
||||
- whet (?:the|your) appetite |
||||
- white as a sheet |
||||
- whole ball of wax |
||||
- whole hog |
||||
- whole nine yards |
||||
- wild goose chase |
||||
- will wonders never cease? |
||||
- wisdom of the ages |
||||
- wise as an owl |
||||
- wolf at the door |
||||
- wool pulled over our eyes |
||||
- words fail me |
||||
- work like a dog |
||||
- world weary |
||||
- worst nightmare |
||||
- worth its weight in gold |
||||
- writ large |
||||
- wrong side of the bed |
||||
- yanking your chain |
||||
- yappy as a dog |
||||
- years young |
||||
- you are what you eat |
||||
- you can run but you can't hide |
||||
- you only live once |
||||
- you're the boss |
||||
- young and foolish |
||||
- young and vibrant |
@ -0,0 +1,30 @@ |
||||
extends: existence |
||||
message: "'%s' is corporate speak." |
||||
ignorecase: true |
||||
level: error |
||||
tokens: |
||||
- at the end of the day |
||||
- back to the drawing board |
||||
- hit the ground running |
||||
- get the ball rolling |
||||
- low-hanging fruit |
||||
- thrown under the bus |
||||
- think outside the box |
||||
- let's touch base |
||||
- get my manager's blessing |
||||
- it's on my radar |
||||
- ping me |
||||
- i don't have the bandwidth |
||||
- no brainer |
||||
- par for the course |
||||
- bang for your buck |
||||
- synergy |
||||
- move the goal post |
||||
- apples to apples |
||||
- win-win |
||||
- circle back around |
||||
- all hands on deck |
||||
- take this offline |
||||
- drill-down |
||||
- elephant in the room |
||||
- on my plate |
@ -0,0 +1,5 @@ |
||||
extends: existence |
||||
message: "Incorrect use of symbols in '%s'." |
||||
ignorecase: true |
||||
raw: |
||||
- \$[\d]* ?(?:dollars|usd|us dollars) |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue