RedPen version 1.6 をリリースしました
伊藤(takahi_i)
ATL の伊藤です。この度、RedPen version 1.6 をリリースしました。変更の目玉はRe:VIEW フォーマットのサポートとアノテーションによるエラー抑制です。
Re:VIEW フォーマットのサポート
Re:VIEW は Markdown や Wki 記法 のようなマークアップ言語のひとつです。Re:VIEW をサポートしてほしいという意見は RedPen 開発当初から頂いていたのですが、やっと対応できました。
以下、Re:VIEW のホームページです。
https://github.com/kmuto/review/wiki
Re:VIEW は表現豊かなマークアップ言語です。reSt や AsciiDoc に比べても機能(記法)が豊富に提供されています。その豊かな表現力から、多くの技術書籍 を含む本格的なドキュメントがすでに Re:VIEW で記述されています。書籍を出版する際には Re:VIEW フォーマットの選択を検討するとよいでしょう。
特に編集者の方が InDesign を使っている場合には、Re:VIEW が提供するフィルタ機能から強力なサポートが得られます。詳しくは武藤さんが書いた以下のスライド(商業出版物におけるReVIEW+InDesign組版)を参照してください。
エラー抑制
RedPen をつかって検査していると、修正したくないエラーが検知されます。多くは RedPen の意図は理解できても「修正による利得が少ない場合」です。
エラーを抑制したいケース
たとえば、私はコンマの数を CommnaNumber で検査しています。CommaNumber は本来複数の文に分割するべき文を、コンマを使ってだらだらと接続している箇所を検知するのに便利です。たとえば以下の文は、複数の文に分割するべきですがコンマを利用して一文にまとめてしまっているため理解するのに時間がかかります。
1 2 |
最近利用されているソフトウェアの中には、複数の計算機上で動作(分散)するものが多く存在し、このような分散ソフトウェアは、複数の計算機で動作することで大量のデータを扱えたり、高負荷な状況に対処できたりします。 |
CommaNumber を使うと上記のような文を検知できて便利です。しかし、私が文書を書いているときに CommaNumber を無視したい場合があります。それは事象を列挙している場合です。たとえば、自転車のパーツを列挙する以下の文を考えます。
1 2 |
自転車の大きな部品は五つ(フレーム、ペダル、サドル、カゴ、ギア)ある。 |
上の文は自転車のパーツの部品を列挙しているだけで、それほど読みにくくはありません。たしかに括弧の長さが気になります。しかし他にもっと文書の品質をあげなくてはならない箇所があれば、まずは無視しても構わないでしょう。
エラーを抑制する方法
エラー抑制機能では、文書の節の前にコメントを追加します。コメントの中には @suppress に続けて抑制したいエラーを追加します。先ほどの例では以下のようにエラーを抑制します。
1 2 3 4 5 |
<!-- @suppress CommaNumber --> # 自転車の部品 自転車の大きな部品は五つ(フレーム、ペダル、サドル、カゴ、ギア)ある。 |
節内の全ての種類のエラーをまとめて抑制したい場合には、コメントに @suppress だけを追加してください。以下の例は節内に存在する全てのエラーを抑制しています。
1 2 3 4 5 |
<!-- @suppress --> # 自転車の部品 自転車の大きな部品は五つ(フレーム、ペダル、サドル、カゴ、ギア)ある。 |
例で使用した Markdown 以外のフォーマット(AsciiDoc、Re:VIEW、LaTeX)もエラー抑制に対応しています。詳しくはマニュアルを参照してください。
JavaScript で作成された機能からのエラーを抑制する
機能の中には JavaScript で作成されたものがあります。JavaScript で記述された機能を抑制したい場合には機能を実装したファイル名から拡張子を削除した文字列を追加してください。
たとえば、long_kanji_chain.js (長すぎる漢字連続を検知する)という機能からのエラーを抑制するには以下のようになります。
1 2 3 4 5 |
<!-- @suppress long_kanji_chain --> # ピッコロ大魔王の必殺技 くらえ必殺魔貫光殺砲! |
その他の変更
RedPen v1.6 では先のふたつの変更以外にも機能が強化されています。簡単に変更を紹介します。
Tokenizer 用の UI
RedPen では JavaScript を使って機能を作れます。今回提供される UI を利用すると、入力された文の単語に分割された結果が得られます。
機能の実装に役立ててください。
Tokenizer UI はサンプルサーバでも動作しています。ぜひ試しに利用してみてください。
機能追加
今回機能をいくつか追加しました。この冬に書いていた書籍「ドキュメント作成システム構築ガイド」で利用したものです。
節に関する機能
- VoidSeciton 中身が無い節に(章)対してエラーを出力します。節の中に文がなく、小節から始まるときにもエラーを出力します。たとえば以下の例を考えます。
1 2 3 4 5 6 |
# 分散システム ## 分散システムのメリット ... ## 分散システムのデメリット ... |
上の例では、節(分散システム)のはじめに文やパラグラフがなく、そのまま小節が始まっています。ページ数に制約がないのであれば、節で扱う内容をはじめに書いてあげると読者の助けになります。上記の例では、以下のような文が追加されます。
1 2 3 4 5 6 7 8 |
# 分散システム 本節では、はじめに分散システムのメリットについて述べる。その後、分散システムが考慮するべきデメリットについても解説する。 ## 分散システムのメリット ... ## 分散システムのデメリット ... |
- SectionLevel 環境によっては小さな小節を利用できないことがあります。SectionLevelは節が細かすぎるとエラーを出力します。
表現に関する機能
- JapaneseAmbiguousNounConjunction 格助詞の「の」+名詞連続+格助詞の「の」というパターンを発見するとエラーを出力します。以前作成した DoubledJoshi と DoubledWord が強すぎる制約のため、「の」の多用だけを検知する機能として抜き出しました。
-
LongKanjiChain 漢字の連続が長すぎるとエラーを出力します。
-
JapaneseNumberExpression 日本語の数値表現を検査する機能です。「ひとつ、ふたつ」、「1つ、2つ」などのゆらぎを検知します。
拡張子からのファイルフォーマット自動同定
入力ファイルの拡張子から自動で利用するパーサを選択する機能が追加されました。対応する拡張子など詳しくはマニュアルを参照してください。
今後の予定
今後ルールベースでの機能を強化する方法を考えています。RedPen の Re:VIEW パーサは現在、最低限動くという状況です。今後も時間をかけてRe:VIEWパーサの問題箇所を修正ていくつもりです。