2005-10-19 アーカイブ

http://hxxk.jp/2005/10/19/

記事中にちりばめられた関連記事への導線は辿られるのか

記事データ

投稿者

望月真琴

投稿日時

2005-10-19T23:33+09:00

タグ
概要

「リニューアルで古くなった URI を新しい URI にリダイレクト」自体には書かれていなかったために「説明されていない」と取られてしまったファイルごとのリダイレクト方法。しかし、その方法への導線は実はちりばめられていたのです。

リプライ

2 件のリプライがあります。

記事本文

自分のための記録であることと、第三者に対する配慮

hxxk.jp の作成の目的は「自分のための記録、備忘録」です。 もちろん、他人の記事に対して何かの意見を言ったりする記事もありますが、それも大きな視野で見れば「誰々の記事に対して感じたことを文字にして、『あの時の自分はこう考えていた』ということを確認できる」という記録になると言えるでしょう。

自分のために書いているのなら、その時は明確な答えを得られなかったことについても、後から解決の目を見たら古いものは「これはこないだ解決したもんなあ」で済ませればいいのですし、似たような話題を扱っている記事もおぼろげながら記憶に残っています。 よって、特段分類をしたり補記をしたりということはしなくても構わないという理論もできあがりますが、やはり自分の記憶だけでは全てをフォローできません。

そこで、 Movable Type のキーワード記録機能と Tagwire Plugin というプラグインを使って キーワードによる記事の分類を行っています。 また、このプラグインの機能を用いて、各個別記事には ( 同じキーワードが設定されているという意味で ) 「関連のある記事」をリストアップしています。 この分類や関連性というものには私の主観によるところが大きいのですが、それでも全くの未分類よりは私にとっても、またご覧になっている方にとっても便利であると信じています。

キーワードや「関連のある記事」も見て欲しい

何故、前項のようなことを再確認するように書き出したか。 たまたまリファラに HTTP 301ヘッダで、MT2.xのアーカイブからMT3.xのアーカイブにリダイレクトする :Heartlogic という記事があるのを見つけ、リニューアルで古くなった URI を新しい URI にリダイレクトが参考にされていることを知ったからです。

いや、参考にされたからそういったことを考えたというわけではなく、 ディレクトリごと移転する場合はこのようにすれば良いようだけど、「絶対パス」がどこのパスを指すのかイマイチ分からないし、ファイル1本ごとの場合も説明されていない。 と書かれていたからと言った方が正解に近いでしょうか。

確かにその記事内には直接 「 パーマリンクのURLの作られ方が違う 場合のリダイレクト方法」は書かれていません。 HTTP 301ヘッダで、MT2.xのアーカイブからMT3.xのアーカイブにリダイレクトする :Heartlogic の一つ前の記事に Web2.0時代に、ユーザーが経験しておくべき10のこと :Heartlogic という記事があり、 あらゆるリソースはリソース単位でランダムアクセスされる、ということの経験 とあるように、他の記事には書いている内容だったとしても、「その記事内」に書かれていなければ読まれない可能性があるというのも分かっています。

しかし、それをある程度考慮して、キーワードおよび「関連のある記事」による類似記事への到達性を高めているのだから、そこに少しでも目を向けて欲しかった、「関連のある記事」の部分に並べられたリンクアンカーから、あるいは記事の冒頭のデータ部分から htaccessリダイレクトというキーワードを見つけ、そのキーワードを集めたページから、デフォルトの個別エントリーアーカイブから URI を変更する場合の注意点に辿り着いて欲しかったと思いました。

または、もう一度言葉を借りるなら、 Q&Aサイト等で質問、回答をする ということをして欲しかったとも思いました。 hxxk.jp は Q&A サイトではありませんが、もし「ファイル 1 本 1 本ごとにリダイレクトする方法はありませんか ? 」と尋ねられていたら、喜んでデフォルトの個別エントリーアーカイブから URI を変更する場合の注意点を紹介したでしょう。

