子宝どっとこむ

 

 リンクファイルの有効活用

A社がその後どうなったか、気になる方がいるかもしれませんが、例え話も長引くと興ざめですので、普通に行くことにします。

実は、昨日の『MovableType3.17アップグレード』には落ちというか、後日談があります。実際の『SyndicatePowered.inc』には、あそこで書かれていたソース以外に、欲張った私は下記のタグを埋め込んでいたのでした(実は他にもありますが)。

<div class="powered">
<a href="<$MTBlogURL$>">▲Homeへ</a><br />
</div>

どういうことかというと、これをメインサイトで構築し、他のサイトは部品であるincファイルを読むようにしていたのですが、<$MTBlogURL$>のところが既にメインサイトのURLが書き込まれていますので、他のサイトもHomeに行くつもりがメインサイトのHomeに行ってしまっていたわけです。

<$MTBlogURL$>というのはあくまでそれぞれのブログのURLです。そこで、安直に、上記部分をカットしてそれぞれのインデックス・テンプレートに埋め込む(元に戻す)という、部品化の流れに逆行する対応を取りました。

ところが、今回のテーマである『リンクファイルの有効活用』を思いつきました。

リンクファイルとは、ヘルプを見ると、

テンプレートの内容を編集するとき、Movable Typeのウェブ・アプリケーション以外で編集した方が簡単な場合もよくあります。たとえば、コードがハイライトされるテキスト・エディタでHTMLを編集するのを好む人が多くいます。 Movable Typeのテンプレートを外部のファイルにリンクすると、Movable Typeにあるテンプレートのコピーをその外部のファイルと同期しながら、外部のアプリケーションでテンプレートを編集することができます。 同期プロセスは双方向に働きます。テンプレートを編集するとき、リンクされている外部のファイルが最新のファイルがどうかチェックされます。Movable Typeでテンプレートを保存するときは、変更に応じて外部のリンクされているファイルも更新されます。 リンクされているファイル名の値は、外部ファイルまでのファイルシステムへのフル・パス、あるいはウェブログの ローカル・サイト・パス に対しての相対パスのどちらかにしてください。

とあります。

つまり、一個のファイル(プログラムソース)をそれぞれのサイトで共用できるわけです。これで『部品はそれぞれで作るがプログラムソースは同じ』ということが可能になりました。早速『SyndicatePowered.inc』に関して行なってみましたが、全く問題ありません。これで、現地情報を含んだ部品も、マニュアルの一本化を図りながら部品化によるメリット(ディスク容量の節約、再構築の負荷軽減)が行なえるようになりました。

やり方は、『このテンプレートにリンクするファイル』の部分に絶対パスを入れ、それぞれのブログでも同じパスを参照させるだけです。拡張子は何でも構いませんが区別しやすいように私は『inm』としてみました。注意点は保存すると同期しますので、横着して中身が空のままパスだけ設定して保存しないことです。(追記参照)

これで色々なことができそうです。とりあえず今回はここまで。

【2005/6/23追記】
上で中身が空のままパスだけ設定して保存すると中身が消えると記述していますが、確認しましたところ、完全に空であれば、既存のソースがそのまま保存されます。つまり、複数サイトの追加時は、テンプレート名、出力ファイル名とリンクファイルのパスだけペーストすればよく、中身までペーストする必要はないわけです。完全な空ではなく、スペースが一つでも入っていると、既存のソースは消えてしまいますが。

【2005/8/27追記】
例えば『テンプレート』のうち『インデックス・テンプレート』の場合、通常『出力ファイル名』を指定しますよね。これは、index.htmlだったり、index.phpだったり、インクルードすべきファイル名(Head.incとか)だったりします。
ところが『このテンプレートにリンクするファイル』というフォームは空にしている場合が多いと思います。これは一体「なんだろう?」と多少気になりながらも気にしないことにしていた人が大半ではないでしょうか?
これが、本題のリンクファイルの設定です。例えば、
/home/sites/lolipop.jp/users/lolipop.jp-dp********/web/inc/head.inm
というようにフルパスでリンクファイルの保存場所を指定してあげると、複数サイトを管理している場合に、他のブログでも出力先がHead.incファイル(こちらはそれぞれのサイトのホームディレクトリにそれぞれHead.incを置くようにする)のプログラムソース(テンプレートという表現の方が分かりやすいかもしれません)として、上記保存先を共通にすればいいわけです(すなわち、別のブログでもリンクファイルの設定を上記アドレスにする)。

少しは分かりやすくなりましたでしょうか?

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード