xdv(diazo) チュートリアル¶
注釈
diazo (旧名: xdv) はDeliveranceと同じコンセプトの別実装です。 本ドキュメントはdiazoに名前が変わる前のxdvの名前で説明を行っている 箇所が多くあります。
xdv(diazo)とは¶
xdvは「Webフレームワークから独立したHTMLデザイン適用の仕組み」によって 既存サイトのHTMLに手を加えることなく、新たなデザインを適用します。
特徴:
既存のHTMLに手を加えずにデザイン(テーマHTML)を適用できます。
既存HTMLが動的生成(BlogやCMSなど)でも適用出来ます。
フレームワーク毎のテンプレートの記述方法を知らなくても利用できます。
変換動作自体はプログラミング言語に依存せず利用できます。
高速に動作します。
変換の ルール定義 は簡単なXMLで記述します。
xdv は、対象となるサイトの コンテンツ を別に用意した テーマHTML と ルール定義 によって変換して見せるための ツールです。
このツールを使えば、例えばOpenPNEで作成したサイトのデザインテンプレートに 手を加えずに、全く異なるデザインに変更する事が出来るようになります。
xdvとは(もうすこし詳しく)¶
ルール定義 と適用する テーマHTML からxsltを生成するのが xdvの機能です。ここで生成したxsltを対象となるHTML(コンテンツ) に適用するのは dv.xdvserver や mod_transform 等、 HTMLのxslt変換を行う事の出来る別のプログラムが行います。
xdv自体はPythonで作成されていますが、xdvを使った変換の対象となる サイトの コンテンツ が静的HTMLなのかCMSのサイトなのか、開発言語が PHP/Python/Rubyなのか、フレームワークがCakePHP/Plone/Railsどれなのか、 といったことには依存しません。それどころか、複数のサイトの コンテンツ に同じ テーマHTML を適用することによって、実装プラットフォームが混在 した状況で同じデザインのサイトを提供することができるようになります。
HTMLの変換は既存HTMLとテーマHTMLのエレメント合成によって行います。 どのエレメントをどこに合成するのか、といった指定はルール定義ファイル内に XPathまたはcss3形式によって指定します。
テーマHTML を作成するWebデザイナーは各プラットフォーム特有の 埋め込み方法(php, erb, tal など)を気にすることなくデザインを作成する ことも出来るでしょう。ただし、前述のようにHTMLのエレメントを指定して 変換を行うため、テーマHTMLにはidやclass等をしっかりと記述して、 エレメントを指定しやすい内容にしておく必要があります。