2017年06月

サイト運営者の日々の日記。2017年06月。

29日

スケールフリーなWebサイト

なぜこのサイトが更新されないのか?それは低コストでコンテンツを作って増やしていくことが困難になったからである。

カテゴリーによるコンテンツの分類

このサイトはarchivesという構造単位で作られており、archivesはコンテンツのカテゴリー単位で作られている。このカテゴリー単位でディレクトリを作っていく方式は、ある一定の時期までなら有効に機能する。しかし、より大きな時間スケールでは成り立つだろうか?例えばWeb技術のカテゴリーを作り、数学のカテゴリーを作ったとしよう。これは実際にこのサイトのカテゴリー区分として存在しているが、その後新しいWeb技術を利用した数学系の記事を作った。このサイトではその際に新しいカテゴリーのarchivesを作って対応しているが、厳密にはそれは二つにまたがるカテゴリーの記事と言える。新しい技術はどんどん登場するし、私の興味の中心も5年や10年という単位では変化していく。カテゴリーが新しく増える、記事が作られなくなるカテゴリーが出てくる。そして無秩序にカテゴリーが増えていき、分類が意味をなくしていくだろう。カテゴリーを基準としたarchivesという構造単位は長期的に見ると機能しなくなる、失敗作であるといえる。

archivesという単位での管理の限界

このサイトのページは原本となるXMLファイルが指定するTrans_xml.xslがページのデザインと階層リンクを決定している。原本となるXMLを加工してリンクが完備されたHTMLファイルを生成するファイル群がarchivesの実体となっている。このサイトでは、前述のように一つのarchivesに属するXMLファイルは同一ディレクトリの配下に存在する。ただし、厳密にはディレクトリ単位には拘束されず、XMLファイルが指定したTrans_xml.xslが存在するディレクトリにあるarchivesファイル群に従ってページを生成する。

それでもカテゴリー分けされたディレクトリを基準にページが生成されていることには違いない。例えばarchivesは、同じディレクトリ内にある同一深度のページ同士で異なる所属と異なるデザインを適用するようには作られていない。元々archivesを単位とした理由は、Webサイト全体で単一のデザインを適用することに不自由を感じたからだったが、それを克服するために構造単位を分離した現在のシステムもまだまだ不完全である。究極的にはページごとに所属とデザインを適用できなくてはいけない。

数年の月日が流れ、新しいカテゴリーの記事を作ろうと考えても現在のarchivesはそれを許さない。あるいはarchivesを乱造するしかそれを実現する手段がない。長期的には破綻する。したがって、このカテゴリー単位のコンテンツ管理方法を改めるしかない。目指す先はページ単位のディレクトリ構造だ。

ページ単位の構造

ページ単位の構造は日付を基準としたディレクトリを持つようになる。そのページが作られた日付は、後天的に変化することがないからだ。そしてページのカテゴリー区分は、あるページに記述されるリンク群として論理的に実装されることになる。

  • ./
    • content //実際のコンテンツファイル群
      • 2015
      • 0629_contentA…XML,JavaScript,HTML,etc...
      • 0814_contentB…
      • 2016
      • 2017
    • common //コンテンツファイル群に適用されるデザイン群
      • designA…JavaScript,CSS,XSLT,etc
      • designB…
      • designC…

コンテンツファイル群の階層深度は原則1階層となる。2階層が必要となる事例はほとんどない。あるカテゴリーAの記事aを作り、bを作り、cを作った時、a,b,cを並べてリンクする扉ページdを作成すれば済む話だ。あるいは関連性のあるいはa,b,cが連番になっていれば、a,b,cの内部で相互にリンクをすればよい。

デザインはページ単位で指定され、コンテンツファイルとデザインファイルは最上位のディレクトリ単位で分離される。共通ファイルの読み込みはcommonディレクトリ内で行われるようにする。

その他雑多な決め事

原本XMLが指定すべき情報

原本XMLファイルは自身をパースするデザインファイルを指定し、階層リンクを機能させるために上位層の原本XMLファイルを指定する。原本XMLファイルは煩雑な情報を持ってはいけない。デザインとコンテンツを分離させるために、最小限のメタデータを冗長ではない形式で持たなければいけない。

古いページに施すべき措置

現在のWebサイトのarchivesはすべてarch_XXXという名称で統一されている。よって分離は比較的簡単で、arch_XXX内の全HTMLファイルを新しいページにリンクさせればよい。

XSLTパーサー

LocalPHPでJava-Xalanを動作させる構成は別の言語を使う。

ページ情報

作成日時
2017/06/29
最終更新日時
2017/06/29
HTML4.01版
y17m06.html
XHTML1.1版
y17m06.xhtml
XML原本
y17m06.xml