僕はどちらかというとドキュメントを書くのが好きだ。ドキュメントって、正直言うと何も考えずに書くことができる。普段プログラムを書いたり回路を設計しているときは、頭を回転させないとちゃんとしたものが作れない。しかし、仕様書とかドキュメントって、その実何も考えずに作ることができるのだ。そういう意味で、僕はドキュメント作成はエンジニアにとって急速の時というか、いったん休憩を挟むのにちょうど良いものだと考えている。
ただしそんな気持ちでドキュメント作成に臨んでいるもんだから、クオリティが高いとは言えない。実際、自分で読み直してみると何書いてんだかわかんない時がある。 大学の卒業論文では、第1項を六に自分でチェックせずに先輩に見せたものだから、ずいぶんと訂正させられたものだ。 まあ、文章のストーリー性や組み立て方はともかく、一文一文を読みやすいものにしておきたい。そこで、文章校正ツールとしてRedPenを使ってみよう。
RedPen の特徴 設定が柔軟に行えます。(カスタマイズも柔軟) どのような言語で書かれた文書でも処理できます。(もちろん日本語も OK です) Markdown や Textile フォーマットで記述された文書をそのまま検査できます。
良さそうね。
RedPenのダウンロードとインストール
対象は、Ubuntu15.10だ。インストールにはJava 8とMavenが必要らしい。
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
次にRedPenをダウンロードする。
wget https://github.com/redpen-cc/redpen/releases/download/redpen-1.5.3/redpen-1.5.3.tar.gz tar xvfz redpen-1.5.3.tar.gz cd redpen-distribution-1.5.3/ ./bin/redpen -c conf/redpen-conf-ja.xml sample-doc/ja/sampledoc-ja.md ... [2016-03-27 14:46:00.463][ERROR] cc.redpen.Main - The number of errors "28" is larger than specified (limit is "1").
いくつかエラーが表示された。なるほど、こうやって校正していくのね。 じゃあ、僕の作ったドキュメントを使うとどうなるんだろう。
自分の翻訳資料をRedPenで構成してみる
xv6のドキュメントを、日本語化したものを公開している。これを使って、校正をかけてみよう。
git clone https://github.com/msyksphinz/xv6_translate.git ./redpen-distribution-1.5.3/bin/redpen -c ./redpen-distribution-1.5.3/conf/redpen-conf-ja.xml xv6_translate/chapter0.md ... とを見ることができるだろう。 chapter0.md:283: ValidationError[DoubledWord], Found repeated word "に". at line: xv6を学んだあとは、読者はより複雑なオペレーティングシステムを学ぶことによって、xv6の内部の考え方がそれらのシステムにも同様に存在しているこ とを見ることができるだろう。 chapter0.md:283: ValidationError[DoubledWord], Found repeated word "こと". at line: xv6を学んだあとは、読者はより複雑なオペレーティングシステムを学ぶことによって、xv6の内部の考え方がそれらのシステムにも同様に存在している ことを見ることができるだろう。 chapter0.md:283: ValidationError[DoubledWord], Found repeated word "を". at line: xv6を学んだあとは、読者はより複雑なオペレーティングシステムを学ぶことによって、xv6の内部の考え方がそれらのシステムにも同様に存在しているこ とを見ることができるだろう。 chapter0.md:283: ValidationError[DoubledWord], Found repeated word "こと". at line: xv6を学んだあとは、読者はより複雑なオペレーティングシステムを学ぶことによって、xv6の内部の考え方がそれらのシステムにも同様に存在している ことを見ることができるだろう。 chapter0.md:283: ValidationError[DoubledWord], Found repeated word "が". at line: xv6を学んだあとは、読者はより複雑なオペレーティングシステムを学ぶことによって、xv6の内部の考え方がそれらのシステムにも同様に存在しているこ とを見ることができるだろう。 chapter0.md:283: ValidationError[SpaceBetweenAlphabeticalWord], Space not present before an alphabetical word. at line: 本書はxv6をUnix系のインタフェースインタフェーウとして実装する方法について述べるが、アイデアと概念はUnixだけに適用されるものではない。 chapter0.md:283: ValidationError[SpaceBetweenAlphabeticalWord], Space not present before an alphabetical word. at line: 本書はxv6をUnix系のインタフェースインタフェーウとして実装する方法について述べるが、アイデアと概念はUnixだけに適用されるものではない。 chapter0.md:283: ValidationError[SpaceBetweenAlphabeticalWord], Space not present after an alphabetical word. at line: 本書はxv6をUnix系のインタフェースインタフェーウとして実装する方法について述べるが、アイデアと概念はUnixだけに適用されるものではない。 chapter0.md:283: ValidationError[SpaceBetweenAlphabeticalWord], Space not present before an alphabetical word. at line: 本書はxv6をUnix系のインタフェースインタフェーウとして実装する方法について述べるが、アイデアと概念はUnixだけに適用されるものではない。 chapter0.md:283: ValidationError[SpaceBetweenAlphabeticalWord], Space not present after an alphabetical word. at line: 本書はxv6をUnix系のインタフェースインタフェーウとして実装する方法について述べるが、アイデアと概念はUnixだけに適用されるものではない。 [2016-03-27 14:49:44.465][ERROR] cc.redpen.Main - The number of errors "1663" is larger than specified (limit is "1").
めちゃ怒られた。これはひどい。
分類してみる
SectionLength : The number of characters in the section (2,141) exceeds the maximum of 1,500.
セクションの長さの規定か。これ以上長く書くなということ?まあ確かに、一節が長いと読む気はなくなるかもしれない。ってか、これを出すってことはMarkdownのセクションをちゃんと認識してるってことね。えらい。
ValidationError[DoubledWord], Found repeated word
これ、結構多い。どうやら、接続詞などを続けても怒られるようだ。確かに、僕は接続詞と句読点で文章を続ける傾向があるので、それは大量に指摘されるのかもしれない。
ValidationError[SpaceBetweenAlphabeticalWord], Space not present before an alphabetical word.
そうなんだ。細かいね...
どうやら、上記の3種類がよく怒られるエラーの代表らしい
ここら辺は、キチンと気を付けて書ける人はどれくらいいるんだろうか。。。
というわけでこのエントリを校正してみる
./redpen-distribution-1.5.3/bin/redpen -c ./redpen-distribution-1.5.3/conf/redpen-conf-ja.xml ./diary.md ... [2016-03-27 14:57:08.330][ERROR] cc.redpen.Main - The number of errors "72" is larger than specified (limit is "1").
あらまあ。でも、
diary.md:1: ValidationError[DoubledWord], Found repeated word "と". at line: 僕はどちらかというとドキュメントを書くのが好きだ。
これは勘弁してほしいかなあ。