ルールの一覧へ

見えない字がある

invisible-character既定で動く日本語 / 英語

ゼロ幅の空白、途中の BOM、ソフトハイフン、文字の向きの指定、制御文字、隠れたタグ文字のような、画面に出ない字

例

指摘される文
申込書は​総務課へ送ってください。
chaff の出力
1:5 ゼロ幅の字(U+200B)が 1 字あります。検索やコピーで語が切れます
直した文
申込書は総務課へ送ってください。
chaff の出力
指摘なし

直し方

見えない字を消してください。ノーブレークスペースは普通の空白にしてください。エディタの「不可視文字を表示」で場所が見えます。

なぜ指摘するのか

ゼロ幅の空白、途中に残った BOM、任意の改行位置の印(ソフトハイフン)、文字の向きの指定、制御文字は、画面では見えないまま本文に残ります。Web ページや PDF から貼り付けると入り、検索に当たらない語、押しても開かない URL、動かないコマンドの原因になります。向きの指定や、字の後ろに隠したタグ文字は、読み手に見える文と機械が読む文を食い違わせることにも使えるので、安全のための目印でもあります。見出しや箇条の印の後ろのノーブレークスペースは印を印でなくし、日本語の隣のノーブレークスペースは貼り付けの名残です。コードの中も数えます(コピーしたコマンドが動かなくなるため)。絵文字をつなぐ接合子、アラビア文字やインドの文字の接合子、右から左に書く文字の隣の向きの印と分離の印、地域の旗のタグ文字、字に一つ付いた異体字の指定は書き方の一部なので数えません。向きを強制する印(LRO・RLO)は、どこにあっても指摘します。

指摘しないもの

絵文字をつなぐ接合子、アラビア文字やインドの文字の接合子、右から左に書く文字の隣の向きの印、地域の旗のタグ文字、字に一つ付いた異体字の指定、ファイルの頭の BOM、英文の語と語のあいだのノーブレークスペースは指しません。

止める・ゆるめる

この一か所だけ黙らせる(文書に書く)
<!-- stet: invisible-character — 理由 -->
チームでゆるめる(理由は chaff.yaml にコメントで残ります)
npx chaffjs relax invisible-character --why "理由"
チームで止める(chaff.yaml)
rules: invisible-character: off
技術的な情報
層
L1
状態
安定
重さ
注意
対象の言語
日本語と英語
向いている文章
business, technical, blog, legal, docs, academic, literature, speech

強さ(段階)

chaff.yaml の rules にこの名前と段階を書くと変わります。書かなければ、ジャンルが決めた段階で動きます(どのジャンルで動くかは下の「ジャンルごとの動き」にあります)。

strictエラー
normal注意
relaxed情報

このルールには数える上限がありません。段階は指摘の重さを変えます。relaxed にすると指摘は消えずに一段軽く出ます。

ジャンルごとの動き

既定で動くジャンル
technical/spec, technical/readme, blog/tech, blog/essay, blog/owned-media, business/proposal, business/report, business/email, business/press-release, business/meeting-notes, legal/contract, legal/statute, legal/judgment, legal/patent, docs/manual, docs/faq, docs/glossary, academic/paper, literature/fiction, literature/essay, literature/poetry, literature/play, speech/address, speech/transcript

ジャンル

指摘の文

見えない字({code})があります

ゼロ幅の字({code})が {count} 字あります。検索やコピーで語が切れます

見えないソフトハイフン({code})が {count} 字あります。検索で語が切れます

文字の向きの指定({code})が {count} 字あります。見える順と読まれる順が食い違うことがあります

制御文字({code})が {count} 字あります

字の後ろに隠れた印({code})が {count} 字あります。読み手に見えない文を運べます

普通の空白の所にノーブレークスペース({code})があります

このページはルールの定義ファイルから作られています:packages/chaff/rules/invisible-character.yaml