メイン> Movable Typeカテゴリアーカイブ

2007年04月19日

Not Japanese Lookup ブックマークに追加する

ここ数週間の間に、いきなり英語のスパムコメントが増えました。「傍観していればおさまるだろう」と思ったのですが、まったくおさまる気配がありません。フィルターする値を高くしてみましたが、効果がありません。

一生懸命、コメントやトラックバックの整理をしていたら、普通のコメントやトラックバックが埋もれ、迷惑コメントやトラックバックが何故かすり抜けている事態に直面しました。…表示されなかった皆さん、申し訳ありません。

「この対処はやってられない」と根負けして、Not Japanese Lookupプラグインをインストールすることにしました。全角文字が含まれていないとスパム判定にしてくれるプラグインです。私の今までの経験上全角文字の含まれていないスパムでないコメントをもらった覚えがないので、たぶん問題ないと思ってます。

もっと早くインストールしておけばよかった…。

投稿者 michy : 12:10 | コメント (0) | トラックバック |    



2006年11月23日

MT3.3にしてみました ブックマークに追加する

トラックバックの不具合が直らないので、MTを3.3にアップデートしました。

オフィシャルマニュアルのアップデートのページMilano::Monolog「MovableType3.2から3.3へのアップグレード手順」を参考にしました。

自分が使ってるサーバを忘れる、ftpソフトの行方がわからなくなる、ftpソフトの使い方がイマイチ不明になる、ftpパスワードを忘れる、cgiのパーミッションは何にすればよかったのか忘れる、あたりのクエストは一通りこなしましたが、それなりに順調に運んでびっくりです。

そして、「トラックバックの不具合のお詫びと「ブログ論壇考」への誘導でやった修正をやりました。これでもうトラックバックできないなんてことはなく、バッチリのはずです。はずだと言ってください。

投稿者 michy : 00:24 | コメント (0) | トラックバック |    

2006年11月16日

トラックバックの不具合のお詫びと「ブログ論壇考」への誘導 ブックマークに追加する

長い間、気付いてなかったのですが、私のブログにはたとえスパムであってもトラックバックが集中すると一時的にトラックバックを受け付けられなくなるという仕様があったようなのですが、直した、つもりです。

発覚したのは、「なぜ、日本人はUIにお金を払わないの?」というエントリをたくさんの皆様にご注目いただいたことがきっかけです。

こんなにたくさんのかたに注目されるとは思っていなかったのでびっくりしました。そもそもが「弟に教えてもらったムービーの紹介だけじゃ芸がないから、普段、夫婦で会話しているようなことと、愚痴めいた感想でも書こう」と思って、私のブログを読んでくださってる中でも一部の層に向けて(もっとも、ブログというものはそういう「好きなエントリだけを読む」ものだと思っているので、基本的にどのエントリもそういうスタンスではあります)適当に書いたエントリだったのです。

だから、使ってある用語などもわざと説明を省いていたりしました。当初想定していた読者は「Mac OS Xを使ったことがあってその思想を知っていて、広義のデザインの意味とUIとXMBとVIERAリンクの仕組みがある程度分かっており、エントリで触れてるワールドビジネスサテライトかガイアの夜明けを見たことあって、仕事を含めてケータイ3キャリアを使ったことある人」というなかなかニッチな層でした。

しかし、あまりに注目をしていただいたので、「これは明らかに私の想定読者層が間違ってる」と思って、あわてて「UI」に「(ユーザーインターフェース)」って注釈を書いたり、「ここは論証をはぶいたな」と思ったところを書き足したりしました。このあたりの齟齬の力や問題点などの文化については、何か書こうと思ってたんですが、47thさんの「ブログ論壇考(1):ブログの力」で全部触れられそうな気配がとても漂っているので、今はそちらへ誘導だけさせていただきます。

前置きが長くなりましたが、そんなわけで、該当エントリに二件ほど「トラックバックしました」とコメントやエントリで書いて頂いたのにトラックバックの影も形も無いというものがありました。連絡受けてないのだとどれくらいあったのかと思うと、本当に申し訳ありません。