小林さん ( Heartlogic ) が辿り着いてくれなかったこと自体を非難するつもりはありません。 サイト内の記事全てに目を通して初めて 説明されていない という判断をするには手間がかかりすぎます。 ただ、辿り着いていてくれさえすれば、 百本以上のアーカイブ全部についてこのように新旧URLの対応を列記する という回りくどい方法を取らせることもなかったのになあ……という残念な思いから書きました。

各個別記事において、関連のある記事や検索フォームを活用していただく旨の注意書きを記述しました。

Movable Type 2.x 形式の Permalink から Movable Type 3.x 形式の Permalink にリダイレクトする方法

さて、既に解決しているようですが、折角なので簡単に Movable Type 2.x 形式の Permalink から Movable Type 3.x 形式の Permalink にリダイレクトする方法を解説しようと思います。 前項までで終わっていたら、私の単なる愚痴にしか見えませんし。

なお、 .htaccess の Redirect permanent ディレクティブを用いるため、 .htaccess を使える環境にあることが前提条件となります。 また、解説内の項目名は Movable Type 3.2-ja-2 を元にしています。

  1.  管理画面から「テンプレート」をクリックします。
  2.  「テンプレートを新規作成」をクリックします。
  3.  テンプレートの名前を適当な名前にし、出力ファイル名を .htaccess にします。テンプレートの中身に次のようなコードを記述します。
    <MTEntries lastn="1000">Redirect permanent <$MTBlogRelativeURL$>archives/<$MTEntryID pad="1"$>.html <$MTBlogArchiveURL$><$MTEntryDate format="%Y/%m/"$><$MTEntryBasename$>.html
    </MTEntries>
  4.  テンプレートを保存し、「このテンプレートを再構築する」をクリックします。

以前に Latest Entry Redirect Template で扱った、 .htaccess をインデックステンプレート化する方式と同じ手法です。 なお、既にローカルで .htaccess を作成してサーバ上に put していた場合は、テンプレート内にその記述も合わせて行うことに注意してください。 一緒に記述しないと、テンプレートの再構築時にその内容が上書きされて失われてしまいます

テンプレートのコードについていくつか説明します。 Movable Type 2.x のデフォルトの設定では、 Permalink には <$MTEntryID pad="1"$> で生成された値が使われています。 対して、 Movable Type 3.x のデフォルトの設定では <$MTEntryDate format="%Y/%m/"$><$MTEntryBasename$> で生成された値が使われています。 ( Movable Type 3.2 の「公開の設定」では yyyy/mm/entry_basename という表現になっていますが、テンプレートタグで表現するとこのようになります。 ) これらを MTEntries コンテナタグで囲み、 lastn を 1000 としてテンプレートを作れば、全ての記事の Permalink をリダイレクトするテンプレートができるというわけです。 ( もし記事の数が 1000 個以上ある場合は、 lastn の値を適宜増やしてください。 )

トラックバック送信先

HTTP 301ヘッダで、MT2.xのアーカイブからMT3.xのアーカイブにリダイレクトする :Heartlogic

既に解決しているようですが、折角なので簡単に Movable Type 2.x 形式の Permalink から Movable Type 3.x 形式の Permalink にリダイレクトする方法を書きました。

リプライ

2 件のリプライが送られています。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

2005-10-19T23:50+09:00 - 小林

こんにちは。なるほど、直で.htaccessを生成するという手もありますね。 私の場合、記事のインポート/エクスポートを行って記事IDが全部変わってしまっているのでこの手は使えなかったのですが、DBをそのまま移している場合等には使えますね。ためになりました。ありがとうございます。

2005-10-21T01:52+09:00 - 真琴

