Archive for the ‘Movable Type’ Category

Movable Typeでソースを表示

水曜日, 3月 3rd, 2004

 Movable Typeで,ページのソースを表示させることが多くなった.まあそれは,MTを設置している今だけかもしれないけど,いちおう引用(ちなさいとではblockquoteタグを利用)とは区別したいと考えている.
 それで,現在はpreタグを利用して表示させている.スタイルシートでpreタグの属性(?)をある程度指定しているので,エントリーにはタグを書くだけで良く,お手軽である.現在の設定は以下の通りである.なんか無駄に設定しているような気がするのはご愛敬.

pre {
FONT-WEIGHT:         normal;
FONT-SIZE:           80%;
COLOR:               #000000;
margin-bottom:       5px;
margin-top:          5px;
margin-right:        5px;
margin-left:         5px;
background:          #DDDDDD;
PADDING-RIGHT:       5px;
PADDING-LEFT:        5px;
PADDING-BOTTOM:      5px;
PADDING-TOP:         5px;
border-style:        solid;
border-color:        #BBBBBB;
border-top-width:    1px;
border-right-width:  1px;
border-bottom-width: 1px;
border-left-width:   1px;
}

 preタグで囲まれた部分は整形済みテキストと認識され,改行やスペース,タブなどもそのまま等幅フォントで表示されるため,ソースの表示などには非常に有効だ.ところが,MTでエントリー内にpreタグを記述すると,少なくともちなさいとではおかしなことが起こる.もちろん,なんか表示するときに白抜けしたりすると言うこともあるのだが,それ以外にもいくつかおかしなことが起こる.たとえば,以下のようなソースを表示させてみる.

<pre>
text_1
text_2
</pre>

<表示>


text_1
text_2


と,このようになぜか一行あきで表示されてしまうのだ.よくわからないので,仕方なくエントリーに記述するときに,

<pre>text_1<br />text_2</pre>

と無理矢理1行で記述するしかなさそう(しばらくこれでやっている).
 これ以外に,一行が長くなると表示側も大変なことになるという点.まあこれはpreタグの宿命みたいなモノだからはっきり言って仕方ないのだが,なんとか回避策はないものだろうか.これでは不便だと思い,今度はスタイルシートでcodeというスタイルを設定し,pタグと一緒に設置してみた(<p class="code">)が,スペースやタブがうまく表示されず,階層化して表示させたい場合に不都合である.次に,codeタグを使ってみたが,codeタグは基本的に「ここがソースですよ」と宣言するだけのものなので,結局問題の解決にはなっていない.いろいろなblogサイトを見てみたが,みんな結構適当にblockquoteタグを使ったり,気にせずpreタグを使ったりしていた.さて,どんな方法がいいのやら.
 ここで,1行空いてしまう点について,ソースをコピーしてペーストしてみると,どうも1行空いているわけではないようだ.テキストエディタにペーストするときちんと1行空かないで表示されている.ということは,純粋に表示の問題だけ,と言うことか.ということで現在のところは,スタイルシートでline-height:100%;をpreタグに指定して,何とかごまかしている.
 さらに調査をしていくうちに,こんなものを見つけた.

ウィンドウの端まで行くような英単語は改行されませんが、印刷する際に問題が生じます。そこで単語途中でも改行することが出来ます。
 単語途中での改行の設定をするには、「word-wrap」プロパティにより行います。

おぉ,これを使えばうまくいきそう.ただし,IEにしか対応していないと書かれているところがちょっと不安.まあいいか.最終的に,以下のようにスタイルシートを設定した.しばらくこれでいってみるつもりである.

pre {
FONT-WEIGHT: normal;
FONT-SIZE: 80%;
COLOR: #000000;
margin: 5px;
background: #DDDDDD;
PADDING: 5px;
border-style: solid;
border-color: #BBBBBB;
border-width: 1px;
line-height: 100%;
word-wrap: break-word;
}

リーセントコメントと日付表示

火曜日, 3月 2nd, 2004

 ちなさいとを広く知ってもらうため,というよりか,来てくださったみなさんとのつながりをつくるためには,コメントの機能は結構重要だと思う.しかしMTにはコメントをつけてもそれを知るすべがあまりなかったように思う.
 そのため,トップページに,最近つけられたコメントを表示する機能はないか,と探していたところ,リーセントコメント+コメント日付(BLOG質問箱)にその方法が載っていたので早速試してみた.

コメントが付いた最新のエントリー5本を表示し、それぞれのエントリーごとに最新のコメント4本までをコメント日付を付けて表示するようにしました。