そのうちのお一方であるnaotakegymnasium::mtのnaotakeさんに出たエラーのお問い合わせをしてみたら参考になるページをお教えを頂きました。naotakeさん、ありがとうございます。どうやらMT3.2以降の仕様(…)のようです。お教えいただいたこちらこちらを参考にこのブログの手直しをしました。直ってると嬉しいです。

トラックバックをいただきました皆様、大変、お手数ですが、もう一度トラックバックを打ち直していただければ幸いです。

投稿者 michy : 20:35 | コメント (3) | トラックバック |    

2005年12月07日

エントリの選択した複数のカテゴリにリンク! ブックマークに追加する

かなりの連続投稿なので、もういいかげん、Mobable Typeネタはいいよ、と思ってるアナタ、申し訳ないです。でも、メモをしておかないと忘れそうなので、懲りずにまたエントリします。

今度は、今までメインページや個別エントリや月別エントリなどで、どのカテゴリへの投稿か表示されていないのが気になっていました。サブカテゴリについての探索をやっている中で、各エントリがどのカテゴリにリンクしているのか表示してリンクする方法をMovable Type 4989の「EntryCategoriesModified と EntryCategoryEntries」で見つけたのでトライしてみました。なんとこの方法は複数のカテゴリを指定した場合にも、サブカテゴリも含めたリンクが貼れます!すごいぜ。

何が書いてあるのやらさっぱり分からないのですが、表示したい場所にこの表記をするだけです。ただ、例によって私はMTCategoryLabelを使ってないので、そこだけ赤字のとおり、$MTCategoryDiscription$に訂正しました。

<MTEntryCategories glue=", ">
<MTParentCategories glue=" > ">
<MTIfNonZero tag="MTCategoryCount">
<a href="
<$MTCategoryArchiveLink$>"
<MTIfNonEmpty tag="MTCategoryDescription">
title="<$MTCategoryDescription$>"
</MTIfNonEmpty>>
<$MTCategoryDiscription$></a>
<MTElse>
<MTCategoryDescription>
</MTElse>
</MTIfNonZero>
</MTParentCategories></MTEntryCategories>

これでサブカテゴリーも含めてこのように表示されるようになります。
category-hyoji.jpg

うーん、嬉しいです。

投稿者 michy : 13:37 | コメント (0) | トラックバック |    

サブカテゴリも含めたカテゴリ別表示にと戯れる ブックマークに追加する

Movable Typeを3.2にアップグレードしたら、サブカテゴリの機能が使えるようになりました。読み物カテゴリはエントリ数が50を超えるようになって、サブカテゴリなしの分類には限界を感じていました。ましてや、日常カテゴリは、サブカテゴリのない状態から既に日常2005と日常2004以前に分けていました。

私が使わずに誰がサブカテゴリを使う!

私は使命感を持ちました。ただ、サブカテゴリを使うなら、「カテゴリ別」にサブカテゴリ一覧を表示できなくては意味がありません。

さっそく、サブカテゴリの表示の仕方を検索しました。亜細亜ノ蛾 - Weblogの「MT でサブカテゴリ以下も全て表示させるには?」と、Lucky bag::Blogの「MTのサブカテゴリ導入」を参考に、<ul>と<li>でサブカテゴリを表示するように設定しました。表示してみました。

何でサブカテゴリを表示させたら、その下がめちゃくちゃ空くねん!

ただ、親カテゴリ同士が並んでるときは問題ないので納得がいきません。よく確認してみたら、私のスタイルシートのサイドバーはキレイにみせるためか、要素を<ul>で管理していて、<ul>のmargin-bottomが30pxほどとってあります。サブカテゴリがあるときは、<ul></ul>の中にさらに、<ul>と</ul>を書くことになるために、margin-bottomの30pxがひっかかってきているのでした。

どうしたらいいのかしら。悩んでいろいろ探していると、Ayapan Diaryの「サブカテゴリを作成」に<dt>や<dd>、<dl>を使って例が載っていました。よく分からないけど、違うタグを使ったらうまくいきそうだ!と思った私はこちらにトライしてみることにしました。

