What's on Static ?

report#1 Staticのページ管理

これはプロジェクトと言うよりは普段の作業なんですが、StaticのページはXSLTとtoSync(Productで公開)を使って更新しています。

まず、ソースの文章を入れるフォルダと、公開用の文章が入るフォルダ、それと更新用のツールが入っているフォルダを用意します。ソースのフォルダと公開用のフォルダは、構造を同一にしておきます。

例:
StaticBC---xhtml(ソース)---product
         |                 |
         |                 --imaging
         |
         --html(公開用)----product
         |                 |
         |                 --imaging
         |
         --toSync(各種ツール)

ソースには余分な装飾のないXHTML文書を入れておき、それをXSLTでナビなどのヘッダー・フッターを挿入し、公開用のフォルダに出力される、と言う仕組みです。

例:whats_on.html(このコーナーのトップページ)
ソースの文書 > 公開用の文書
のように「変換」されます。

例:

ただ現在のところ、toSyncがフォルダを自動的に生成・削除してくれないので、フォルダを含む変化があったときは手動で公開用のフォルダを変更しなければなりません。

実は、toSyncはもともとこの作業のために作られたんです。

専門用語を乱発しているので、解説を書いておきましょう。

XSLTは、XSLの変換部分です。・・・これだけで分かる人はもうこの先を読まなくていいでしょう。と言うわけで、XSLTに関する僕なりの解説を書きます。

まずは、それぞれの用語の正式名から。
XSLT
XSL Translation
XSL
Xml Stylesheet Language
XML
eXtensible Markup Language

XSLTはXMLという言語の一種です。XMLは、見た目はHTMLに似ていますが、オリジナルの要素を作ることが出来て、さらにその要素に「意味」(本文の前には必ず時候のあいさつがある、など)を与えることができます。

例: HTMLでは

<html>
	<body>
	<p>五月雨の続く季節になりましたが、いかがお過ごしでしょうか。</p>
	<p>さて、Staticではこの度新しいコーナーを設置することになりました。</p>
	</body>
</html>
XMLでは
<xml>
	<letter>
	<greeting>五月雨の続く季節になりましたが、いかがお過ごしでしょうか。</greeting>
	<content>さて、Staticではこの度新しいコーナーを設置することになりました。</content>
	</letter>
</xml>
のように出来ます。
注:ただし、事前に要素の定義(名前や性質を書き出して、コンピューターに知らせる)をしなければなりません。

さて、HTMLでは、文書の見た目を調整する「スタイルシート」(CSSなど)と言うものがありますが、XMLでも同様のものとして”XSL”(Xml Stylesheet Language)があります。言い換えれば、XSLはXMLのスタイルシート用の言語です。

XSLは、文字色やマージンなどのスタイルを指定する部分と、あるXML言語の文書を他のマークアップ言語(HTMLなど)の文書に翻訳する部分に分けられます。後者をXSLT(XSL Translation)と呼んでいます。

Staticのページ更新では、XSLTでXHTML(XMLで定義されたHTML)文書をHTML文書に変換しているわけです。

参考:XSLT Recommendation http://www.w3.org/TR/xslt