Scala逆引きレシピの執筆環境

一人で書くときは好きな方法でよいのですが、共著の場合は原稿の共有方法をどうするかといった部分が課題になります。書籍の場合、これまではOpenOfficeで書くことが多く、それでもそれなりにうまく行っていたのですが、以下のような問題もありました。

  • ファイルはMercurialで共有していたが、どうしても書き上げてから共有という形になりがちで途中経過が見えない
  • コンフリクトするとマージが難しいため、編集が被らないように注意する必要がある
  • ファイルサイズが大きくなると保存に時間がかかる
  • 見出しの抽出や横断検索といったテキスト処理がやりにくい

以前、Google Docsの利用も考えたことがあるのですが、あれは経験上、数ページの文章を書くのであればよいのですが、長文を書くのには向いていないです。スタイルを統一するのも難しいですし。そんなわけで、今回は前々からやってみたいと思っていた、FSWikiを使って原稿を書いてみました。

FSWikiでの原稿執筆

書籍のスタイルにあわせて専用のプラグインをいくつか作っています。今回はシリーズものでレイアウトも最初から決まっていたので、ブラウザ上でもなるべくそれに近い表示になるように工夫し、PCのブラウザ上で読むだけでなく、PDFにしてタブレットで読んだり、印刷して書籍でのイメージに近い形で読めるようにしたり、CSSの切り替えでスマートフォンで見たときも読みやすいようにして、どこでも原稿のチェックができるようにしました。また、レビューのコメントもプラグインを使ってWiki上でやり取りできるようにして、脱稿までの作業はすべてWiki上で行えるようにしました。
もちろん自分はFSWikiには慣れているので問題ないのですが、共著者さんは最初は戸惑いがあったようです。が、最終的にはWikiでやってよかったかなと思っています。特に作業経過がお互いに見えるので、早い段階で方向性の統一・修正が可能になったという点が大きかったです。また、プラグインで原稿のページから目次やコラム、レビューコメントなどの一覧を抽出したり、ワードカウントを集計して表示したり、特定のキーワードでgrepしたりということもできるようになりましたし、ページをまたいだ相互参照を行うプラグインなどを自作したのも作業効率の改善に役立ったのではと思います。
とはいえ、ブラウザのテキストエリアで長文を書くのは結構骨が折れます。そのため記事はテキストエディタで執筆し、それをWikiに貼り付けるという方法で書いていました。エディタをカスタマイズしてFSWikiの書式で強調表示できるようにしていたので結構快適だったのですが、Wikiに貼り付ける際にコンフリクトに関しては気をつける必要がありました(ページに丸ごと新しい内容を貼り付けるため、編集内容を上書きしてしまっても気づかないことが多い)。あと、原稿の量が増えてくると目次の抽出などWiki自体の処理がかなり重くなってきてしまいました。これはちゃんと専用のサーバを立てれば解決できたと思います。

改善できそうな点

Wikiでの執筆に関して改善できそうな点としては以下のような部分でしょうか。

  • ローカルでプレビューできないのがめんどくさい(書式に慣れるまではかなり重要。途中からモバイルルータを導入したのですが、もっと早く導入するべきだったかも)
  • やはりコンフリクトには気をつける必要がある(バックエンドはMercurialとかにして、表示だけHTMLに変換して見れるようにする、みたいな仕組みのほうがよいのかも)

そのあたりを除けば、Wikiでの執筆はなかなか快適な環境だったと思います。ただし、使っていたのがFSWikiで、自分でごりごりカスタマイズすることができたから、という面はやはり大きかった気がします。作成したプラグインも今回の書籍に特化したものなので使い回しが(ほとんど)効かなそうなので、毎回書籍にあわせてプラグインを作る必要がありそうです。そういう部分まで含めて考えると一概に「ワープロよりWikiのほうがいい」というわけでもないのかもしれません。