サブカテゴリの横へのずれかたが半端ないんですけど…

そもそも<dt>なんてタグを初めてみた私には敷居が高すぎたようです。このあたりで夫が帰宅したので、夫に泣きをいれることにしました。

「ここにね、何でスペースができちゃうの?これをなくしたいの」

それはブラウザの実装だから難しいねー、といいつつ相談にのってくれる優しい夫。もともとトリビアは豊富な夫ですが、何でも知ってるから神様に見えてきました。。すごいなあ。今度夫の作ったサイトのスタイルシートもみてみよう。

夫のおかげで、<dl>系はデータを格納する万能のデータベースのようなタグなので、使うのは間違っていないこと、<ul>と<li>に対応するのが、それぞれ<dl><dt>であること、<dd>は<dt>に入ったものの説明であることを理解しました。

また、スペースが空いちゃったりするのはブラウザの実装上どうしてもしょうがないので、スタイルシートで調整すべきということも分かりました。

まずはスタイルに以下を書いてborderを表示して、上が空いているようならmargin-topを0に、下が空いているようならmargin-bottomを0に、どうしても横にずれちゃうようならmargin-leftを-2emなどに設定します。なるほどねー。

border-style: dotted;
border-width: medium;
border-color: #FC9;

結局、私の場合は<dd>を使ったために必要以上に横にずれて表示されてしまっていたことが判明しました。説明要素は横にずれて表示するように実装しているブラウザが多いようです。

そこで、<dl><dt>だけで構築し直して、それぞれにスタイルを設定します。dlのスタイルは他のサイドバーのスタイルと合わせました。グレイになっている箇所が他とあわせた箇所になります。ブラウザの実装でスペースが空いてしまうことがあったので、そこはmarginを0にすることでなんとか乗り切りました。

また、昔々、私はCategoryのLabelを日本語化すると文字化けするという噂を目にしたので、<MTCategoryLabel>ではなく<$MTCategoryDiscription$>を使っています。この噂は昔の時代のことでしょうか。

結局、今は以下のような設定で表示しています。

メイン・インデックス、各アーカイブへ挿入したもの

<MTSubCategories show_empty='0'>
<MTSubCatIsFirst>
<dl>
</MTSubCatIsFirst>
<dt>
<a href='<$MTCategoryArchiveLink$>'>
<$MTCategoryDescription$>
</a>
(<$MTCategoryCount$>)</dt>
<MTSubCatsRecurse>
<MTSubCatIsLast>
</dl>
</MTSubCatIsLast>
</MTSubCategories>

スタイルシートに挿入したもの

.sidebar dl {
color: #666666;
font-family: Verdana, Arial, sans-serif;
font-size: x-small;
text-align: left;
line-height: 150%;

margin-top: 5px;
margin-bottom: 0;
}

.sidebar dl dt{
margin-top: 5px;
}

.sidebar dl dl dt{
font-size: 100%;
padding-left: 12px;
background: url(list.gif) left center no-repeat;
}

ふー。疲れた。

これで後はエントリのカテゴリを一つ一つ変更して終了です。

って、それが単純作業で一番面倒なんじゃ…

ところで、かなりウキウキで作業をしていたら、朝も夜もPCを占領することになり、夫に「ハマりすぎてるやろ。言っとくけど、僕のこの言葉は警告やからな」と怒られてしまいました。朝にPCが使えないと天気や交通情報が検索できなくて困ってしまうようなんです。

「で、でも、朝、夫が用意している間、私、ヒマだし」と言ってみたら、「なにか。キミは自分がヒマやから朝の忙しい時間、僕に不便を我慢しろというのか」と怒られました。

確かに、その通りです。すみません…。ちょっとノリノリでウキウキ過ぎました反省します。

(追記)
その後、Teckknow Weblogのサブカテゴリを表示するためのタグを読んでいたら、カテゴリへのエントリー数が0のときにリンクを表示せずに文字だけを表示する方法がやっと理解できたので導入しました。

