Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
あなたの校正を手伝ってくれるライブラリ。
今まで、校正作業は主に編集のフェーズの作業でした。 これからは校正情報を編集者が作り、著者が執筆しながら自分で校正を行うようになります。
自分のライブラリに組み込んで使う場合。
$ npm install --save prh
コマンドラインツールとして使う場合。
$ npm install -g prh
テキストファイルであれば、どのようなファイルであっても処理対象にすることができます。
$ prh --help
Usage: prh [options] [command] [--] [files...]
Options:
--rules-json emit rule set in json format
--rules-yaml emit rule set in yaml format
--rules <path> path to rule yaml file
--verify checking file validity
--stdout print replaced content to stdout
--diff show unified diff
--verbose makes output more verbose
-r, --replace replace input files
Commands:
init generate prh.yml
実際に利用した場合の出力例。
# 校正前のファイル例
$ cat sample.md
# サンプルですよ
cookieとjqueryという表記は正しいだろうか?
# チェックにひっかかる箇所の表示
$ prh sample.md
sample.md(3,1): cookie → Cookie
sample.md(3,8): jquery → jQuery
校正ルールをオプションで指定しない場合、校正対象となるファイルと同じディレクトリ、またはそれより上の階層で最初に見つかったprh.ymlを利用します。
どのファイルに対してどの校正ルールが利用されているか確認したい場合、 --verbose
オプションを利用してください。
基本的な書き方についてはmisc/prh.ymlを参照してください。
実用するための設定ファイルはprh/rulesのmedia/techbooster.ymlがおすすめです。
その他、prh/rulesに各種設定を取り揃えてあるので、好きに組み合わせてご利用ください。
init
サブコマンドでbasicな設定ファイルを作成できます(実用には不向き)。
$ prh init
create prh.yml
see prh/rules collection https://github.com/prh/rules
実用上は git submodule add https://github.com/prh/rules.git prh-rules
して好きなルールを使います。
これを参照するprh.ymlは次のように書きます。
version: 1
imports:
- ./prh-rules/media/techbooster.yml
--diff
オプションunified diff形式で変更点を出力します。 colordiffと組み合わせると標準のレポートより見やすくなるかもしれません。
$ prh --diff sample.md
Index: sample.md
===================================================================
--- sample.md before
+++ sample.md replaced
@@ -1,4 +1,4 @@
# サンプルですよ
-cookieとjqueryという表記は正しいだろうか?
+CookieとjQueryという表記は正しいだろうか?
--stdout
オプション校正を適用した結果をstdoutに出力します。
$ prh --stdout sample.md
# サンプルですよ
CookieとjQueryという表記は正しいだろうか?
v3.x系まではこのオプションがデフォルトの振る舞いでした。
--verify
オプションチェック結果をexit codeとして出力します。 文章のテストやCIなどに組み込む際に便利です。
$ prh --verify sample.md
Error: sample.md failed proofreading
....
$ echo $?
1
-r, --replace
オプション指定したファイルの校正結果を直接ファイルに上書きします。
$ prh --replace sample.md
replaced sample.md
$ cat sample.md
# サンプルですよ
CookieとjQueryという表記は正しいだろうか?
prh単体の利用ではMarkdownやRe:VIEWなどのファイルの構造は考慮できません。 そのため、URLの一部が変換されてしまったりします。 他にも意図的に指摘内容を無視したい場合があります。
そんな時、 prh:disable
プラグマを使うことができます。
prhは文章を段落毎に処理し、段落にプラグマが含まれる場合大本のルールよりそちらの支持を優先します。
具体例を見ていきましょう。
#@# prh:disable
ここの段落は全く校正されない。
#@# prh:disable:web
web→Webの校正ルールがある場合。
ここの段落はwebというワードが含まれていても無視するよう指定されているので警告されない。
#@# prh:disable:web|jquery|[abc]
無視ルールは正規表現として解釈されるため複雑な条件も記述できる。
ルールは後置することもできる。
#@# prh:disable
こんな塩梅です。
この例はRe:VIEWのコメント記法を使っていますが、お使いのフォーマットでコメントと解釈される任意の構造を使うことができます。
Markdownであれば <!-- prh:disable -->
とすることができます。
このため、無視するルールの記述に半角スペースを利用することができなくなっています。
代わりに \s
などを使ってください。
Atomのプラグインであるlanguage-reviewに組み込まれています。 エディタ上で執筆を行うと自動的に校正候補が表示され、その結果を原稿に反映していくことができます。
VSCodeの拡張もあります。 これもエディタ上で執筆を行うと自動的に校正候補が表示され、QuickFixか全修正をさせることもできます。
azuさんが作成しているtextlintのプラグインとしてtextlint-rule-prhが作成されています。
FAQs
proofreading helper
We found that prh demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.