ああ、インポート / エクスポートをしていると確かに ID 変わりますね。まあ、 .htaccess の作成も既に終わられていたので、参考程度に読んでいただければ。 ちなみに、これと同じ考え方で、「常に最新の記事へリダイレクトさせる .htaccess 」を作ったりもできます。 ( 詳しい解説は <a href="http://hxxk.jp/2004/09/07/2128">http://hxxk.jp/2004/09/07/2128</a> にて。 )

引用文と cite 要素と cite 属性

記事データ

投稿者

望月真琴

投稿日時

2005-10-19T00:18+09:00

タグ
概要

引用元の情報を示す cite 要素および cite 属性のそれぞれの定義と、その使用方法について。

リプライ

4 件のリプライがあります。

記事本文

cite 要素か cite 属性を使うとより適切ですよ

<div class="quotetitle"></div><address></address> というように、適切な要素 ( または属性 ) が定義されているのにそれが使われていないので、適切な要素を使った方が良いですよ、というお話。 まずは仕様を見てみましょう。 HTML の現時点での勧告済み最新バージョンは XHTML 1.0: The Extensible HyperText Markup Language (Second Edition) ですが、要素ごとの詳細な解説は無いので HTML 4.01 Specification を見ることにします。

cite 要素を使う場合

cite 要素は、 Contains a citation or a reference to other sources. ( 引用か、他のリソースへの参照であることを示す。 ) のように定義されています。 引用を行った場合の引用元のリンクアンカーを <cite></cite> 囲んで使用する方法の他にも、引用を行っていない場合でも参考リソースを示す場合に使用するようになっています。

なお、 cite 要素による引用元の明示を行う位置については『blockquote要素の中に出典を示すcite要素を包含すべきか』に関する議論リンク集 @ CD にそれぞれの場合の利点や欠点がまとめられているので、是非ご一読されることをお勧めします。

cite 属性を使う場合

cite 属性は、引用部分であることを示す blockquote 要素または q 要素の属性として定義されています。 ( del 要素と ins 要素の属性としても定義されていますが、引用における用途とは少し違うので割愛します。 ) 属性の形式は %URI; とされており、 The value of this attribute is a URI that designates a source document or message. This attribute is intended to give information about the source from which the quotation was borrowed. ( この属性の値は、元文書あるいは元記事を指し示すURIである。 この属性は、当該の引用がどこから引かれたものであるかについての情報を提供することを目的としている。 ) のように定義されています。 引用を行った場合に、合わせて cite 属性で引用元の URI を示すことができます。

ちなみに、 cite 属性による引用元の明示がされていても、それをどう取り扱うかの実装は各ブラウザによって異なる点に注意が必要です。 CSS の :before 擬似要素や :after 擬似要素で引用元を表示することができますが、 IE は :before 擬似要素や :after 擬似要素自体に未対応、 Firefox は :before 擬似要素や :after 擬似要素によるテキストを選択してコピーするということはできないという制限があります。 ( Opera はコピーすることが可能です。 )

また、 Firefox の場合は引用元を拡張機能やブックマークレットで手軽に表示することができますし、 IE でも Bookmarklet - パソコン遊戯 - ナビゲーションなどのブックマークレットで引用元を表示することができますが、標準の機能としては提供されていません。 ( Mozilla Suite では提供されていたような気もします。 ) cite 属性で引用元を表示する場合は、文意を損なわない程度に a 要素によるリンクも併記すると良いでしょう。

ちょっとあれれ ? と思ったところ

この記事を書くことになった発端は あいにくgooブログでは div class が有効ではない為に、この部分をaddressタグに変更しました という文を目にして、 「何で address 要素なんだろ、 cite 要素を知らないのかなあ」 と思ったことです。 でもえっけんさん ( むだづかいにっき♂ ) ははてなブックマーク - むだの素R / 引用にて先月の引用論争関連の記事をいくつかブックマークされているし、知らないはずは無いと思うのですが……。 基本的な使いかた - goo ブログ - 利用可能なHTMLのタグ一覧にも cite 要素は明記されていますし。

えっけんさんが Firefox を使っているかどうか知らないけど、もし Firefox を使っているなら拙筆の Copy URL+ 紹介記事「選択箇所を blockquote 」の紹介記事を見てもらうといいなあ、記事中で cite 要素についても触れているし、と思ってトラックバックを送ろうと思ったのですが、「選択箇所を blockquote 」の紹介記事はえっけんさんにブックマークされていることに気付きました。

うーん、以前も似たようなことがあったけど、私の説明スキルはやはり低いのでしょうか……。 まあ、あくまでブックマークなので、冒頭部分だけ読んでクリップだけしている、という可能性もあるとは思いますが。

トラックバック送信先

引用タグ作成Bookmarklet(Win版IE用) : ポトフの散歩道 -北国tv

javascript:var url=location.href;var title=document.title;var linkTag ='<blockquote><div class="quotetitle"><a href=\''+url+'\'>'+title+'</a></div>'+document.selection.createRange().text+'</blockquote>';var x = prompt('',linkTag); ではなく、 javascript:var url=location.href;var title=document.title;var linkTag ='<blockquote><cite><a href=\''+url+'\'>'+title+'</a></cite>'+document.selection.createRange().text+'</blockquote>';var x = prompt('',linkTag); とした方が構文的にはより正しいと思います。

むだづかいにっき♂:引用文作成用ブックマークレット

引用元へのリンクには、文書自体の問い合わせ情報を示す address 要素を使うべきではありません。引用元の情報を示す cite 要素または cite 属性を使うべきです。

リプライ

4 件のリプライが送られています。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

2005-10-19T18:59+09:00 - えっけん

citeを使わなかった理由です。 僕はW3Cに対するこだわりが無いのですが(拘っていたらgooブログは使えません)、これまでの引用方法では、citeを使っていました。 ところが、このブックマークレットを使うと、インラインタグであるciteを使うと、そのあとに改行タグを入れなければなりません。 何回かciteタグで括るのも試したのですが、gooブログの仕様で、改行タグを入れた文章を再編集すると、その改行タグが消失してしまうのです。 割と頻繁にアップした記事の訂正を行うものですから、cite+brを使うのは得策ではないな、と考え、苦肉の策としてaddressタグを使うことに。 但し、ちょっと工夫すればciteを使っても何とかなりそうなので、もうちょっと試行錯誤してみることにします。

2005-10-19T20:35+09:00 - えっけん

Firefox導入も考えたのですが、使い慣れたあんドーナツを離れられそうにも無いので、いろいろ考えていて、ようやく分かりました。 gooブログは公式発表は無いけれど、Pタグが使えるようになっていたはずなので、citeタグをPタグで括ればいけるような気がします。 ありがとうございました。

2005-10-19T20:53+09:00 - えっけん

citeをpで括ればうまく行きましたよ!! gooブログでpタグが使えるようになったことは公式発表されていないのですが、いつかの仕様変更以来、こっそり使えるようになっていたのを忘れていました。 ブックマークレットをいじって、大丈夫な事を確認! 後日、訂正文を追記します!

2005-10-21T01:46+09:00 - 真琴

&#62; 改行タグを入れた文章を再編集すると、その改行タグが消失してしまう それは仕様というより不具合というのでは……。 で、下の方で解決しているので今更言ってもしょうがないのですが、 W3C の仕様が云々ということを考えなくても address を使うというのはどうかと思いました。 「とりあえず address は使えるから使う」というのは、極端な話「トラックバックて宣伝行為に使えちゃうんじゃね ? それなら使っちゃおう」という考えと同じじゃないのかな、と。 煽りを交えて言っちゃうと、えっけんさんらしくないなあ、と一回目のコメントの時は思ったのです。 最終的によりベターな方法を取られたので、その心配は無用に終わりましたが。 &#62; gooブログは公式発表は無いけれど、Pタグが使えるようになっていた p 要素が ( 公式発表上では ) 使える要素の中に無いってすごいですね……

補足情報

著作、講演、制作実績など