<MTSubCategories>
<MTSubCatIsFirst>
<dl>
</MTSubCatIsFirst>
<MTIfNonZero tag='MTCategoryCount'>
<dt><a href='<$MTCategoryArchiveLink$>'>
<$MTCategoryDescription$>
</a>(<$MTCategoryCount$>)</dt>
<MTElse>
<dt><$MTCategoryDescription$>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse>
<MTSubCatIsLast>
</dl>
</MTSubCatIsLast>
</MTSubCategories>

MTタグの意味が分かってないとカスタマイズはつらいですね。

特に、JavaScriptでテンプレート化してるとどれが表示要素か繰り返しのための要素なのかが不明なので、かなりつらかったです。上記の例は一般向けにJavaScriptでテンプレート化してないときにそのままインデックステンプレートや各アーカイブテンプレートに書くときの例なので、ついでに私以外にいるのかどうか分かりませんが、JavaScriptでテンプレート化しているときのための例をメモがてらアップしておきます。

<MTSubCategories>
<MTSubCatIsFirst>
html += " <dl>";
</MTSubCatIsFirst>
<MTIfNonZero tag='MTCategoryCount'>
html += "<dt><a href='<$MTCategoryArchiveLink$>'>
<$MTCategoryDescription$></a
>(<$MTCategoryCount$>)</dt>";
<MTElse>
html += " <dt><$MTCategoryDescription$>";
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse>
<MTSubCatIsLast>
html += "</dl>";
</MTSubCatIsLast>
</MTSubCategories>
html += "</ul>";

投稿者 michy : 11:22 | コメント (0) | トラックバック |    

JavaScriptでMovable Typeを軽量化にトライ ブックマークに追加する

そもそも、「blog移転顛末記」で記したように、サーバーの移転(というか分割?)を決意したのはMovable Typeの再構築の動作が非常に重いからでした。しかし、夫情報やWebの情報を総合するに「PHP化」という軽量化がある模様です。ちなみに、私は誤解して、PHP化はMovable Typeの3.0以降ではないとダメかと思っていたのですが、そんなことはありません。JavaScriptでの軽量化も同様だと思われます。

でも、移転してせっかくリンクから何から書き換えたこのブログを、また今からPHP化したら拡張子が変更されちゃうからURLが変更になってリンクも変更しなくてはいけなくて面倒でイヤです。そもそも、「.html」であることがカッコいいんじゃない!とよくわからない美学をもつ私はPHP化に憧れながらも躊躇していました。そしたら、Fenrir's Blogに「テンプレート共通化とJavaScriptによる軽量化」というエントリを発見しました。

なんと、拡張子はhtmlのままで、JavaScriptを使って軽量化、テンプレート化が実現できるようなのです。私はあまりクライアントに負荷をかける作業が好きではなく、サーバーサイドのものがラブです。だから、JavaScriptはウザイ、PHPは素晴らしい、という認識だったのですが、JavaScriptでそんなことができるなら認識を改めなくちゃ!

さっそく、テンプレート化にトライすることにしました。まずは実験で、Movable Typeとは連動しないけど全部のページに貼付けてある「なんとなく紹介」をJavaScriptでテンプレート化することにしました。

1.「テンプレート」→「テンプレートを新規作成」で、インデックステンプレートを新規作成します。

2.テンプレート名、出力ファイル名を適当に入力し、再構築オプションをはずします。私はテンプレート名「JSなんとなく紹介」、出力ファイル名は「osusume.js」としました。再構築オプションをはずしたのは、自分でお勧めする本を変更するときにだけ手動で更新すればいいからです。

3.テンプレートの内容を入力します。基本的に赤字のところを自分好みにカスタマイズすればOKのはずです。行が足りないときは、html += ""を追加してください。私の場合は、テンプレートをスッキリ見せるために「テンプレート共通化とJavaScriptによる軽量化」とは違って、document.writeもJavaScriptの外部ファイルにいれてしまうことにしました。

