スタイルシートで、#000 とか #333 とか #666 とか #CCC とか #FFF とかの意味は?
これ、間違っていたら誰か指摘して欲しいのだけれど、スタイルシートで #666 とか #CCC とか #999 とか #09F とか3文字でカラーコードが指定されてるときはそれぞれ、#666666、#CCCCCC、#999999、#0099FF となるらしい。つまり、#RGB と指定したときには #RRGGBB となるということ。
これ、間違っていたら誰か指摘して欲しいのだけれど、スタイルシートで #666 とか #CCC とか #999 とか #09F とか3文字でカラーコードが指定されてるときはそれぞれ、#666666、#CCCCCC、#999999、#0099FF となるらしい。つまり、#RGB と指定したときには #RRGGBB となるということ。
Druapl は2007年に入り 5.1 にバージョンアップし、製品も顔負けのものとなった。そしてブログ製品の雄、Movable Type は 4 でオープンソース化し、バージョンアップ(ベータテスト)中。そんな中で Drupal はもうバージョン 6 がリリース予定。このエントリーを書いている時点でコードフリーズ、2~3週間後に本リリースされるだろう。そろそろ Movable Type から Drupal の移行のタイミングじゃないだろうか、というかこのエントリーを書いている今が絶好の移行のタイミングだと思うのだ(Perl Tips はなぜ移行しないのかって?そのうち必ず移行します!200エントリー超えでカテゴリ再構築がもはやこのサイトのホスティング環境ではできなくなってきていることがわかった)。
さて、それにはどうしたらいいかというと、実はブラウザとマウスだけで・・・と、残念ながら簡単にはいかない。特に日本語環境では。しかしあきらめてはならない。私がやった手順を公開するので、その通りにやれば必ずできる。ネットを探してみると、http://scotthiggins.com/node/64で、先人、いや賢人が移行スクリプトを作っていらっしゃるではないか。彼は Movable Type 2.xx の時代からずっとメンテがされていなかった Movable Type → Drupal の移行スクリプトを Fix したもよう。結果、このスクリプトでうまくいく。いくら感謝しても足りないくらいだ。以下、手順を示す。
残念ながらこの方法は Mozilla (Firefox) 独自の仕様なので、それにしか使えないが、-moz-border-radius の値に角丸の大きさを指定してやるとブラウザが角丸枠を描いてくれる。ドットの線(border: 1px dotted...)は無視されてしまうようだ。
#blockquote {
<strong>-moz-border-radius: 10px;</strong>
border: 1px dotted #a3b8cc;
}
自サイトでもエントリー間でリンクを貼りあうことは SEO 対策として有効である。各ページが相互に関連し合ったサイトとみなされるからである。
さて、上の方針を元に自サイト内のエントリーにトラックバックを Movable Type で送り合っていると、途中で
http://…/mt-tb.cgi/xxx」へのトラックバックは失敗しました: HTTP error: 403 Throttled
なるエラーがログに記録されていて、トラックバックができなくなってしまうことがある。この場合は、
このブログのトップページや個別エントリーのページにあるように、Amazon アソシエイトの商品を出すには、今まで紹介してきたような方法を使ってシコシコ手で入力したり、ほとんどワンクリックでリンクを入力する方法(ASIN コードの入力をラクにする方法)もあるが、これらリンクを Movable Type のテンプレートに組み込んでもう少し自動化する方法はないのだろうか?
その方法は、ズバリ MTAmazon という Movable Type 用のプラグインを使うことである。MTAmazon のページからモジュールをダウンロードして、plugins というディレクトリに放り込めば、テンプレートで Amazon アソシエイト用のタグが使えるようになる。各国のアマゾンに対応している(もちろん日本も!)ので、試してみて欲しい。
function AmazonLink(e) {
if (!canFormat) return;
var associate_id = 'twinklexxx'; // 自分のアソシエイト ID に変更
var xslt = 'http://aws.twinkle.cc/amazon.xsl'; // 自分の XSLT のアドレスに変更
var access_key = '152ZP71KPB47XM09CS02'; // 自分の Web サービス Access Key ID に変更
var str = getSelected(e);
var asin = prompt('Enter Amazon ASIN','');
var country = prompt('Enter Country (us or jp)', 'us');
if (asin != null && country != null) {
if (str == '') {
if(country == 'jp') {
code = '-22';
} else if(country == 'us') {
code = '-20';
}
setSelection(e, '<iframe src="http://xml-' + country + '.amznxslt.com/onca/xml?Service=AWSECommerceService&ItemId=' + asin + '&AssociateTag=' + associate_id + code + '&AWSAccessKeyId=' + access_key + '&Operation=ItemLookup&IdType=ASIN&ContentType=text%2Fhtml&Version=2006-03-08&Page=1&ResponseGroup=ItemAttributes,Images,Offers&Style=' + xslt + '" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" height="175"></iframe>\n');
} else {
setSelection(e, '<iframe src="http://xml-' + country + '.amznxslt.com/onca/xml?Service=AWSECommerceService&ItemId=' + asin + '&AssociateTag=' + associate_id + code + '&AWSAccessKeyId=' + access_key + '&Operation=ItemLookup&IdType=ASIN&ContentType=text%2Fhtml&Version=2006-03-08&Page=1&ResponseGroup=ItemAttributes,Images,Offers&Style=' + xslt + '" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" height="175"></iframe>\n');
}
}
return false;
}
write('<img title="<MT_TRANS phrase="Quote">" onclick="return formatStr(document.entry_form.text, \'blockquote\')" src="<TMPL_VAR NAME=STATIC_URI>images/formatting-icons/quote.gif" alt="<MT_TRANS phrase="Quote">" width="26" height="19" />');
<strong>write('<a title="<MT_TRANS phrase="AmazonLink">" href="#" onclick="return AmazonLink(document.entry_form.text)"><img src="<TMPL_VAR NAME=STATIC_URI>images/amazon.gif" alt="<MT_TRANS phrase="AmazonLink">" width="26" height="19" /></a>');</strong>
write('<img title="<MT_TRANS phrase="Quote">" onclick="return formatStr(document.entry_form.text_more, \'blockquote\')" src="<TMPL_VAR NAME=STATIC_URI>images/formatting-icons/quote.gif" alt="<MT_TRANS phrase="Quote">" width="26" height="19" />');
write('<a title="<MT_TRANS phrase="AmazonLink">" href="#" onclick="return AmazonLink(document.entry_form.text_more)"><img src="<TMPL_VAR NAME=STATIC_URI>images/amazon.gif" alt="<MT_TRANS phrase="AmazonLink">" width="26" height="19" /></a>');
write('<a title="<MT_TRANS phrase="Quote">" href="#" onclick="return formatStr(document.entry_form.text, \'blockquote\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-quote.gif" alt="<MT_TRANS phrase="Quote">" width="22" height="16" /></a>');
write('<a title="<MT_TRANS phrase="AmazonLink">" href="#" onclick="return AmazonLink(document.entry_form.text)">
images/amazon.gif" alt="" width="26" height="19" />');
write('<a title="<MT_TRANS phrase="Quote">" href="#" onclick="return formatStr(document.entry_form.text_more, \'blockquote\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-quote.gif" alt="<MT_TRANS phrase="Quote">" width="22" height="16" /></a>');
<strong>write('<a title="<MT_TRANS phrase="AmazonLink">" href="#" onclick="return AmazonLink(document.entry_form.text_more)"><img src="<TMPL_VAR NAME=STATIC_URI>images/amazon.gif" alt="<MT_TRANS phrase="AmazonLink">" width="26" height="19" /></a>');</strong>
Updated: 2007/04/21
Created: 2007/07/01
要は、印刷用のスタイルシート(例えば、styles-print.css)を用意して、テンプレートから通常のものと一緒に指定する。以下の手順で設定する。
それでは styles-print.css に何を書くのか?基本的には、styles-site.css の内容をそのままコピペする。そしてカスタマイズしていけばいいのだが、そのまま印刷プレビューしてみるとすぐにわかることがある。ページをまたがるエントリーや、ウェブページが、うまく表示されないのだ。これは styles-site.css の中にある、
overflow: hidden;
と書いてある部分のいたずらである。styles-site.css のスタイルシートの中には数ヶ所この記述が散らばっているのだが、styles-print.css の中ではこれをすべて /* … */ でコメントアウトすればよい。
Movable Type 3.2 であれば、styles-print.css の最後に、とりあえず以下を追記しておけば、サイドバー(Movable Type デフォルトテンプレート右側の部分)や、コメント、トラックバックが印刷時には印刷されなくできる。
#beta,
#comments,
.content-nav,
.trackbacks,
{
display: none;
}
checkbot を利用するといいだろう。
これは Perl ベースのコマンドラインツールで、実行するとリンク切れをチェックして HTML を出力する。その HTML に書き出された検出結果をブラウザから見るという使い方。
この checkbot、UTF-8 で書かれたサイトを指定してて実行すると、
Parsing of undecoded UTF-8 will give garbage when decoding entities at
/usr/lib/perl5/site_perl/5.8.7/LWP/Protocol.pm line XXX, line 1.
などのエラーが出るが、気にしないでよい。実行例としては、
./checkbot --url http://perltips.twinkle.cc/
--internal-only --ignore "\.js|hatena\.ne\.jp|\.ico"
※本当は全部 1行
のような感じで、上の例だと、http://perltips.twinkle.cc/ (このサイト)を対象にして、JavaScript のリンク (.js)、hatena.ne.jp、アイコンファイル (.ico) を無視し、サイト内だけリンク切れをチェックする、という設定である。
参考リンク
Movable Type 日本語版は、カテゴリー名に英数字が入っていた場合はそれを利用してディレクトリ名を作成しようとするが、日本語のみのカテゴリー名を付けた場合には、Movable Type が cat72 などと勝手なディレクトリ名をつけてしまう。
カテゴリー名はそのままブログのパーマリンクの URL の一部となる。URL の一部ということは SEO の観点からいうとキーワードの一部であるため、これはできればせめてキーワードに関連した英単語などにしたい。
その方法だが、
<自分の指定したいディレクトリ名>日本語のカテゴリー名
とする。
<$MTCategoryLabel decode_html="1" remove_html="1"$>
<$MTArchiveTitle decode_html="1" remove_html="1"$>
に置き換える。