Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added spell checker #118

Merged
merged 27 commits into from
Aug 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/problem-matchers/check-directory-tree.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"problemMatcher": [
{
"owner": "check-directory-tree",
"pattern": [
{
"regexp": "^(.+?) (.+?) (.*)",
"file": 1,
"code": 2,
"message": 3
}
]
}
]
}
20 changes: 20 additions & 0 deletions .github/problem-matchers/editor-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"problemMatcher": [
{
"owner": "editor-config",
"pattern": [
{
"regexp": "^([^\\\\s].*)$",
"file": 1
},
{
"regexp": "^\\s+(\\d+):(\\d+)\\s(.+)$",
"line": 1,
"column": 2,
"message": 3,
"loop": true
}
]
}
]
}
20 changes: 20 additions & 0 deletions .github/problem-matchers/yaspeller.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"problemMatcher": [
{
"owner": "yaspeller",
"pattern": [
{
"regexp": "^✗\\s(.*)\\s\\d+\\sms$",
"file": 1
},
{
"regexp": "^\\d+\\. (.+) \\((\\d+):(\\d+).*$",
"message": 1,
"line": 2,
"column": 3,
"loop": true
}
]
}
]
}
43 changes: 43 additions & 0 deletions .github/workflows/book-check-text.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: book-check-text

# Only run this when the master branch changes
on:
workflow_dispatch:
pull_request:

# This job installs dependencies, build the book, and pushes it to `gh-pages`
jobs:
yaspeller:
name: Spell check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Spell check
# problem matching breaks loop when it finds unrelated data, so we use reverse grep to clear output
run: |
echo "::add-matcher::.github/problem-matchers/yaspeller.json"
set -o pipefail; npx yaspeller -c .yaspellerrc.json . 2>&1 >/dev/null | grep -v "\-\-\-\-\-" | grep -v "Typos"
echo "::remove-matcher owner=yaspeller::"
editor-config:
name: Editor Config check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Editor Config Check
# problem matching breaks loop when it finds unrelated data, so we use reverse grep to clear output
run: |
echo "::add-matcher::.github/problem-matchers/editor-config.json"
set -o pipefail; npx eclint check "**/*.md" 2>&1 >/dev/null | grep -v "EditorConfig"
echo "::remove-matcher owner=editor-config::"
direcyory-tree:
name: Directory tree check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Directory tree check
run: |
echo "::add-matcher::.github/problem-matchers/check-directory-tree.json"
bash ./tools/check_directory_tree.sh qmlcourseRU
echo "::remove-matcher owner=check-directory-tree::"
195 changes: 195 additions & 0 deletions .yaspellerrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
{
"lang": "ru",
"fileExtensions": [
".md"
],
"excludeFiles": [
".git",
"node_modules"
],
"ignoreUppercase": true,
"ignoreUrls": true,
"ignoreCapitalization": true,
"checkYo": true,
"ignoreText": [
["– .*\\]", "g"],
["следующие люди:.*", "g"]
],
"dictionary": [
".*логин.*",
"bootcamp",
"HR.*",
"Jira",
"onboarding",
"playbook",
"Podlodka",
"Rx",
"Spotify",
"teamlead.*",
"vs",
"Авито",
"автотест.*",
"айти",
"айтишник.*",
"Ана",
"антипаттерн.*",
"апдейт.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"апдейт.*",
"апдейт.*",
"аппроксиматор.*",

"апрув.*",
"ассессмент",
"аутичн.*",
"аутсорса.*",
"баг.*",
"билд.*",
"бланшар",
"Бреслав.*",
"брейншторм.*",
"Булдаков.*",
"буллет.*",
"буллшит.*",
"бытовух.*",
"бэкграунд.*",
"бэкенд.*",
"бэклог.*",
"валидирова.*",
"версионируется",
"Версионность",
"виральн.*",
"воркшоп.*",
"волонтерств.*",
"гайд.*",
"Гандапас",
"геймификаци.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"геймификаци.*",
"геймификаци.*",
"гейт.*",
"Гейт.*",

"главред.*",
"груминг.*",
"Далио",
"дейли.*",
"Дельгядо",
"ДеМарко",
"Деминг.*",
"демотиваци.*",
"демотивирует.*",
"демотивирующ.*",
"джедайские.*",
"джефф",
"дэшборд.*",
"заассайнь.*",
"замылен.*",
"Ильяхов.*",
"инбокс.*",
"инновационн.*",
"интранет.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"интранет.*",
"интранет.*",
"Йожи",

"Кейнер",
"Кови",
"коммит.*",
"коммитим.*",
"коммуницирова.*",
"конфиг.*",
"корпоративщин.*",
"корутин.*",
"кроссфункциональн.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"кроссфункциональн.*",
"кроссфункциональн.*",
".*кубит.*",
"Кубит.*",

"Ласло",
"легаси",
"лендинг.*",
"Ленсиони",
"логир.*",
"лонгрид.*",
"майндмеп.*",
"Мавричева",
"Макафи",
"МакГрегор.*",
"МакКлелланда",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"МакКлелланда",
"МакКлелланда",
"масштабируемость",

"мейнтейнер.*",
"мелкофикс.*",
"мем.*",
"мерж.*",
"мидл.*",
"микросервис.*",
"митап.*",
"монитор.*",
"мыслетопливо.*",
"найм.*",
"напоминалк.*",
"незадокументированн.*",
"неповторени.*",
"неоптимально",
"несистемно",
"нетворкинг.*",
"онбординг.*",
"опенсорс.*",
"операционк.*",
"отрефактори.*",
"оффер",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"оффер",
"оффер",
"пайплайн.*",
"параметризу.тся",

"переговорк.*",
"переиспользуем.*",
"перформит.*",
"премиальн.*",
"присваем.*",
"провалидируй.*",
"продакт.*",
"промо.*",
"профстандарт",
"ревью.*",
"рекрутер.*",
"репутационные.*",
"ретроспектив.*",
"рефакторинг.*",
"референс.*",
"рефлекси.*",
"роадмап.*",
"Рэй",
"рэнди",
"скилл.*",
"скрайбинг.*",
"скоммуницир.*",
"скоммуницируй",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"скоммуницируй",
"скоммуницируй",
".*скори.*",

"скоуп.*",
"скринкаст.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"скринкаст.*",
"скринкаст.*",
"Слэтер.*",

"смарт",
"собеседуем.*",
"созвон.*",
"стейкхолд.*",
"стендап.*",
"стиралк.*",
"сторипойнт.*",
"стрессует",
"стриминг.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"стриминг.*",
"стриминг.*",
"сэмпл.*",

"тайминг.*",
"телеграм.*",
"техбренд.*",
"техлид.*",
"технобренд.*",
"техпиар.*",
"техрук.*",
"тикет.*",
"тимлид.*",
"токен.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"токен.*",
"токен.*",
"топологически",

"туториал.*",
"шторминг.*",
"фасилитатор.*",
"фасилитац.*",
"фейсбук.*",
"феррацци",
"фидбек",
"фич.*",
"флипчарт.*",
"фреймворк.*",
"фронтенд.*",
"Феншуй.*",
"хакатон.*",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"хакатон.*",
"хакатон.*",
"хардкод.*",

"Хофф",
"Херси",
"холакрат.*",
"хотелок",
"чартрайтинг.*",
"чиксентмихайи",
"шорткаты",
"Шухарт.*",
"Ферацци",
"кликабельн.*",
"человекочитаем.+",
"локал.",
"запуш.{1,3}",
"мультиязычност.",
"контрибьютор.{0,2}"
]
}
55 changes: 55 additions & 0 deletions tools/check_directory_tree.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
HAS_ERROR=0