function getOsusume(){

var html = "<h2>★なんとなく紹介</h2>";
html += "<A HREF='http://www.amazon.co.jp/exec/obidos/ASIN/4785704004/mmspg-22'>";
html += "<img alt='keypoint.jpg' src='http://www.uemura.info/michiko/mtdb/keypoint.jpg' width='99' height='139' border='0' /></A>";
html += "<UL><LI>英文契約をするなら必読!</LI>";
html += "<LI>私も人から勧められました</LI>";
html += "<LI>基礎から辞書的要素までてんこもり</LI>";
html += "</UL>";
html += "<A HREF='http://www.amazon.co.jp/exec/obidos/ASIN/4101294313/mmspg-22'>";
html += "<IMG SRC='http://images-jp.amazon.com/images/P/4101294313.09.MZZZZZZZ.jpg' BORDER='0'></A>";
html += "<UL><LI>男性の心理を知るのに。</LI>";
html += "<LI>女性の心理を知るのに。</LI>";
html += "<LI>結婚後に読んだけど参考になりました</LI></UL>";

return html;
}
document.write(getOsusume());

4.メインページのテンプレート、アーカイブテンプレートの「なんとなく紹介」を表示したい場所にJavaScriptを外部ファイルから読み込むタグを書きます。赤字を自分で作った名前やファイル名にしてください。テンプレートをみたときに分かりやすくするために「★なんとなく紹介」とコメントも追加しました。

<!--★なんとなく紹介-->
<script language="javascript" type="text/javascript" src="<$MTBlogURL$>osusume.js"></script>

最後にこのテンプレートとインデックスやアーカイブなどの該当するすべてのファイルを再構築すればできあがりです。

と、書くと一見素直に苦労することなく出来たように見えますが、そんなことはありません。とてつもなく試行錯誤を繰り返しました。

そもそも「JavaScriptってなんとなくウザそうだよねー。外部ファイル取り込み?聞いたことないよ」という程度の知識しかない私が、ちょっとした解説だけでいろいろ作って改造してみるのには無理がありました。見よう見まねでやってみたのですが、まったくうまく動きません。

原因を探ろうにも何をいじって探ればいいやらちんぷんかんぷん。そんなわけで、JavaScript External File - JS FileのHP改造前の基礎知識で、JavaScriptの外部ファイルのことを学びました。なんとなく分かりました。ここで得た知識で、document.writeをjsファイルの中に書いちゃうことにも決めました。

どうやら自分の書き方に間違いはないような気がします。何がダメなんだー!!と見本と見比べて気づきました。見本では html += ""の中ではダブルクォテーションを使ってないことに。どうやらこの中でダブルクォテーションを使えないことはJavaScriptの常識だったようです…。見本と同じで、シングルクォテーションを使えるようにエディタでダブルクォテーションをシングルクォテーションに変換しました。これでやっとうまくいきました。

次は、Movable Typeタグを使ったものにトライです。「月別アーカイブをリスト選択式にしてみる」で作った月別アーカイブを例にすることにします。

1.「テンプレート」→「テンプレートを新規作成」で、インデックステンプレートを新規作成します。

2.テンプレート名、出力ファイル名を適当に入力し、再構築オプションをつけます。私はテンプレート名「JS月別」、出力ファイル名は「monthly.js」としました。再構築オプションをつけたのは、インデックスファイルを再構築する(=新規エントリをする)たびに月別エントリの数が増えるかもしれなくて、そのときは自動でこのファイルも再構築して欲しいからです。

3.テンプレートの内容を入力します。赤字のような繰り返しのためのMovable Typeのタグをhtml +=""の外に書くことが、Movable Typeタグを使う場合のポイントになります。見比べていただけると分かりますが、後は基本的に「月別アーカイブをリスト選択式にしてみる」をhtml += "" の中に格納しているだけになります。ただ、青字のようなHTMLに書いていたJumpMonthもjsファイルに格納してみました。

<!--★カテゴリ別-->
<script language="javascript" type="text/javascript" src="<$MTBlogURL$>cat.js"></script>

