Web サイト上の
[TOC]
HTML 文書 を チェックしたい 動機
Static Site Genelator を
CMS を
開発環境での
適用後、 Production 環境での リリース後に、 サーバから 配信される HTML に 対して 最終チェックの 意味で Lint を かけたい。 原始的な
環境、 モダンな 環境でも、 最終的には HTML に なるので 開発環境には 左右されず チェックが できる。
以上 2つが
textlint と textlint-plugin-html の インストール
textlint 本体と、
textlint の
インストール npm install -g textlint
GitHub - textlint/textlint-plugin-html: HTML support for textlint の
インストール npm install -g textlint-plugin-html
これで、
stdin
オプション指定してcurl で 取得した HTML を チェックする curl https://www.monotalk.xyz | textlint --stdin % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 79127 100 79127 0 0 187k 0 --:--:-- --:--:-- --:--:-- 188k == Not have rules, textlint do not anything == => How to set rule? See https://github.com/textlint/textlint/blob/master/docs/configuring.md
ルールセットの
以下、
ルールセットの インストール
チェックしたい 文章の イメージ
チェックしたい
個人の
この
使用する ルール
2017/11/12 段階の
以下、
ルール名 | Notes |
---|---|
textlint-rule-no-todo | TODO 記載はが存在するかチェックするルール |
textlint-rule-no-start-duplicated-conjunction | 連続した否定があるかをチェックするルール |
textlint-rule-max-number-of-lines | 長すぎる文をチェックするルール。デフォルト300文字 |
textlint-rule-max-comma | 一文に登場するカンマの数に対するチェック |
textlint-rule-no-exclamation-question-mark | ?,!,?,! の使用可否に関するルール |
textlint-rule-ng-word | NGワードをチェックするルール |
textlint-rule-no-dead-link | デッドリンクチェック。これは 放置している HTML 文書チェックに使えるかと思います |
textlint-rule-no-empty-section | 空の節をチェックするルール |
textlint-rule-date-weekday-mismatch | 日付表示の間違いをチェックするルール |
textlint-rule-terminology | 表示揺れをチェックするルール |
textlint-rule-no-nfd | PDFなどから、文章をコピーすると発生する変な濁点をチェックするルール |
textlint-rule-no-surrogate-pair | Unicodeのサロゲートペアの文字が使われているかチェックするルール |
textlint-rule-max-ten | 一文に利用できる、の数をチェックするルール |
textlint-rule-max-kanji-continuous-len | 漢字が連続できる最大文字数を制限するルール |
textlint-rule-web-plus-db | WEB+DB PRESS用語統一ルール |
textlint-rule-no-doubled-joshi | 文中に同じ助詞が複数出てくるのをチェックするルール |
textlint-rule-no-double-negative-ja | 二重否定をチェックするルール |
textlint-rule-no-hankaku-kana | 半角カタカナの使用を禁止するルール |
textlint-rule-ja-no-redundant-expression | 冗長な表現を禁止するルール |
textlint-rule-ja-no-abusage | よくある日本語の誤用をチェックするルール |
textlint-rule-no-mixed-zenkaku-and-hankaku-alphabet | 全角と半角アルファベットを混在をチェックするルール |
textlint-rule-sentence-length | センテンスの文字数をチェックするルール |
textlint-rule-first-sentence-length | セクションの最初のセンテンスの文字数をチェックするルール |
textlint-rule-no-dropping-the-ra | ら抜き言葉か使われてないかをチェックするルール |
textlint-rule-no-doubled-conjunctive-particle-ga | 逆接の接続助詞「が」をチェックすルール |
textlint-rule-no-doubled-conjunction | 同じ接続詞が連続して出現していないかどうかをチェックするルール |
textlint-rule-ja-no-mixed-period | 文末の句点記号(。)の統一 と 抜けをチェックするtextlintルール |
textlint-rule-max-appearence-count-of-words | 段落内の単語の出現回数をチェックするルール |
textlint-rule-max-length-of-title | タイトルの文字数をチェックするルール |
textlint-rule-incremental-headers | 見出しのレベルが適切かチェックするルール |
textlint-rule-ja-hiragana-keishikimeishi | 漢字よりもひらがなで表記したほうが読みやすい形式名詞を指摘するルール |
textlint-rule-ja-hiragana-fukushi | 漢字よりもひらがなで表記したほうが読みやすい副詞を指摘するルール |
textlint-rule-ja-hiragana-hojodoushi | 漢字よりもひらがなで表記したほうが読みやすい補助動詞するルール |
textlint-rule-ja-unnatural-alphabet | IMEの入力ミスによるtypoなど不自然なアルファベットを指摘ルール |
@textlint-ja/textlint-rule-no-insert-dropping-sa | サ抜き、サ入れ表現の誤用を指摘。適用するルール |
textlint-rule-prefer-tari-tari | 例示・並列・対表現の「〜たり〜たりする」をチェックするルール |
ルールの インストールする
ルールを
以下実行した
- npm インストール
#!/bin/sh npm install -g textlint-rule-no-todo npm install -g textlint-rule-no-start-duplicated-conjunction npm install -g textlint-rule-max-number-of-lines npm install -g textlint-rule-max-comma npm install -g textlint-rule-no-exclamation-question-mark npm install -g textlint-rule-ng-word npm install -g textlint-rule-no-dead-link npm install -g textlint-rule-no-empty-section npm install -g textlint-rule-date-weekday-mismatch npm install -g textlint-rule-terminology npm install -g textlint-rule-no-nfd npm install -g textlint-rule-no-surrogate-pair npm install -g textlint-rule-max-ten npm install -g textlint-rule-max-kanji-continuous-len npm install -g textlint-rule-web-plus-db npm install -g textlint-rule-no-doubled-joshi npm install -g textlint-rule-no-double-negative-ja npm install -g textlint-rule-no-hankaku-kana npm install -g textlint-rule-ja-no-redundant-expression npm install -g textlint-rule-ja-no-abusage npm install -g textlint-rule-no-mixed-zenkaku-and-hankaku-alphabet npm install -g textlint-rule-sentence-length npm install -g textlint-rule-first-sentence-length npm install -g textlint-rule-no-dropping-the-ra npm install -g textlint-rule-no-doubled-conjunctive-particle-ga npm install -g textlint-rule-no-doubled-conjunction npm install -g textlint-rule-ja-no-mixed-period npm install -g textlint-rule-max-appearence-count-of-words npm install -g textlint-rule-max-length-of-title npm install -g textlint-rule-incremental-headers npm install -g textlint-rule-ja-hiragana-keishikimeishi npm install -g textlint-rule-ja-hiragana-fukushi npm install -g textlint-rule-ja-hiragana-hojodoushi npm install -g textlint-rule-ja-unnatural-alphabet npm install -g @textlint-ja/textlint-rule-no-insert-dropping-sa npm install -g textlint-rule-prefer-tari-tari
HTML の チェック実行
チェック時に あった ほうが よい ライブラリの インストール
実際の
- html-cli の
インストール
HTML を整形する html-cli
をインストールします。 npm install -g html-cli
.textlintrc
ファイルの 作成
インストールした.textlintrc
ファイルを
ルール プロパティには
{ "plugins": [ "html" ], "rules": { "no-todo": true, // html 形式の場合<p>タグが検出されてしまうので、コメントアウトしておく //"no-start-duplicated-conjunction": { // "interval" : 2 // interval of sentences //}, "max-number-of-lines": { "max" : 300 }, "max-comma": { "max" : 3 }, // エクスクラメーションマークに対するチェック "no-exclamation-question-mark": true, // デッドリンクチェック "no-dead-link": { "checkRelative": false, "baseURI": null, "ignore": [] }, "no-empty-section": true, "date-weekday-mismatch": { "lang": "ja" }, "terminology": { // Load default terms (see terms.json in the repository) "defaultTerms": true, // Syntax elements to skip. Overrides the default "skip": ["Blockquote"], // List of terms "terms": [ // Exact spelling including the case "JavaScript", "ESLint", "Sass", "Less", "npm", // RegExp (case-insensitive) → replacement ["front[- ]end(\\w*)", "frontend$1"], ["back[- ]end(\\w*)", "backend$1"], ["web[- ]?site(s?)", "site$1"], ["hot[- ]key", "hotkey"], ["repo\\b", "repository"], ["CLI tool(s?)", "command line tool$1"], ["build system(s?)", "build tool$1"], ["id['’]?s", "IDs"], ["(\\w+[^.?!]\\)? )webpack", "$1webpack"], ["(\\w+[^.?!]\\)? )internet", "$internet"] ], // // OR load terms from a file // "terms": "~/terms.json", // // OR load terms from npm // "terms": "@johnsmith/terms" }, "no-nfd": true, "no-surrogate-pair": true, "max-ten": { "max" : 3 }, "max-kanji-continuous-len": { // 連続できる漢字の文字数 // Allow max continuous length of kanji // If {current} > max(5), report Error. max: 5, // "倍精度浮動小数点数"という単語は例外として無視します allow: ["倍精度浮動小数点数"] }, "web-plus-db": true, "no-doubled-joshi": { "min_interval" : 1, "strict": false, "allow": [] }, "no-double-negative-ja": true, "no-hankaku-kana": true, "ja-no-redundant-expression": true, "no-mixed-zenkaku-and-hankaku-alphabet": true, "sentence-length": true, "no-dropping-the-ra": true, "no-doubled-conjunctive-particle-ga": true, "ja-no-mixed-period": true, "textlint-rule-max-appearence-count-of-words": { "limit": 5 }, "textlint-rule-max-length-of-title": { "#": 25, "##": 30 }, "incremental-headers": true, "ja-hiragana-keishikimeishi": true, "ja-hiragana-fukushi": true, "ja-hiragana-hojodoushi": true, "ja-unnatural-alphabet": true, "@textlint-ja/textlint-rule-no-insert-dropping-sa": true, "prefer-tari-tari": true } }
チェック実行
以下コマンドで、
整形した
curl コマンドで
取得した HTML を 整形して、 保存整形した HTML に textlint の チェックを 実行する curl "https://www.monotalk.xyz/blog/wicket-152-%E3%81%A7css-javascript-%E3%81%AE-reference-%E5%87%BA%E5%8A%9B%E3%82%92%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/" | html | tee pretty.html | textlint --stdin
OUTPUT
1393:25 error Disallow to use "!" no-exclamation-question-mark 1393:43 error Disallow to use "?" no-exclamation-question-mark 1402:23 error Disallow to use "!" no-exclamation-question-mark 1402:40 error Disallow to use "?" no-exclamation-question-mark ✖ 1176 problems (1176 errors, 0 warnings) ✓ 539 fixable problems. Try to run: $ textlint --fix [file]
TODO 事項
自分なりの.textlintrc
作成、
今後は、
- 使用状況に
合わせて 辞書追加、 ルール設定値の カスタマイズを 行う。 - HTML 文書チェックを
スケジュール実行する
以上です。
For English ルールは
一律適用していません。 ↩ install 時に
以下、 WARN
とERROR
が出力されました。
textlint-rule-ja-hiragana-daimeishi
と、textlint-rule-hyogai-onkun
はインストール自体が うまくいかなかったようなので、 除外しました。 ↩npm WARN textlint-rule-no-todo@2.0.0 requires a peer of textlint@>= 5.6.0 but none is installed. You must install peer dependencies yourself. npm WARN textlint-rule-prh@2.4.1 requires a peer of textlint@>= 5.5.0 but none is installed. You must install peer dependencies yourself. npm WARN textlint-rule-prh@3.1.3 requires a peer of textlint@>= 5.5.0 but none is installed. You must install peer dependencies yourself. npm ERR! code E404 npm ERR! 404 Not Found: textlint-rule-ja-hiragana-daimeishi@latest npm ERR! code E404 npm ERR! 404 Not Found: textlint-rule-hyogai-onkun@latest
ドキュメントでは、
グローバルオプションを つけない インストールが 推奨されています。 ↩
コメント