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

Add spellchecker runner and initial generated dictionary (ru) #2720

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ vendor
.env
bin
.jekyll*
yaspeller_report.json
22 changes: 22 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,28 @@ namespace :check do
require_relative "lib/markup_checker"
MarkupChecker.new.check
end

desc "Validate spelling (required: `npm i -g yaspeller`, use: `rake 'check:spelling[ru,json]'`)"
task :spelling, [:lang, :format] do |t, args|
args.with_defaults(format: 'console')
dictionary = File.expand_path("../lib/spelling/#{args[:lang]}/dictionary.json", __FILE__)
# initial dictionary generated by https://github.com/razum2um/yaspeller-dictionary-builder
opts = File.exists?(dictionary) ? "--dictionary #{dictionary}" : ""
system <<~SH.gsub!(/[[:space:]]+/, " ").strip
yaspeller
--report #{args[:format]}
--ignore-text "'.*"
--ignore-latin
--ignore-uppercase
--ignore-urls
--only-errors
--lang #{args[:lang]}
--file-extensions ".md"
--ignore-digits
#{opts}
#{args[:lang]}
SH
end
end

require "rake/testtask"
Expand Down
137 changes: 137 additions & 0 deletions lib/spelling/ru/dictionary.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
[
"[аА]ттрибут(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]аг(а|ам|ами|ах|е|и|ов|ом|у)?",
"[бБ]агрепорт(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]агфикс(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]ектрейс(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]енчмаркинг(а|ам|ами|ах|е|и|ов|ом|у)?",
"[бБ]илд(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]инарник(а|ам|ами|ах|е|и|ов|ом|у)?",
"[бБ]итмап(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]риф(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[бБ]экпортироват(ей|и|ь|ью|ям|ями|ях)",
"[бБ]эктрейс(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[вВ]ебсайт(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[вВ]ерсионировани(е|ем|и|ю|я)",
"[вВ]ерсионн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[вВ]зломан(ого|ое|ом|ому|ые|ым|ыми|ых)",
"[вВ]озникновни(е|ем|и|й|ю|я|ям|ями|ях)",
"[вВ]оркфлоу",
"[дД]ебаг(а|ам|ами|ах|е|и|ов|ом|у)?",
"[дД]есктоп(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[дД]ефолтн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[дД]женерик(а|ам|ами|ах|е|и|ов|ом|у)?",
"[дД]зайн(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[дД]ифф(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[иИ]деом(а|е|ой|у|ы)",
"[иИ]нстанс(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[йЙ]ен(а|ам|ами|ах|е|ой|у|ы)?",
"[кК]оммандн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[кК]оммит(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[кК]оммитер(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[кК]оммиттер(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[кК]омьюнити",
"[кК]онтрибутор(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[кК]онтрибьютор(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[кК]онфереци(ей|и|й|ю|я|ям|ями|ях)",
"[лЛ]ексер(а|ам|ами|ах|е|ой|у|ы)?",
"[лЛ]етоисчеслени(е|ем|и|й|ю|я|ям|ями|ях)",
"[лЛ]юд(ей|и|ь|ью|ям|ями|ях)",
"[мМ]анкипатч(а|ам|ами|ах|е|ей|ем|и|у)?",
"[мМ]ат(ец|ца|цам|цами|цах|це|цев|цем|цу|цы)",
"[мМ]атц",
"[мМ]ацу(е|ем|й|ю|я)",
"[мМ]ежсайтов(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[мМ]ентейнер(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[мМ]енторств(а|ам|ами|ах|е|о|ом|у)?",
"[нН]евалидном(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[нН]едоверенн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[нН]епойман(а|е|ой|у|ы)",
"[нН]еприсоединенн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[нН]есимвол(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[нН]есимвольн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[нН]есовестимост(ей|и|ь|ью|ям|ями|ях)",
"[нН]изкоуровн(его|ей|ем|ему|ие|ий|им|ими|их|юю|яя)",
"[нН]од(а|ам|ами|ах|е|ой|у|ы)?",
"[оО]колорубиево(е|ев|ем|и|й|ю|я|ям|ями|ях)",
"[оО]пенсорсн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[оО]тнаследованн(ого|ом|ому|ые|ый|ым|ыми|ых)",
"[пП]арсит(а|ам|ами|ах|е|о|ом|у)?",
"[пП]атченн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[пП]атчинг(а|ам|ами|ах|е|и|ов|ом|у)?",
"[пП]атчлевел(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[пП]ереподпис(ей|и|ь|ью|ям|ями|ях)",
"[пП]ереподписанн(ого|ом|ому|ые|ый|ым|ыми|ых)",
"[пП]ересбор(ка|кам|ками|ках|ке|ки|кой|ку|ок)",
"[пП]еречислител(е|ей|ем|и|ь|ю|я|ям|ями|ях)",
"[пП]латфортм(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[пП]о-умолчани(е|ем|и|ю|я)",
"[пП]одделан(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[пП]одерж(ек|ка|кам|ками|ках|ке|ки|кой|ку)",
"[пП]околенческ(ая|ие|ий|им|ими|их|ого|ой|ом|ому|ую)",
"[пП]ортировани(е|ем|и|ю|я)",
"[пП]оследстиви(ей|и|й|ю|я|ям|ями|ях)",
"[пП]ревью",
"[пП]редзаказ(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[пП]реднастроенн(ого|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[пП]рекрастн(ого|ое|ом|ому|ые|ым|ыми|ых)",
"[пП]ререлиз(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[пП]родакшен(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[пП]ропатчен(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[пП]ропатченн(ая|ой|ую|ые|ым|ыми|ых)",
"[пП]улл(а|ам|ами|ах|е|ой|у|ы)?",
"[рР]азсказчик(а|ам|ами|ах|е|и|ов|ом|у)?",
"[рР]актор(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[рР]антайм(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[рР]еквест(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[рР]елизим(а|ам|ами|ах|е|ой|у|ы)?",
"[рР]епозитари(ей|и|й|ю|я|ям|ями|ях)",
"[рР]ефакторинг(а|ам|ами|ах|е|и|ов|ом|у)?",
"[рР]убист(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[сС]амоорганизованн(ого|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[сС]генеренн(ая|ой|ую|ые|ым|ыми|ых)",
"[сС]ериализаци(ей|и|й|ю|я|ям|ями|ях)",
"[сС]криптинг(а|ам|ами|ах|е|и|ов|ом|у)?",
"[сС]криптов(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[сС]одател(ей|и|ь|ью|ям|ями|ях)",
"[сС]оучередител(е|ей|ем|и|ь|ю|я|ям|ями|ях)",
"[тТ]айп(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[тТ]айп(ей|и|ь|ью|ям|ями|ях)",
"[тТ]айпе(е|ей|и|й|ю|я|ям|ями|ях)",
"[тТ]виттер(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[тТ]икет(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[тТ]окен(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[тТ]ранк(а|ам|ами|ах|е|и|ов|ом|у)?",
"[тТ]улкит(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[уУ]зявимост(ей|и|ь|ью|ям|ями|ях)",
"[фФ]идбек(а|ам|ами|ах|е|и|ов|ом|у)?",
"[фФ]иксим(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[фФ]ич(а|ам|ами|ах|е|ей|и|у)?",
"[фФ]орк(а|ам|ами|ах|е|и|ов|ом|у)?",
"[фФ]реймворк(а|ам|ами|ах|е|и|ов|ом|у)?",
"[хХ]ак(а|ам|ами|ах|е|и|ов|ом|у)?",
"[хХ]акатон(а|ам|ами|ах|е|ов|ом|у)?",
"[чЧ]екер(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[эЭ]ксперементальн(ая|ого|ой|ом|ому|ую|ые|ый|ым|ыми|ых)",
"[эЭ]ксплоит(а|ам|ами|ах|е|ов|ом|у|ы)?",
"[эЭ]нтерпрайз(ен|на|нам|нами|нах|не|но|ном|ну)",
"[юЮ]кихиро",
"бессмысленен",
"вмержили",
"дефрагментировать",
"зарелизился",
"коммитить",
"неа",
"НеСимволы",
"парсить",
"патчить",
"перегенерировать",
"пересобирается",
"проспонсировано",
"разыменовывается",
"релизиться",
"репортится",
"тайпет",
"хмм",
"эксплоит"
]