kinoppyd.dev

blog

products

accounts & contact

技術書典5にて、Sinatraのコード解説本を頒布します。あと執筆環境の話。

posted at 2018-10-06 22:24:34 +0900 by kinoppyd

技術書典5に参加します

2018/10/08 に池袋サンシャインシティで開催される技術書典5にサークル参加します。すぺーすは「い22」です。よろしくお願いします。

頒布する本の内容は、ここ半年ほど作っていたMobbというボットフレームワークのコードを書くために読み込んだSinatraの、コードリーディングと解説の本です。Sinatraは非常にミニマルながらも強力な黒魔術と設計に支えられた、Ruby力を上げる教材としてとても良い題材だと思ったので、その知見を広く共有するために本にしました。

本の詳細と言い訳

頒布する本は、本文44ページで頒布価格は1000円にする予定です。これは、印刷した本の45%が売れた場合に、印刷代と参加費、その他諸経費がペイするように設定しました。45%の根拠は、同じサークルの檻総君が夏と冬に刷っている同人誌の売れ行きを観察するに、これくらいの数値設定が妥当だとおもわれるためです。

本文は、おおよそ二週間かからずに書き終わりました。しかし、その特急スケジュールのおかげで文字以外の図解などを作る暇がなく、やや読んでて疲れる本になってしまったという自覚があります。今回の技術書典でこの本を求めてくれる人が多ければ、もっと読みやすくした版を後日作成し、本を買っていただいた方には何かしらの形で無料で配れればと思ったりもしますが、その思いを実行できるくらい当日売れることを祈るばかりです。

本の執筆環境

今回、初めて技術書同人誌を書くにあたって、どのような環境で書こうかと考えていました。実現したかった要件は次の通りです。

そのため、markdownの補助があるクラウドエディタで執筆し、その後にmd2reviewで変換、という方法を模索しました。

tl; dr

StackEdit+GoogleDrive+md2reviewでやろうとおもったけど、なんか全体的にあんまりうまくいきませんでした。特に、md2reviewでの変換で完全に詰まってしまい、最終的にGitBookを使用しました。

markdownエディタ

クラウドで使えるmarkdownエディタはいくつかありますが、今回はStackEditを選択しました。他にもesa.ioも検討しましたが、次の理由でStackEditを選択しました。

しかし、ライブプレビューに関しては特に不満はありませんでしたが、GoogleDriveでの同期や、そもそもStackEditの完成度に関して大きく不満の残る結果になりました。

そもそもGoogleDriveをバックエンドに選択したかった理由は、markdownエディタを使用できないオフライン環境でも、iPadなどのDriveアプリから直接ファイルを編集したり参照したかったためです。しかし、StackEditは同期のバックエンドにGoogleDriveを選択できるだけで、ファイルへの直接のアクセスは出来ませんでした。そのため、タブレットやスマホから原稿を確認することが出来なかったのは大きな誤算でした。Safariでブラウザ版のDriveからStackEditを起動することもできず、不便でした。ただ、あとから気づいたことですが、StackEditを起動するとドメインがグーグルから移動したので、もしかしたらStackEditに直接アクセスしたら利用できたかもしれません(確認してないので不明です)。

他にも、StackEditはエディタとしてもあまり性能が良いとはいえず、とくにmarkdownの入力補助はほとんどありませんでした。また、起動するたびに勝手にファイルが増えたり、しょっちゅう同期が壊れたりなどで、とにかく不安定でした。恐らく、もう使うことは無いと思います。

markdownからRe:VIEWへの変換

md2reviewというgemがよく使われていると聞いたので、それを使う予定でした。しかし、実際にmdで原稿が完成したのちに変換をかけてみると、エラーが出て変換が出来ませんでした。何でだろうと思ってgemの中身を覗いてみましたが、いまいちよくわからず、印刷所の締め切りの3時間前の段階ではとても追跡する気にはなれませんでした。md2reviewのリポジトリを見てみると、最後のコミットが10ヶ月前であまり活発に開発されているとは言い難い状況だったので、諦めて他の手段を模索しました。

GitBook

入稿締め切りの3時間前に、藁にもすがる気持ちでmarkdownをPDFに変換してくれるソリューションを探したところ、GitBookに行き着きました。原稿のmdをそのままGitBookに渡すと、思った以上にすんなりとPDFに変換してくれたため、チュートリアルのようなものを読んで急いで原稿とSUMMARY.mdを編集し、出力しました。

成果物は、思いっきりどこかで見たことあるような装丁で、いろいろと直したいところもありました。しかし、窮地を救ってくれたGitBookには感謝の気持しかありません。

次回の執筆環境をどうするか

後日会社でいろんな人に聞いて回ったところ、多少の差異はあれ概ね次のような分類の環境が多かったです

最初からTeXやRe:VIEWもまあ無いことはないと思うのですが、どの環境でもライブプレビューなどを使いながら書くことに問題がありそうなので、あまり選択したくは無いと思います。

やはりMarkdownを利用したいので、SphinxかPandocを利用することになりそうです。この二つであれば、最後の組版の部分はどの環境でもというわけにはいかないでしょうが、原稿が完成するまではmarkdownで書くことができます。

また、エディタをどうしているかというのを社内で聞いたところ、ほぼ全員が「クラウドで同期とかどうでもよくない? 本当にどこでも書きたいの?」という意見だったので、なんだか自分の要求が特殊すぎる気がしました(実際、今回の原稿は自宅のPC、仕事のノート、私物のノートの3台の間を行ったり来たりしながら書いていたので、確実に自分は必要だと思うのですが……)。

エディタの部分はどうするか色々考える必要はありますが、次回の執筆にはSphinxかPandocを使おうと思っています。幸い、技術書典にはいくつか技術書を書く技術の本が出るので、それを買い求めようと思っています。

Sinatra本よろしくお願いします

よろしくおねがいします。