function getMonthly(){

var html = "<h2>★アーカイブ</h2>";
html += "<ul>";
html += "<FORM name='MonthlyList'>";
html += "<SELECT size='1' name='lstMonth'>";
<MTArchiveList archive_type='Monthly'>
html += "<OPTION value='<$MTArchiveLink$>'><$MTArchiveTitle$></OPTION>";
</MTArchiveList>
html += "</SELECT>";
html += "<INPUT type='button' name='btnAdd' value='ジャンプ' onClick='JumpMonth()'></FORM>";
html += "</ul>";

return html;
}
//script by @うさ
function JumpMonth()
{
location.href=document.MonthlyList.lstMonth.value;
}

document.write(getMonthly());

4.メインページのテンプレート、アーカイブテンプレートの月別アーカイブを表示したい場所にJavaScriptを外部ファイルから読み込むタグを書きます。

<!--★月別->
<script language="javascript" type="text/javascript" src="<$MTBlogURL$>montly.js"></script>

これで、同じくこのテンプレートと、インデックスやアーカイブなどのファイルをすべて再構築をして出来上がりです!

同じ要領でカテゴリ別や検索窓などもJavaScriptでテンプレート化してみました。

さて、どれくらい再構築が速くなったかなー、と思って「すべてを再構築」をやってみると感動しました。

ものすごく速いよー!!!

勝手な私の体感時計では、今まで10分くらいかかっていたのが2,3分で済む速さです。感動してばっかりですが、ものすごく感動しました。テンプレート化万歳!JavaScript万歳!

というわけで、ぜひ、このブログをみる際にはJavaScriptをONにしてください。お願いします。

投稿者 michy : 09:21 | コメント (0) | トラックバック |    

月別アーカイブをリスト選択式にしてみる ブックマークに追加する

ここ2、3日、とても自分のブログのカスタマイズにこっています。既にいくつかありますが、今後も縁のない人にはまったく関係のないエントリが連続しますので、軽く無視してください^^;縁がなくても、軽く読んで、「へー、michyってこんな複雑なことやってるんだ。やっぱ、ただものじゃないな!」などと関心していただけたら望外の幸せです。

今度は、夫から「キミの月別アーカイブはリスト形式でえんえんと並ぶんか。3年分くらいになるしウザいなー」と言われました。月別のアーカイブなんてあんまり使うとも思えないし、確かにウザいなーと思っていたので、さっそくよそのページでみかけたリストを選択してジャンプする形式にすることにしました。

選択形式のリストは、HTMLのフォームでリストをつくるのであろう、という程度の知識はあったものの、はたしてジャンプするとなるといったい何でジャンプさせてるのか分かりません。かなりの低い知識からのスタートです。手元の本を参照すると、フォームとCGIの連携が載っているものの、まさかここでCGIを使うわけはないでしょー、と思って、きっとJavaScriptに違いない、とアタリをつけました。

検索してみると、さっそくJavaScriptのサンプルがたくさんあるサイトうさのJavaScript講座サンプル集4にて、目的の「ドロップダウンリストボックスから別のページへジャンプ」というサンプルを発見します。わーい、わーい。

サンプルをみてみたら、なんとなく仕組みはわかったので、<option></option>をMovable Typeの<MTArchiveList>で囲む形式で書き直し、サイドバーに付け加えます。

<SCRIPT language="JavaScript">
<!--//script by @うさ custmized by michy
function JumpMonth()
{
location.href=document.MontlyList.lstMonth.value;

}
//-->
<FORM name='MonthlyList'><SELECT size='1' name='lstMonth'>
<MTArchiveList archive_type='Monthly'>
<OPTION value='<$MTArchiveLink$>'><$MTArchiveTitle$></OPTION>
</MTArchiveList>
</SELECT><INPUT type='button' name='btnAdd' value='ジャンプ' onClick='JumpMonth()'></FORM>

一発で動作しました!これでサイドバーがすっきりしました。もうちょっとブログパーツ取り付けてもいいかもかも。嬉しいです。

投稿者 michy : 08:54 | コメント (0) | トラックバック |