check_file() {
local filepath=$1
local has_frontmatter_title=0
local has_ending=0
local has_beginning=0

# [[ ! $filepath =~ ^(\.?[A-Za-z0-9-]+\/)+(ru|index|en)\.md$ ]] \
# && echo "$filepath bad_branch_name Check a directory tree, branch should be named only with lowercase letters (a-z), numbers (0-9) and hyphens (-), file should be named as %locale%.md (ru.md, e.g.)" \
# && HAS_ERROR=1

if grep -q -E '^# .+$' "$filepath"; then
# has a markdown first level header in file
return
fi

# iterate line by line

while IFS="" read -r line || [ -n "$line" ]
do
if [ "$line" = '---' ] && [ "$has_beginning" = 0 ]; then
has_beginning=1
continue
fi
if [ "$line" = '---' ] && [ "$has_beginning" = 1 ]; then
has_ending=1
break
fi
# check that line has title frontmatter param
if [[ $line =~ ^title:.+$ ]]; then
has_frontmatter_title=1
fi
done < "$filepath"


if [ "$has_ending" = 0 ]; then
echo "$filepath open_frontmatter_block Check the .md file, you have open frontmatter block (end it with '---')"
HAS_ERROR=1
return
fi

if [ "$has_frontmatter_title" = 0 ]; then
echo "$filepath without_title Check the .md file, it should have frontmatter block with title param or markdown first level header"
HAS_ERROR=1
fi
}

IFS=$'\n'; set -f
for filepath in $(find "$1" -iname '*.md'); do
check_file "$filepath"
done
unset IFS; set +f

exit $HAS_ERROR