電書評::FUSEe(R)β公式マニュアル

f:id:uraito:20120426201232p:plainFUSEeではいろいろ遊ばせていただいているので、FUSEe(R)β公式マニュアルEPUB版)を文楽さんで買わせていただきまして。

以下書評というか紹介などもろもろ+αでございます。

大事なことは最後にちょろっとではなく最初に書けといわれましたので、書いときますとFUSEeのユーザーグループFacebookでやりますので皆様参加してください。

 

FUSEeとは?

そもそもFUSEeとは、株式会社フューズネットワークの開発するEPUB製作環境です。有償の製品版がAmazon等で購入できますが、この公式マニュアル内での説明を引用しますと。

FUSEe®はEPUB型式のファイルを制作するためのオーサリング環境です。現バージョンでは、EPUB内部コードを直接編集できるユーザーインターフェイスを設けていて、他のソフトウェアやウェブサービスには見られない、コンテンツに関する自由な編集・記述が可能です。

ということで、EPUBをオーサリングするにあたって細かいコーディングレベルまで手を入れられる自由度の高さと、EPUBを生成するにあたって便利な機能を盛り込んでバランスをとっている点が特徴です。また、そのベータ版「FUSEeβ」に関しては、これまた本文から。

FUSEeβは開発先行公開版という位置付けで無償公開されています。β版で機能の実装を行い、そのフィードバックをもとに製品版に機能が搭載されます。EPUB3.0への対応の実装においてもβ版にて先行公開し、現在に至っています。

ということで私も利用させていただいていますが先行的に便利な機能がいろいろ使えます。表示環境にWebkitのNightly Buildsを取り込んでいたり、またver.0.1.1b2からはWebインスペクタが使えるようになりJavascriptデバッグなどが飛躍的に便利になったり、EPUB3でどこまでいけるのか実験するのに最適です。

無保証ながら無償と人柱精神あふれるあなたにはぴったりなソフトと言えるでしょう。

 

FUSEeβ公式マニュアル

進化が早いためか公式のマニュアルがこれまでありませんでしたが、3月についにEPUB版のマニュアルが出ました。文楽さんなど電子書籍で購入可能です。⇒FUSEe(R)β公式マニュアル

価格は5,775円と、まぁ少々いたしますが、FUSEeβが無料であるため少々のお布施と思いここは払っときましょう。その中身ですが、以下目次です。

 第1章 FUSEeβの使用準備
 第2章 EPUBの基礎知識
 第3章 FUSEeβの基本操作
 第4章 EPUB3制作の基本手順
 第5章 書籍らしく体裁を整える
 第6章 これだけは覚えておきたいXHTMLCSSの基礎
 第7章 EPUB 2.0.1型式での制作
 第8章 EpubCheckで検証する
 第9章 FUSEeβの便利機能
 第10章 テンプレート機能を使用する
 第11章 プラグインを使ったインポート
 第12章 既存EPUBファイルの再編集
 付 録 キーボードショートカット一覧

これ一式でEPUBの基本から、制作に必要なXHTMLCSSの基礎、製作したEPUBの検証まで、FUSEeのマニュアルと銘打ってはいますがEPUB製作の基本的な知識や実務上のTIPSまで一通りの知識がそろいます。

その上で、テンプレートの使い方などの便利な機能を使いこなせるようになれば、かなり自在に思ったとおりのEPUBを作れるようになるでしょう。(思ったとおりに表示されるかはリーダー次第ですが)

とはいえ、HTML5CSSの解説書ではありませんので実際の制作上は別の書籍などを参照する必要があるでしょう。おそらくこのあたり、どこまでマニュアルに盛り込むかいろいろな検討があったのだと思いますが、バランスよくまとめられているなぁという印象です。

また、発行がこの3月であるというタイミングですので、EPUB3の策定からのライブ感(というかはっきりいうと未成熟な部分)に関する記述などが、今まさに動いている分野なんだなぁ、と思わされます。FUSEeβもこのマニュアルが発行されてからバージョンアップし、さらに機能が増えていますので、このマニュアルも更新版が発売されるにつれ、各所記述が大きく変わっていくのでしょう。(ですよねー?)その際は安価なアップデート版マニュアルがでるんでしょう。(そうですよねー?)

