スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
公開: --年--月--日, カテゴリ: スポンサー広告

link[rel="next"]とlink[rel="prev"]の解釈について

最近link要素によるナビゲーションの便利さを知ってこのblogにも少しずつだけど追加している。何を追加したかはその内纏めるとして、今日はその過程で気付いた疑問点についてメモしておく。

次のページは過去? 未来?

まず始めに link[rel="next"]link[rel="prev"] に対する私の理解について。以下にBasic HTML data types (ja) | 6.12 リンク形式からの引用を示す。

リンク形式は 大文字小文字を区別しない。

Next
続き物とされている文書群の、次の文書を指す。ユーザエージェントは、「次」の文書を先読みしておいて、ありえるダウンロード時間を節約することも可能である。
Prev
続き物の、前の文書を指す。同義語「Previous」をサポートするユーザエージェントもある。

私はこれを読んで link[rel="next"] で指定されたページとは、現在のページから見て『』という関係性を示すものという書いてある通りの解釈をしている。ではその『』とは? これについて私は時系列順で見て直近の未来の記事がそうであるという解釈で、例えばこの記事で示すと今の時点でこの記事は最新版なので『』の関係性を持った記事は存在しないということになる。これは『藍色通信』自体を続き物とされている文書群、言い換えると『藍色通信』という一冊の本のページをめくるようなイメージというか(上手く言い表せないけど)。

次、以下にFC2ブログ公式マニュアルよりこの関連のFC2テンプレート変数を引用する。

<!--nextentry--><!--/nextentry-->
表示中のエントリより、一件以後のエントリ情報を表示させるブロック
<!--preventry--><!--/preventry-->
表示中のエントリより、一件以前のエントリ情報を表示させるブロック
<!--nextpage--><!--/nextpage-->
表示中のページより、一件以後のページを表示させるブロック
<!--prevpage--><!--/prevpage-->
表示中のページより、一件以前のページを表示させるブロック

この変数を利用してテンプレートに記述したのが以下のとおり(一部省略)。

  1. <!--preventry-->
  2. <link rel="prev" href="<%preventry_url>" title="<%preventry_title>">
  3. <!--/preventry-->
  4. <!--nextentry-->
  5. <link rel="next" href="<%nextentry_url>" title="<%nextentry_title>">
  6. <!--/nextentry-->

こういう前提でテンプレートの編集をしていて気付いたのが「next(次)とprev(前)のページが逆になってないか?」ということ。例えばこの記事の一つ前の記事はCTF News! #27 真女神転生3 Devil's Awaking 5.50 by FUGAで、その記事にとってnextがこの記事になると思ってたのに、実際にはブログ改装メモ(4) コメント表示を掲示板風に変更してみたnextで示されている。他のページも同様に時系列で過去方向に流れている

このナビゲーション方向は自分の考えていたものと反対なんだけど、これって私が勘違いしているだけなのかな? でも普通続き物とされている文書群を書くときっての記事を書くのって未来になるはずなんだけど。いや、「最終回から書いているんだよ」とか主張されても反応に困るわけなんだけれど。

それはさておき、結局この流れ方向は納得いかないし何より気に入らないのでrel属性値を入れ替えている。と言うわけで現在『藍色通信』では、link[rel="next"] は時系列で未来方向に流れていきます。

余談

本ではなくルーズリーフなイメージで

考え方を変えてみるといいのかもしれない。先程私は本のページをめくるようなイメージと書いたけれど、そうではなくそれぞれがバラバラのルーズリーフみたいなものだったとしたらどうか? ルーズリーフ1枚が一つの記事として、記事を書くたびに上へと重ねていく。そうすると常に最新の記事が一番上に来る。この時最新記事は link[rel="start"] とみなす事ができるのではないか? するとその積重ねられたページをめくるたびに(これがlink[rel="next"])過去へ遡っていく。多くのblogはトップページにアクセスすると最新記事が一番上に表示され下へ行くほど時系列を遡っていく。そして大抵1ページに収まらないので次のページへ次のページへとめくって更に遡る。それなら link[rel="next"] は過去へ、 link[rel="prev"] は未来へと見ることができるような気がしてくる。

でもやっぱり続き物とされている文書群の、次の文書ということなら納得いかないんだけど。

同業他社(?)をチェックしてみた。

何となく気になったので他のFC2blogはどうなっているのか調べてみた。調べたのはPSP™関連のblogを20件。それぞれ適当な記事ページにアクセスして link[rel="next"]link[rel="prev"] が時系列順でどちら方向に流れているかを見てみた。結果は8箇所のblogが link[rel="next"] が過去の記事と関連付けられていた。多分テンプレートが元々そういう風に作られていたんだろうけど。

ちなみにFC2総合インフォメーションlink[rel="next"] は未来の記事に関連付けられていた。(もうこれがFC2の公式見解ってことでいいんじゃないの?)

追記: 2010-12-11

ふと思い付いたことがある。記事の管理設定で表示順を『新しい順』か『古い順』かに設定することができる機能があることを忘れていた。それで、この設定を変更すれば prev, next でのナビゲーションの流れ方向も逆転するのでは? と。

試してみたら考えていた通りの結果が得られた。『古い順』に表示するように変更したらnext=次, prev=前という流れになった。これは多分記事の始点を新しい記事にするか古い記事にするかの違いなんだろうと思う。私のイメージで言い換えると、書類のファイリングの方法を変えるようなものなんじゃないのかなあ。次にめくっていくと新しくなるのか古くなるのかの違い。上手く伝わらないかも知れないけど、私は納得できたのでよしってことで。

更新: 2010-12-11

公開: 2010年12月09日, カテゴリ: Web

現在の書き込みは、-件です。

現在の書き込みは、2件です。

550 :ヒロ:2010/12/10(金) 22:26:51 ID:-
初めまして。
元々の規格はblog、日記専用ではないので「続き物を読む順」でprev→nextだと思います。小説などは当然1章→2章→3章...ですよね。
で、話の順と考えればblogも古い記事→新しい記事だと思います。

ただ、内容に連続性が無い記事、古くなるほど価値が下がる文書であれば、そもそも「続き物」なのか疑問も感じます。
551 :藍色:2010/12/11(土) 03:23:33 ID:aV/dabIU
@ヒロ さん
いらっしゃいませ。
多分これは本文中に書いたように普通トップページにアクセスすると常に最新記事と対面して、過去の記事は『次』のページに表示されるというblog特有のものなんでしょうね。今このコメント書いてる途中で思いついたんですけど、記事の表示順を『古い記事』から表示するように変更したらどうなるか試してみたんですよ。そうしたら案の定、prev=前、next="次"という古い記事→新しい記事という順になりました。後で記事に追記しておこうかな。

『内容』の連続性だったら記事単位でみるともう全然駄目だと思います。このblogだと内容と時間は全く繋がっていませんから。でもblogの仕組みではその辺の仕分けはできそうにないので、自分には『藍色通信』という続き物の文書だってことで言い聞かせてますけど。