EPUB生成とUIの分離をしたいなと思いながら、あまり手を付けていなかった。最近どうなのと思って手を入れています。ただ、サイトの検索しているとコピーサイトが見つかった。githubで公開しているのでライセンスを明確にすべきなのだろうか。jsのライブラリとして分離すればそっちを使ってくれる気がするのだが。
ejsというテンプレートエンジンをnode.jsでは使っていたのだけど、クライアントサイドJSでは無いと思っていたが、あったので使ってみている。npm版ではejsを利用していたので、ベースをこっちにすればわりとすんなり作れるかも。
怪しいアイコンだが、Client-side supportでみつけて、ejs.min.jsがダウンロードできる。基本的にはnode.jsのものと変わらないようですね。
<script src="ejs.min.js"></script>
で読み込んで、
var opftemplete = ' <!-- 作品名 -->\n <dc:title id="title"><%= title %></dc:title>\n <!-- 著者名 -->\n <dc:creator id="creator01"><%= creator1 %></dc:creator>'
var opf = ejs.render(opftemplete, { title: "タイトル", creator1: "著者1"})
console.log(opf)
出力結果
<!-- 作品名 -->
<dc:title id="title">タイトル</dc:title>
<!-- 著者名 -->
<dc:creator id="creator01">著者1</dc:creator>
- 作りたいファイルの情報をブラウザの操作で作る。
- ファイルの情報をオブジェクトにする。
- オブジェクトからEPUBを生成する
今まではどうしても画面の部品をいじると、EPUB生成の部分までコードを書き換える必要があったので、探すのが面倒だった。オブジェクトからEPUBを生成する部分だけライブラリにして公開したらいいかな。
Internet Explorerで動くようにするためにejsを利用した。まだバグチェックができていないのと、コードがグチャってしているので見落としが多そう。
https://kyukyunyorituryo.github.io/FixedEpub3JS/index_beta.html