KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

テンプレートエンジンかDOMか

 ブラウザでXMLのテンプレートを書き換えるのに、テンプレートエンジンを利用するかDOMを利用するかを考えている。node.jsだったら、ejsを使うんだけど、クライアントサイドjsだったら何を使うかな。

 DOMを使ってやっていたんだけどいろいろ不満がたまるようになってきた。というのもDOMでパースして書き換えてシリアライズすると、出力されたテキストがぐちゃぐちゃになってしまうのがある。たとえば、

<item media-type="image/jpeg" id="i-001" href="image/i-001.jpg"/>
<item media-type="image/jpeg" id="i-002" href="image/i-002.jpg"/>
<item media-type="image/jpeg" id="i-003" href="image/i-003.jpg"/>
<item media-type="image/jpeg" id="i-004" href="image/i-004.jpg"/>
<item media-type="image/jpeg" id="i-005" href="image/i-005.jpg"/>

にしたかったものが、

<item media-type="image/jpeg" id="i-001" href="image/i-001.jpg"/> <item media-type="image/jpeg" id="i-001" href="image/i-001.jpg"/> <item media-type="image/jpeg" id="i-002" href="image/i-002.jpg"/> <item media-type="image/jpeg" id="i-003" href="image/i-003.jpg"/> <item media-type="image/jpeg" id="i-004" href="image/i-004.jpg"/> <item media-type="image/jpeg" id="i-005" href="image/i-005.jpg"/>

こんな風に改行が消えてしまったりする。それだけだったらましだけどネームスペースの書き換えを要求されたりする。だんだん思っていた出力と乖離してきてなんだなかなと思うようになってきている。

 

 テンプレートエンジンの場合は改行なども処理できるの問題が生じにくいように感じる。ただ、テンプレートエンジンの場合に生じる問題はやってみないとわからいないところがある。ブラウザごとの挙動がどうなるかが未知数な部分がある。

 テンプレートエンジンの種類が多すぎる問題。テンプレートエンジンの種類が多くて書き方もだいぶ違っているので、流用ができない。イチから勉強のし直しが必要になるという面倒くささがある。というか、メンテされていないテンプレートエンジンが多くてうかつに使えない。

blog.htmlhifive.com

 node.jsでejsを使ってたが、テンプレートエンジンによって書き方が全然違う問題。node.jsも作ろうとするとテンプレートエンジン向けに二つ以上を作らないといけなくなってしまう。