Tag : (X)HTML
1 - 3 of 3
システムを更新、その他
中味をアップデート
当サイトのバックエンドを支えるオリジナルWeblogエンジン「LOGGiX」をローカルで開発中の最新ビルド版に更新。見た目は殆ど変わらないですが、中味は色々と手を加え中です。
「Permalink」の表記を廃止(及びローカライズの考察)
これまで記事の下に「コメント」「トラックバック」と並んでいわゆるPermalinkである「恒久URI」というリンクを表示していましたが、これを廃止し、記事タイトルをクリックする事によってパーマリンクにナビゲートされるスタイルに変更しました。これはリンクタイトルが記事を指し示す方が良いと考えたのが理由です。あと、フッターをシンプルにしたかった、というのもあります。
CSS Nite公式ブログ: Permlinkを「固定リンク」に変更しましたという記事も見つけたので「Permalinkのローカライズの標準化」についてもどうしたものかなーと考えていました。
私はこれまで私自身が使っていた「恒久URI」という名称が一番気に入ってます。このほうが「Permalink」の本質を指していると思うんですがどうでしょう? その次の候補としてはちょっとしたメモ - The Web KANZAKIで使われている「恒久ページ」かな。もし「URI」というのが一般的でないというなら「恒久リンク」の方が良いですね。
どうもCSS Niteの推奨する「固定リンク」というのはしっくりきません。何を「固定」するのか。「リンク」なのか、ターゲット先のPermalinkなのか。「Perma」は「Permanent (恒久)」の略であり、永続的なURIにナビゲートするための「リンク」であるわけで、「アンカーのタイトルがターゲット自体を指していない」と思うわけです。
なんとなくその方面の方々に影響力の大きそうなサイトが採用して日本での記述やローカライズのデファクトとなっていくと昔の「ホームページ」のように本質を表していない訳が蔓延するとイヤだな、と思ったので書いてみました。
テンプレートエンジン「Loggix_View」をアップデート(及び考察)
このサイトのシステムを支える自前テンプレートエンジン「Loggix_View」をちょっとコーディングし直してアップデート。ここのところZend Frameworkのソースを眺めていてテンプレート変数の適用メソッドであるassign()の実装(参照:Zend Framework:15.2.1. Assigning Variables)が面白いというか便利だなと思ったので同じような使い方が出来るように実装してみました。
ただ、Zend_Viewのassign()は私の使用方法での変数にオブジェクトを入れるような使い方が出来ないので、それではちょっと柔軟さに欠けるかなと思い変数にもテンプレートオブジェクトを入れることが出来るような仕様にしてみました。これで大抵のテンプレートの使い方は殆どカバー出来るようになったのでViewクラス周りは一段落です。
Loggix_Viewの実装にあたっては、Smarty、Ethna、Savant、Zend FrameworkのZend_Viewなどなど、色々なテンプレートエンジンのソースを読んだり使ったりして研究しましたが、私が一番気に入ったのはRaw Template Engineでした。
作者のkomagataさんのサイトでは後ろ向きなライブラリ
と謙虚に語られていますが、実際PHPのテンプレートエンジンはこのような「PHP自体がテンプレート言語」という方向性が一番良いと思っています。Zend FrameworkもPHP自体をテンプレート語として使用出来る仕様になっていますし、Loggix_ViewもZend_ViewとRaw Template Engineのエッセンスを取り入れた仕様にしています。(メソッド名はZend_ViewとSmartyユーザーにも馴染めるように変数適用にはassign()、テンプレートを取り込んで変数を適用するメソッドにはrender()を使用。)
結局「モデル(M)&コントローラー(C)からのビュー(V)の分離」というのは「(X)HTMLファイルからPHPコードを追い出す事」ではなく、「プレゼンテーションロジックをVへ纏め、ビジネスロジックをCに纏める」、ということなんですよね。つまり、「言語の分離」ではなく「ロジックの分離」である、と。そこに別の「オレ仕様・独自仕様の言語」が入る余地も理由もないと思う訳です。
私がアンチSmartyなのは結局Smartyは同じ事を独自言語(オレ言語)で再実装している仕様だと感じるからなんです。メリットは「PHP変数を(X)HTMLテンプレートファイルに{$var}と書く事が出来る=PHPっぽく見えないのでPHP分からない人に心理的にちょっと楽」というのと「キャッシング機能が出来る」というだけだと思っています。
そういう点からもSmartyよりもZend_Viewが方向的にPHPの本質を分かった実装になっていてずっと良いと思いますし、ZendやRaw Template Engineのようなテンプレートエンジンを使ったWebアプリがもっと増えると良いと思ってます。
application/xhtml+xmlの話
<
p>P_BLOGのapplicaiton/xhtml+xmlに関してちょっと触れられた話題を見つけたのでメモがてら反応。
ちなみに、和製BLOGとして有名なP_BLOGは、XHTML 1.0 Strict(text/html)とXHTML 1.1(application/xhtml+xml)が選べる機能が、つい最近実装された。 おまけに、簡易RSSリーダ機能もつけられた。(余分)
だいたい、皆に読ませたいとか、自分の考えを相手に伝えたいという目的でウェブサイトを経営しているんだろう?だったら、利用者の多いIEを、わざと非難したり弾いたりするのはやめれ。 (といいつつ、早めにapplication/xhtml+xml対応のIEを出して欲しい、と願う俺。)
P_BLOGが有名かどうかは分かりませんが
(実は作者本人は「いわゆるWeblogツール」へのカテゴライズにはそれほどこだわっていなかったりします)、確かにapplication/xhtml+xmlとtext/htmlを選択出来る機能を実装しました。
これは厳密に言うと、「XHTML1.1 = application/xhtml+xmlをデフォルトとすることを拒んだ」というのが正直なところです。大きな理由の一つは、上で言及されているとおり、
「application/xhtml+xml」非対応のブラウザを弾く訳にはいかない
からです。
今回のb19ではWindows IE 6での見栄えも結構考慮してテーブル周りのCSSなども改善しました。あとはWinIEとMac OS Xプラットフォームとの差異をなるべく埋めるフォント周りの微調整、ですね。つまり、
「標準サポートの程度がどうあれ、WinIEを無視する訳にはいかない」
のです。
私はMac OS Xユーザーですし、必然的にブラウザもSafari系を中心にMozilla系を併用していますが、WinIEでの表示は比較的重視しています。それはやはり、自分でもWinIEを使ってブラウズすることがあるのと、
そういうブラウザ云々の事情を全く気にしない、あるいは知らない、興味が無い大部分の世の中の人の存在を無視する訳にはいかない
からです。
結局見れないサイトというのは存在しないも同然という意味になってしまいます。私も自分の愛用ブラウザでブラウズして見れないサイトは見ないし、そのサイトは私にとっては存在しないも同然なのです。これは提供する側にとっても受ける側にとっても不幸な話です。
P_BLOGは最新の標準への徹底準拠を大目標としていますが、そういう現実を無視する訳にはいかず(これが結構ジレンマでもあるのは確かですが)、色々悩んでたどり着いた結論は、
コンテンツを最低限きちんと伝えることが出来る最大公約数
のXHTML1.0 Strictであったわけです。それをスポイルしてまで「デフォルト=完全なXHTML1.1」にこだわる必要は無いと思っています。XHTML1.0 Strictも立派なW3C勧告ですし、極端な話ですが、applicaton/xhtml+xmlでなければならないコンテンツはwww上には今現在、存在しないのではないでしょうか。
もし今どうしても多くの人に伝えたい文書があって、究極の選択としてそれが「application/xhtml+xmlな厳密XHTML1.1」か「HTML3.2」を選ばなければならない、としたら、私は「HTML3.2」を選びます。(もちろんW3CチェッカーでもAnother HTML-lintでも完璧Validな文法で書いて。)
オレンジニュース風にブックマークしたのを書き連ねてみる。
Web技術ネタ
(X)HTMLでのソースコード書き関連。
<pre>タグでコードの書き方&見せ方は私も色々悩んだ事あるので参考になります。音楽ネタ
メタルに限らず「すっかりつまんなくなった洋楽」や言葉にするのがちょっと恥ずかしくなった今日この頃な「ロック」が再燃してほしいですね。