この本で特に役だった点としては「第4章 EPUB3制作の基本手順」の中のEPUB2とEPUB3の目次の違いに記述されている「EPUB 2.01/3.0混在形式」についての説明でした。いままでどういう機能なのかよく分かってなかったんですが、両方の環境で読めるよう両方の目次を自動生成してくれるものだったんですね。確かにepubcheckで引っかかっちゃいますが過渡期の現実解として大変便利な機能でよく考えられているなーと思いました。

 

ちなみにマニュアルのEPUBについて

ちなみに、このマニュアルそのものもEPUBなのでFUSEeで開いて中を確認することができます。
EPUBのバージョンは2.0であり、XHTMLではありますが「xmlns:epub="http://www.idpf.org/2007/ops"」な感じのボキャブラリは使われていません。

 上記にあるように、特にEPUB2と3で仕様が大きく変わった目次の取扱いについてはEPUBリーダー側でも対応がまちまちで、iBooksでもちょっとしたことで目次機能がうまく働かない状況でした(現在進行形か?)ので、販売するにあたって保守的な方向で、となったのかもしれませんね。

(と思うとFUSEeのポジションの図版がさらっとSVGだったりもしますが)

まぁ、今後のアップデートでEPUB3化してくれると、ソースコードそのものもよいEPUBの教科書になるんじゃないかなーと思いますが、それはまた別のお話でしょう。

あとがきを少し引用します。

ツールに課せられているのは、実装自体が発展途上ともいえるEPUBHTML5の未知の可能性を引き出すことと考えています。EPUBの仕様(とウェブの仕様)には定まっていても世界的にブラウザ/ビューワで未実装なMathMLのようなものもあります。“なんだ、できないことだらけだな”、EPUBに触れてそう感じる方もなかにはいるかもしれません。
 電子書籍の歴史自体がまだ始まったばかりです。この黎明期にひとりでも多くの方にEPUBファイルを作っていただき、マークアップを追求していただきたいと思います。EPUBの今後の発展に、「FUSEe®」というツールとこの本がみなさまの電子書籍ライフの一助になることを願ってやみません。

なにやら一部で百万部の電子書籍を作り市場に出そうとしておるようで、それはそれで市場の拡大という意味でよいと思いますが、私としてはその100分の1でも自分で好きなようにEPUBを作る、作れる人を増やすほうが、なにやら今後楽しそうだし意義深いものがあるのではないだろうかな、と思います。そういう意味でもぜひFUSEeには頑張ってもらいたいところです。

uraitoはFUSEeとEPUBを応援しております。

 

FUSEe UG(ユーザーグループ)やります

応援だけしてるのもなんなので、ユーザーグループをFacebookでやることになりました。ロゴをちょっと本家から調達予定でして一応公認ではありますが、基本的には純粋なユーザグループです。何か優遇処置があるとかそーいうことはありません。
FUSEeを使う上でのTIPSですとか、面白い使い方を紹介したり、なんかバグってんだけど?とか要望とか、ゆるく連携できればと思います

なお、当FUSEeUGは製品版、β含めたユーザーグループです。βのみのグループではありませんのでご注意ください。

こちらまで、よろしくどうぞ!
Facebook FUSEeUG

たちあげ記念meetUpとかやる方向かもしれません。ご案内は上記Facebookのほうでご相談ということで。よろしくおねがいしまっす。

textileも対応してmd2epubがちょっと便利になりました。

f:id:uraito:20120417145236p:plain

先日公開のmd2epubですが、何箇所かバグフィックスしました。テストとしてGithubのWikiがmarkdown形式でgitでまとめて取ってこれるし使いやすい感じなのでEPUBにしてみようかとデータを取得してコネコネしているうちに、textile形式にも対応してました。使いかたは変わりませんが、より実用的になったかな、と思います。