とのこと.ソースコードが載っていたので,それをMain Indexテンプレートにコピーして,ちょっと修正した.ちなさいとで使用したものは以下の通り.

<div class="sidetitle">
Recent Comments
</div>
<div class="side">
<MTEntries recently_commented_on="5"sort_order="ascend">
・<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
<MTComments lastn="4">
└ <$MTCommentAuthor$> <a href="<$MTEntryPermalink$>#<$MTCommentID$>">at <$MTCommentDate format="%Y.%m.%d"$></a><br />
</MTComments>
</MTEntries>
</div>

includeの威力

日曜日, 2月 29th, 2004

 せっかくMovable TypeをPHP化したのだから,なにかそれらしいことをやってみたい,と言うのがきっかけだった.ちょうどGoogle AdSenseの審査に通った旨の通知が来ていたので,それを設置がてら,「include」というものを試してみようと思った.
 聞けば,includeはとても便利なのだそうだ.つまり,共通部分は別のphpファイルにしておいて,各ファイルからそれを読み込めばいいと言う.Google AdSenseのスクリプトをそれぞれのテンプレートにいちいち貼り付けるのはちょっと面倒だな,と考えていたので,さっそく試してみることにした.
 まずはTemplateの編集画面より,新たに「googlead.php」を作成した(新しいテンプレートを作成して,そこにスクリプトをコピー&ペースとしただけ).で,そのあと,Main Index内に

<? include"googlead.php"; ?>

を書き加えた.早速トップページにアクセスしてみる.

Warning: main(googlead.php): failed to open stream: No such file or directory in index.php on line 453
Warning: main(googlead.php): failed to open stream: No such file or directory in index.php on line 453
Warning: main(): Failed opening ‘googlead.php’ for inclusion (include_path=’.:/usr/local/lib/php’) in index.php on line 453

includeは失敗か?でもなんとなくファイルがないっぽい.そこでFTPでディレクトリを調べたところ,なんとgooglead.phpファイルができていなかった.どうやら新しくgooglead.phpテンプレートを作成したときに,再構築していなかったのが原因のようだ.
 そこでもう一度再構築をしてみる.そのついでに,googlead.phpテンプレートもちょっと変更して,このサイトのデザインに合わせてみた.
 今度は見事に成功.ちなみに最初に表示された広告は,amazon.co.jpの広告だった.
 続いて,Master Archive Indexにも同様に挿入.勢い余って(?)category archivesにも挿入してみた.しかし警告が出る.何が違うのか?これはパスが違っていた.category archivesはarchivesフォルダに作成されるため,googlead.phpへのパスを./googlead.phpなどとしなくては行けないのである.Date-Based Archiveも同様に設定して成功.
 最後のIndividual Entry Archiveは,ちなさいとでは年ごとにディレクトリが指定されていることから,../../googlead.phpとパスを指定して設置.
 いやー,PHPってめちゃくちゃ便利だな.(includeしか使っていないけど)これを使えば,たとえばページトップに表示されているバナーなども共通に使えるだろう.でも,少し前に入れたアクセス解析のPHPスクリプトはなぜかうまくいかなかった.なんでだろ?設定のページに,同じディレクトリに置くこと,と書かれていたから,そもそもできないんだろうか?ここらへんはスクリプトが分からない自分が情けなる瞬間でもある.

スタイルシート変更に再構築は不要

水曜日, 2月 25th, 2004

MTでのスタイルシート変更を楽に(ARTIFACT -人工事実-)より.

・「Templateの編集」から「Stylesheet」を選ぶ
・「このTemplateにリンクするファイル」にStylesheetのファイル名を入力
・「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックをはずす
・SAVEする

その後,一応再構築をしておいた.これでたしかに,スタイルシートの変更を行った後に「保存」するだけで変更が反映されていた(しかし,この作業をする前に,スタイルシート変更をしたことがなかったので実はあまりよくわかっていない).

データの移動

水曜日, 2月 25th, 2004

 実はちなさいとが正式に稼働するまで,別のサイトでMTを動かしながら,そこにMTの設置作業記録をアップしていた.このたびちなさいとが正式に稼働するので,そこからデータを移動させる必要があった.
 やり方は非常に簡単であった.MTの総入れ替えに挑戦(風のまにまに号)を参考にして,データの移動を行った.
 データの移動を行った後は,カテゴリーや不要なエントリを削除.もうすぐ目の前に,ちなさいとの正式稼働(正確には移転)が迫ってきているのを実感.
 しかし,これまで華式でためてきたデータや,それ以前のデータをどうするのかまだ考えていない.やっぱりひとつひとつぷちぷちと移動させていくしかないのだろうか?