├── .babelrc ├── .bowerrc ├── .editorconfig ├── .eslintrc.yml ├── .gitignore ├── CONTRIBUTING.md ├── CREDITS.md ├── LICENSE ├── README.md ├── app ├── _locales │ ├── en │ │ └── messages.json │ └── ja │ │ └── messages.json ├── images │ ├── icon-128.png │ ├── icon-16.png │ ├── icon-19.png │ ├── icon-38.png │ ├── icon-black-19.png │ └── icon-black-38.png ├── manifest.json ├── pages │ ├── background.html │ ├── options.html │ ├── popup.html │ └── sandbox.html ├── scripts │ ├── background.js │ ├── contentscript.js │ ├── lib │ │ ├── app │ │ │ ├── app-config.js │ │ │ ├── app-message.js │ │ │ ├── app-options.js │ │ │ ├── app-storage.js │ │ │ ├── bundles.js │ │ │ └── sandbox-message.js │ │ ├── background │ │ │ ├── badge.js │ │ │ ├── index.js │ │ │ ├── linter-status.js │ │ │ ├── linters.js │ │ │ ├── livereload.js │ │ │ ├── messages.js │ │ │ └── sandbox-client.js │ │ ├── content │ │ │ ├── dismiss-type.js │ │ │ ├── index.js │ │ │ ├── messages.js │ │ │ ├── textarea-linter.js │ │ │ └── textarea-marker.js │ │ ├── options │ │ │ ├── options-controller.js │ │ │ ├── rule-options-fixer.js │ │ │ └── view │ │ │ │ ├── about │ │ │ │ ├── about-page.js │ │ │ │ ├── about-section.js │ │ │ │ ├── author-section.js │ │ │ │ ├── bundles-section.js │ │ │ │ ├── license-section.js │ │ │ │ └── paragraph.js │ │ │ │ ├── footer │ │ │ │ └── footer-panel.js │ │ │ │ ├── json-editor │ │ │ │ ├── editor-checkboxed-editor.js │ │ │ │ ├── editor-enumconstant.js │ │ │ │ ├── editor-multiselectize.js │ │ │ │ ├── fix-schema.js │ │ │ │ ├── json-editor.js │ │ │ │ ├── messages.js │ │ │ │ └── patch-fix-allow-empty-option.js │ │ │ │ ├── options-view.js │ │ │ │ ├── pages │ │ │ │ ├── page-panel.js │ │ │ │ └── page-switch.js │ │ │ │ ├── rules │ │ │ │ ├── rule-editor.js │ │ │ │ ├── rule-item.js │ │ │ │ ├── rule-list-editor.js │ │ │ │ ├── rule-list-filter.js │ │ │ │ ├── rule-list-toggle.js │ │ │ │ ├── rule-list.js │ │ │ │ ├── rule-toggle.js │ │ │ │ ├── rules-page.js │ │ │ │ └── severity-switch.js │ │ │ │ └── visual │ │ │ │ ├── visual-editor.js │ │ │ │ └── visual-page.js │ │ ├── popup │ │ │ ├── popup-controller.js │ │ │ ├── popup-settings.js │ │ │ └── view │ │ │ │ ├── common │ │ │ │ ├── icon-button.js │ │ │ │ └── message-box.js │ │ │ │ ├── header │ │ │ │ ├── activate-toggle.js │ │ │ │ ├── header-panel.js │ │ │ │ └── options-button.js │ │ │ │ ├── marks │ │ │ │ ├── correct-buttons.js │ │ │ │ ├── dismiss-button.js │ │ │ │ ├── filter-item.js │ │ │ │ ├── filter-list.js │ │ │ │ ├── mark-item.js │ │ │ │ ├── mark-list.js │ │ │ │ ├── marks-panel.js │ │ │ │ └── undismiss-button.js │ │ │ │ ├── messages │ │ │ │ ├── error-message.js │ │ │ │ ├── linting-message.js │ │ │ │ ├── passed-message.js │ │ │ │ ├── ready-message.js │ │ │ │ └── refresh-message.js │ │ │ │ ├── popup-view.js │ │ │ │ └── settings │ │ │ │ ├── format-select.js │ │ │ │ ├── ruleset-item.js │ │ │ │ ├── ruleset-list.js │ │ │ │ └── settings-panel.js │ │ ├── sandbox │ │ │ ├── index.js │ │ │ └── sandbox-server.js │ │ ├── textlint │ │ │ ├── textlint-rule-package.js │ │ │ ├── textlint-rulesets.js │ │ │ └── textlint-wrapper.js │ │ └── util │ │ │ ├── strip-default.js │ │ │ └── text-caret-scanner.js │ ├── options.js │ ├── popup.js │ ├── sandbox.js │ └── shim │ │ ├── kuromoji │ │ └── ChromeDictionaryLoader.js │ │ └── prh │ │ ├── files.js │ │ └── fs-mock.js └── styles │ ├── common.less │ ├── contentscript.less │ ├── options.less │ └── popup.less ├── bower.json ├── docs └── other-browsers.md ├── gulpfile.babel.js ├── karma.conf.js ├── package.json ├── tasks ├── bower.js ├── build.js ├── bundle.js ├── clean.js ├── default.js ├── dict.js ├── fonts.js ├── images.js ├── lib │ ├── applyBrowserPrefixesFor.js │ ├── args.js │ ├── bundlejs.js │ └── expandGlobsFor.js ├── license.js ├── lint.js ├── livereload.js ├── locales.js ├── manifest.js ├── pages.js ├── release.js ├── scripts.js ├── styles.js ├── templates │ └── bundle.js.tpl ├── test.js └── vendor.js ├── tests ├── .eslintrc.yml ├── entry.js └── lib │ ├── app │ ├── app-config-test.js │ ├── app-message-test.js │ ├── app-options-test.js │ ├── app-storage-test.js │ ├── bundles-test.js │ └── sandbox-message-test.js │ └── background │ ├── badge-test.js │ ├── linter-status-test.js │ └── linters-test.js └── wercker.yml /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015", 4 | "stage-2", 5 | "react", 6 | "react-optimize" 7 | ], 8 | "plugins": [ 9 | "transform-runtime", 10 | "transform-class-properties", 11 | "transform-strict-mode" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "allow_root": true, 3 | "ignoredDependencies": [ 4 | "bootstrap", 5 | "jquery", 6 | "microplugin", 7 | "sifter" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | indent_size = 4 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintrc.yml: -------------------------------------------------------------------------------- 1 | extends: 2 | - airbnb 3 | - plugin:import-order/recommended 4 | env: 5 | browser: true 6 | webextensions: true 7 | jquery: true 8 | parser: babel-eslint 9 | plugins: 10 | - react 11 | - import-order 12 | globals: 13 | __ENV__: true 14 | __VENDOR__: true 15 | DEBUG: true 16 | LIVERELOAD: true 17 | JSONEditor: true 18 | _: true 19 | rules: 20 | strict: 0 21 | arrow-body-style: 0 22 | no-console: 0 23 | no-param-reassign: 0 24 | func-names: 0 25 | no-else-return: 0 26 | global-require: 0 27 | no-underscore-dangle: 0 28 | react/prefer-stateless-function: 0 29 | quote-props: 30 | - error 31 | - consistent 32 | quotes: 33 | - error 34 | - double 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | 4 | node_modules 5 | npm-debug.log 6 | 7 | bower_components 8 | 9 | tmp/ 10 | dist/ 11 | packages/ 12 | certs/*.pem 13 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 日本語の文章はこちらを参照してください: [プルリクエストについて](#プルリクエストについて) 2 | 3 | # Contributing to this repository 4 | 5 | First of all, thank you for your contribution on this repository! :two_hearts: 6 | 7 | Before making a pull request, please take a few minutes to read following notes: 8 | 9 | - We are using [AngularJS's commit message convention](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-git-commit-guidelines). 10 | - Your commits and pushes are validated by git hooks. 11 | - You are still the copyright owner of your contribution. However, according to GPLv3 license, your contribution becomes public for anyone and licensed under GPLv3 as well. 12 | - The header comment in each file shows that copyright is owned by me (IRIDE Monad), but it does not mean your copyright is taken, restricted, removed or something. 13 | - I will put your name on [CREDITS.md](CREDITS.md). 14 | 15 | Thank you for reading, and don't hesitate to ask me if you have any question, request or problem. 16 | 17 | - Twitter: [@io-monad](https://twitter.com/io_monad) 18 | - E-mail: iride.monad@gmail.com 19 | 20 | ---- 21 | 22 | # プルリクエストについて 23 | 24 | まずはじめに、プルリクエストをお送りいただきありがとうございます! :two_hearts: 25 | 26 | プルリクエストを送る前にいくつか注意点がありますので、ご一読ください。 27 | 28 | - [AngularJS のコミットメッセージ規約 (英語)](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-git-commit-guidelines) を採用しています。 29 | - あなたのコミット及びリポジトリへのプッシュは git のフック機能によって自動的に検証されます。 30 | - あなたが作成・修正したコードの著作権はあなたにあります。しかしながら、GPLv3 ライセンス条項に従い、あなたのコードは自動的に公開され、同様に GPLv3 でライセンスされます。 31 | - 各ファイル中のヘッダーコメントとして、著作権の所有者が私 (IRIDE Monad) にあると書いてありますが、これはあなたの著作権が取られたり、制限されたり、除かれたりする事を意味するわけではありません。 32 | - あなたの名前は [CREDITS.md](CREDITS.md) に掲載されます。 33 | 34 | 読んで頂きありがとうございました。もし質問、要望、問題等ありましたら、いつでもご連絡ください。 35 | 36 | - Twitter: [@io-monad](https://twitter.com/io_monad) 37 | - E-mail: iride.monad@gmail.com 38 | -------------------------------------------------------------------------------- /CREDITS.md: -------------------------------------------------------------------------------- 1 | # Credits 2 | 3 | ## Contributors 4 | 5 | The following people have contibuted their work to this project. Many thanks for the great contribution! 6 | 7 | - [@nodaguti](https://github.com/nodaguti) 8 | - Add (partially) support for Firefox and Opera [#21](https://github.com/io-monad/textlint-chrome-extension/pull/21) 9 | 10 | ## textlint 11 | 12 | [textlint](https://github.com/textlint/textlint/) is developed and maintenanced by [@azu](https://github.com/azu). Thanks for the great work! 13 | 14 | ## Bundled Packages 15 | 16 | Following packages are bundled in the distribution of the extension. Many thanks to the authors of the packages! 17 | 18 | 19 | | Package Name | Author | License | 20 | | ------------ | ------ | ------- | 21 | | [textlint](https://github.com/textlint/textlint/) | azu | MIT | 22 | | [textlint-rule-alex](https://github.com/azu/textlint-rule-alex) | azu | MIT | 23 | | [textlint-rule-common-misspellings](https://github.com/io-monad/textlint-rule-common-misspellings) | IRIDE Monad | GPL-3.0 | 24 | | [textlint-rule-general-novel-style-ja](https://github.com/io-monad/textlint-rule-general-novel-style-ja) | IRIDE Monad | MIT | 25 | | [textlint-rule-incremental-headers](https://github.com/matsu-chara/textlint-rule-incremental-headers#readme) | matsu_chara | MIT | 26 | | [textlint-rule-max-appearence-count-of-words](https://github.com/KeitaMoromizato/textlint-rule-max-appearence-count-of-words#readme) | Keita Moromizato | MIT | 27 | | [textlint-rule-max-comma](https://github.com/azu/textlint-rule-max-comma#readme) | azu | MIT | 28 | | [textlint-rule-max-kanji-continuous-len](https://github.com/azu/textlint-rule-max-kanji-continuous-len) | azu | MIT | 29 | | [textlint-rule-max-length-of-title](https://github.com/KeitaMoromizato/textlint-rule-max-length-of-title#readme) | Keita Moromizato | MIT | 30 | | [textlint-rule-max-number-of-lines](https://github.com/azu/textlint-rule-max-number-of-lines) | azu | MIT | 31 | | [textlint-rule-max-ten](https://github.com/azu/textlint-rule-max-ten) | azu | MIT | 32 | | [textlint-rule-ng-word](https://github.com/KeitaMoromizato/textlint-rule-ng-word#readme) | Keita Moromizato | MIT | 33 | | [textlint-rule-no-double-negative-ja](https://github.com/azu/textlint-rule-no-double-negative-ja) | azu | MIT | 34 | | [textlint-rule-no-doubled-conjunctive-particle-ga](https://github.com/takahashim/textlint-rule-no-doubled-conjunctive-particle-ga) | takahashim | MIT | 35 | | [textlint-rule-no-doubled-joshi](https://github.com/azu/textlint-rule-no-doubled-joshi) | azu | MIT | 36 | | [textlint-rule-no-dropping-the-ra](https://github.com/azu/textlint-rule-no-dropping-the-ra) | azu | MIT | 37 | | [textlint-rule-no-exclamation-question-mark](https://github.com/azu/textlint-rule-no-exclamation-question-mark) | azu | MIT | 38 | | [textlint-rule-no-hankaku-kana](https://github.com/azu/textlint-rule-no-hankaku-kana) | azu | MIT | 39 | | [textlint-rule-no-mix-dearu-desumasu](https://github.com/azu/textlint-rule-no-mix-dearu-desumasu) | azu | MIT | 40 | | [textlint-rule-no-nfd](https://github.com/azu/textlint-rule-no-nfd) | azu | MIT | 41 | | [textlint-rule-no-start-duplicated-conjunction](https://github.com/azu/textlint-rule-no-start-duplicated-conjunction) | azu | MIT | 42 | | [textlint-rule-one-white-space-between-zenkaku-and-hankaku-eiji](https://github.com/zlabjp/textlint-rule-one-white-space-between-zenkaku-and-hankaku-eiji#readme) | Z Lab | MIT | 43 | | [textlint-rule-preset-jtf-style](https://github.com/azu/textlint-rule-preset-jtf-style) | azu | MIT | 44 | | [textlint-rule-rousseau](https://github.com/azu/textlint-rule-rousseau) | azu | MIT | 45 | | [textlint-rule-sentence-length](https://github.com/azu/textlint-rule-sentence-length) | azu | MIT | 46 | | [textlint-rule-sjsj](https://github.com/azu/textlint-rule-sjsj) | azu | MIT | 47 | | [textlint-rule-spellcheck-tech-word](https://github.com/azu/textlint-rule-spellcheck-tech-word/) | azu | MIT | 48 | | [textlint-rule-unexpanded-acronym](https://github.com/azu/textlint-rule-unexpanded-acronym) | azu | MIT | 49 | | [textlint-rule-write-good](https://github.com/nodaguti/textlint-rule-write-good) | nodaguti | MIT | 50 | 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # textlint Chrome Extension 2 | 3 | [![wercker status](https://app.wercker.com/status/2f32f541de3ca03d8c8bc95152953ee9/s/master "wercker status")](https://app.wercker.com/project/bykey/2f32f541de3ca03d8c8bc95152953ee9) [![GitHub license](https://img.shields.io/github/license/io-monad/textlint-chrome-extension.svg)](LICENSE) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) 4 | 5 | Chrome Extension that proofreads `