マークダウンで電子書籍を作成する環境を探し続けている
マークダウンで電子書籍を作成する環境を探し続けている
困ったことに、なかなか電子書籍をすんなり作成できる環境を決めかねている。
いままで出版してきたものはすべてPandocというツールを利用したものだった。
コードのハイライトはhighlight.jsで、マークダウンに対して行うにはmetalsmithというnpmモジュールとmetalsmith-metalicというmetalsmithプラグインを併用して行っていた。
しかしWindowsとmacOSで同じような環境を作成しようとすると、意外と面倒だった。
metalsmithをコマンドラインツールとして使用したいのだが、WindowsとmacOSで起動のさせ方やどのファイルを実行するかなど、マークダウンファイルの与え方など細かい差があって、結局OSで切り分けするようなgulpファイルを書いていた。
でもどうにも面倒なことが1つあって、著者情報などを含めるYAMLフォーマットだけのマークダウンファイルをmetalsmith-metalicにかけてしまうと「マークダウンじゃねーじゃん」ということで空ファイルが出力されてしまうという困ったことがあった。現在はここだけ除いてmetalicしてる。
代わりを探そう
最近はマークダウンエディタでも便利なものが多くて、直接PDFにすることができたりする。スタイルシートを指定する必要があってもmarkdown-pdfというnpmモジュールを使うと不穏なエラーは出るもののPDFは生成することが簡単にできる。もちろんWindows10でもubuntuサブシステムを利用すれば余裕だ。
一方、epubを吐き出すことだけを考えると、そういうことにはならない。
やたら売れたりするわけではないからか、環境を整えるのが面倒だからかそこまで発展してないなという印象だ。
最近試してみたものを1つ紹介してみる。
epub-gen
これまたnpmモジュールだが、非常に小さなコードでepubをサクッと出力することができる。
var epub = require('epub-gen'); var fs = require('fs'); var json = JSON.parse(fs.readFileSync(process.argv[2]), 'utf8'); new epub(json);
これでコンソールから次のようにするとファイルが出力される。
node index.js sample.json
sample.jsonはルールに従って次のようにしておく。
{ "title": "晴れた空を誉めるなら夕暮れをウェイト", "author": "柏原 基規", "publisher": "なるーらぼ", "content": [ { "title": "ダイヤモンドだって", "data": "年をとっちゃう。<br/>まして、星なんて…<b>燃えて消えるんだ!!</b>" }, { "title": "形あるものが", "data": "限りあるなんて!無常!<br/>さみしさを添えて…<b>信じあっている。</b><img src='http://localhost/03-001.JPG' />" } ], "output": "./sample.epub" }
そうすると、こんな感じになる。
便利!
epub-genで電子書籍をつくるときに困ること
非常に簡単にjsonからepubにすることができた。content[].dataをマークダウンからHTML変換した文字列にしてやれば、マークダウンから自動でepubを作成することができる仕組みも簡単にできそう!
とぬか喜びした。
お気づきかもしれないが、先ほどのepubは画像ファイルを含んでいない。
どうやって表示しているかというと、ブラウザでページを見るときと同じくウェブサーバーからダウンロードして表示させているのだ。
だから画像のimgタグにあるsrc値は「http:」から始まっている。これはepub-genのreadmeにも記載があった。上記のサンプルでは手元でウェブサーバーを起動した状態にしていたわけだ。
どうやらepub-genでは画像をepubへ含めることができない。そのためこのような方式になっていると思われる。むむ、
でんでんコンバータ - http://conv.denshochan.com/
の有能さが際立つ。。。
ウェブサーバーをお持ちの電子書籍の著者さんはもしかしてたくさんいるのかな。
より良い環境を目指して
いまのところ、自分のやりたいようにやるにはPandocを利用した一連の仕組みが一番便利のようだ。
無念…しかし、もっと良い方法があるはずなのだ。
何も気にせず、マークダウンだけ記述していって画像は近くにimagesフォルダなど作成してその中へ放り込んでおいて、スタイルシートも同じフォルダ内に含めておけばまとめてepubにしてくれる未来があるはず。
きっと近い将来、MicrosoftとかがVisual Studioにマークダウンからepubにビルドしてくれるようなものを用意してくれるんだと思い込みつつ。










