[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:552

From: Minero Aoki <aamine@l...>
Date: Mon, 5 Nov 2007 00:02:19 +0900
Subject: [ruby-reference-manual:552] Re: ページ内リンクについて

青木です。

On 2007/10/13, at 14:27, eklerni wrote:

> いまsprintfフォーマットの項の編集をしています。

> このページでは旧マニュアルにあった((<sprintfフォーマッ 
> ト/精度>))のような
> 形式でのページ内のヘッダへのリンクが多用されています。
> このリンクを取り除いてしまうと見通しの悪いページになってしまう 
> ので、
> ページ内リンクの機能が欲しいのですが、どうでしょうか。

確かに、ページ内リンクは懸案なのでどうにかしたいところです。

> 決めることとしては
> * ハイパーリンク[[...]]の書式
> * ヘッダにジャンプ先の機能を持たせるか?あるいはなんらかの形で 
> 宣言するか
> * ヘッダのレベルは複数あるが、どのような対応づけにするか
> * ヘッダの2バイト文字はどうするか

いま考えていることとして、以下のような点があります。

   * 2 バイト文字列で参照するのはやめたい。
     文字コードによって違ってしまうし、URL が妙に長くなる 
し、読めない。
   * 既存の [[m:String#split]] の形式を生かしたい。

で考えたのは以下のような仕様です。

* ジャンプ先は明示的に宣言する。
   文法は ==[a:LINK_ID]  (「=」と「[」の間に空 
白を入れない)
   基本的にレベル 2 以上はすべて前もって宣言してしまう。

* 参照側の文法は以下の 2 通り
         * カレントページ内      [[ref:LINK_ID]]
         * カレントページ以外   [[ref:m:String#%#LINK_ID]]
            ↑ String#% のページの LINK_ID にリンク
* 一般のドキュメントは [[d:spec/syntax]] のようにプリフィ 
クス d: を使う
* そのページ内リンクは [[ref:d:spec/syntax#LINK_ID]]

他の仕様は以下の通り。

* レベルによっては仕様に差を付けない。
* ID 宣言形式なのでマルチバイト文字は扱わない。LINK_ID は  
[a-zA-Z0-9_]+ のみ。
* [[ref:...]] は、その参照先のキャプションに自動展開される。
* forward reference あり。つまり、参照元が参照先よりも前にあって 
もよい。
   そのため、LINK_ID はページ内でユニークでなければいけな 
い。

例:

   (宣言)
   ==[a:token] トークン

   (同じページから)
   [[ref:token]] で述べたように……

   (別のページから)
   [[ref:d:spec/syntax#token]] で述べたように……

ちょっとゴチャゴチャしすぎかなあ。まあ、わたしとしては参照は極力
減らすべきだと思うので、あまり簡潔にしようとは思っていません。

-- 
青木峰郎

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

       498 2007-10-13 07:27 [eklerni@f...        ] ページ内リンクについて                  
->     552 2007-11-04 16:02 ┗[aamine@l...         ]