Awesome
textlint-rule-no-nfd
textlint rule that disallow to use NFD like UTF8-MAC 濁点.
ホ゜ケット エンシ゛ン
といったMac OS XでPDFやFinderからのコピペで問題となる濁点を見つけて、修正するtextlintルールです。
Install
Install with npm:
npm install textlint-rule-no-nfd
Usage
Via .textlintrc
(Recommended)
{
"rules": {
"no-nfd": true
}
}
Via CLI
textlint --rule no-nfd README.md
Fixable
textlint --fix
での自動修正に対応しています。
Example
゜or \u309a
NG: ホ゜ケット
: ホ\u309aケット
OK: ポケット
゛or \u3099
NG: エンシ゛ン
: エンシ\u3099ン
OK: エンジン
Changelog
See Releases page.
Running tests
Install devDependencies and Run npm test
:
npm i -d && npm test
Further Reading
2種類の濁点
以下はそれぞれ単独で存在できるVOICED SOUND MARK
- ゜
\u309b
- ゛
\u309c
もう一つは、Combining Characterと呼ばれる結合する前提のCharacter(単独では存在できない)がある。
\u3099
- e.g.)
ホ\u309aケット
- e.g.)
\u309a
- e.g.)
エンシ\u3099ン
- e.g.)
via Unicodeの特殊な文字 “結合文字列” | ものかの
これらのそれぞれをチェックし、normalizeする。
String.prototype.normalize()
は、Combining Characterに対してのみ有効で、
単独で存在できる゜\u309b
と゛\u309c
は置換することでnormalizeする。
- String.prototype.normalize() - JavaScript | MDN
- UTF-8にもいろいろある - ザリガニが見ていた...。
- [JavaScript]\uXXXX形式にunicodeエスケープする関数 / LiosK-free Blog
- unoh.github.com by unoh
- 正規化 - odz buffer
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
License
MIT © azu