で、昨日さる方面から「もっとくやしく」との依頼があったので、以下もう少し使い方をくやしくお伝えいたします。(# ゚Д゚) ムッキー

しかし、私実はRubyのことよくわかってないので、間違ってたら教えてほしい感じです。( `Д´)フォオオオオオオオオオ!

 

 インストール

RubyとGitが動く環境はすいません前提にさせてもらいます。で、githubからファイルを一式取ってきて「bundle install」します。

> git clone git@github.com:shunito/md2epub.git
> cd md2epub
> bundle install

redcarpetRedClothが変換の主役な感じです。

 

 データの準備

それから、変換するWikiのデータをとってきます。今回は手軽で綺麗にいったTwitter-bootstrapのWikiのデータで試してみましょう。

> git clone git://github.com/twitter/bootstrap.wiki.git

md2epubディレクトリのなかにBootstrapのWikiのデータがダウンロードされました。
この中に、epub.yamlという設定ファイルを作成します。サンプルがmdfilesディレクトリにあるので、それをコピーして使いましょう。こんな感じです

# md2EPUB Setting
# EPUBファイル名
bookname: twitter-bootstrap_wiki.epub
# 書名
booktitle: twitter/bootstrap Wiki
# 著者
aut: Twitter, Inc.
# 出版者
publisher: Twitter, Inc.
#Language
lang: en
#出版日
# 無い場合は生成日になります
#pubdate:
# UUID用のURL
# 無い場合はランダムにUUIDを生成します
#uuid:
# Debug
# trueの場合生成した一時ファイルを残します
debug: true

 

 データの調整

これで実行準備は出来ました。しかし、結果から言うとこれだけだとXHTMLを生成した時にValidになりませんでした。以下の修正をします。

Changelog.mdファイル内の7行目あたり。

 <em>Scaffolding &middot; Twitter Bootstrap</em>.
⇒<em>Scaffolding &#183; Twitter Bootstrap</em>.

私も今日まで知りませんでしたがXHTMLでは「&middot;」ダメなんですね。。「&#183;」に置き換えましょう!!!(ノ#`Д´)ノ⌒┻━┻

XHTMLとしてValidでないとEPUBとした時にエラーとなってしまうので、その他データでもこういう調整がかなり必要な感じです。 ほとんど一回ではうまくいかないので、epub.yamlのDebugオプションをtrueにしておいて、生成されるHTMLをブラウザなどで確認しながら調整するのが吉です。

その他、EPUB内でのページの並びはファイル名でソートされますので適宜ファイル名の頭に数字をつけるなど調整してください。

 

 md2epub実行

> ruby md2epub.rb bootstrap.wiki

引数にディレクトリ名を渡して実行します。今回のデータでは外部の画像ファイルなどないのであっという間に終わるかと思いますが、はてな教科書などの場合は画像をダウンロードしてパッケージしますので少し時間がかかります。今のところ一枚ずつリニアに取ってきていますので、ここはパフォーマンスアップの余地ありですね。

エラーなく完了すると、指定したディレクトリ内に設定ファイルで指定したファイル名でEPUBが生成されていると思います。たぶん。

以上です。ヽ(`(`(`(`ヽ(`Д´)ノ ファ・フォァ・フワォオオオオオオオオオオオン!!

 

今後の課題

github-flavored-markdownには対応したい感じですが、Githubのtextileのなかにfenced_code_blocksがあったりする対応とかいろいろ不足な感じです。レンダラーの中に踏み込んでいくのはちょっとしんどいのでどうしたもんかなぁ。

はてな教科書をEPUBにしようとしたらなんかできたので公開するよ

「はてな教科書」をgithub上に公開しました

こういう取り組みは素敵だなー、と思って

f:id:uraito:20120415081627p:plain

ドギャーン

ということで、md形式のファイルをまとめてEPUBに生成するスクリプトができました。いろいろやってるうちに、画像をとってきて一緒にパッケージしたり、意外に応用が効く感じになってます。名前は安易に「md2epub」です。Rubyで出来てます。Githubにあがってます。

md2epub

複数のmd形式ファイルと設定用のYAML形式のファイルから自動でEPUBを生成しますが、生で埋め込まれているHTMLがValidじゃなかったりしてもそのままEPUBにしちゃうので、いろいろ試行錯誤が必要な感じです。詳細は上記のGithubのページの方で。
 
あと、すいませんはてな教科書のmdしかテストしてません。。
 
他に何かまとまったmd形式のファイルとかテストすべきだなぁ。

Readiumに設定されたGoogle Analyticsについて

※2012年3月15日時点の情報です。その後状況が変わっている可能性があります。

IDPFによるリファレンス実装であるReadiumプロジェクト、Google Chrome Extention版の実装はGithubで行われていますが、 そのバージョン0.1.8から内部にGoogle Analyticsによる解析が組み込まれるようになりました。

それ自体はまぁ、開発のヒントにもなるだろうし(オプトインしてほしいかな、とか思いますが)悪くないかなぁと思ってるんですが、やはり自分がどんな本読んでるかバレバレだったりするとやっぱちょっとアレじゃないですか。

ということで、Readiumのソースをgithubのリポジトリから取ってきて、自分でとったGoogle AnalyticsのIDと差し替えてどのような情報が取れるのか確認してみました。

結果から書きますと、現状の設定ではEPUBの情報までは解析していません。
利用状況とユーザの環境情報が参考になる感じですが、アレゲな本を読んでるのがバレバレになるということはありませんでした。

 

ユーザーサマリー

以下のような感じ。普通に情報が取れています。

f:id:uraito:20120315073910p:plain

 

コンテンツサマリー

viewer.htmlというのが、EPUBのビューアでして、その後の「&book=」のあとに続くハッシュらしきものが気になりますよね?

f:id:uraito:20120315073919p:plain

これはEPUBをローカルストレージに保存するときのキーで、EPUBを閲覧するときに呼び出されるため、Google Analyticsに捕捉されてますが、これは以下のように生成されてます。

model/extractBook.js の ExtractBookを定義してるところで、以下のようにURLと日付情報からMD5でハッシュキーを作ってる。

var _urlHash = Readium.Utils.MD5(url + (new Date()).toString());

urlは以下のようにhandleFileSelect()というファイル選択イベントハンドラーの内で、ファイル名から作られてます。

var files = evt.target.files; // FileList object
var url = window.webkitURL.createObjectURL(files[0]);

まぁ、日付情報から生成されているので同じEPUBファイルを読み込ませても別々の値になります。ということで、アレなEPUBをReadiumで読んでも、中の人に温かく見守られたりはしません。よかったです。

(注記)私はこうした読書履歴を捕捉することそのものについては、否定的ではありません。ソーシャルリーディングとか、それそのものが新しいエンターティメントとなる場合もあるでしょうし、読書履歴を自動的に保存しておいてメモとか残せたりするとあとで便利だろうなと思うのです。
ただ、裏でこっそり履歴を取って勝手に利用されたりはやはり気持ち悪いかな、と思います。

Readiumはまだオープンソースなのでこうして検証できますが、アプリなど裏の挙動がわからないものも多いです。
読書履歴は、ちょっとセンシティブな情報だと思いますので、やはり何が保存され、どのように扱われるのかポリシーがはっきりしていることを望みます。

電子書籍リーダー開発各社、および開発者の方々、ぜひそのあたりフェアにお願いいたします。

EpubReaderのJavascript対応状況をテストするEPUB作りました

EpubReaderのJavascript対応状況を調べるために、簡単なテスト用のEPUBを作ってみました。

そもそもまったく動かない可能性が高いのであまり難しいことしてません。単純にJavascriptでいくつかのObjectの中身を取得して表示しているだけです。iBooks等で開くと、以下のような感じでコードと実行結果を表示します。

 

f:id:uraito:20120225180432p:plain

簡単なものですがファイルはgithubにあげていますのでご自由にお使いください。

FUSEeβで作成していますので元のコードも一緒にあげています。(FPRJ形式のファイルはZIP圧縮なので、単に拡張子変えて解凍した中身です。)不要ファイルも紛れてますが、もうちょい使いこなせるようになったら掃除します。。

EPUB3 Javascript Test

 

EPUBファイル単体のダウンロードはこちらをどうぞ。

EPUB3 Javascript Test v0.1EPUB

 
FUSEeで編集する場合はFPRJ形式に戻す必要があるのでgitで直接管理するのが今のところできません。
今後のアップデートどうしようかなぁ。

漢数字などむりくり正規化まっしーん(仮)

とにかく、金額を入力する際にコピペとかOCRからの値を突っ込んだりしてもなんとかしてくれるやつがほしくていろいろ寄せ集めながら作成してみた。変な値もなんとか解釈しようとするので、使い所はよく考えないとかも。

漢数字などむりくり正規化まっしーん(仮) - jsdo.it - share JavaScript, HTML5 and CSS