名前でリンク
blexの機能の一つとして、メニューのカテゴリ、本文中のキーワードをクリックすると、そのカテゴリのページを表示、または、一覧を表示します。 また、カテゴリに存在しないキーワードの場合、その語を簡易検索します。
名前でリンク
blogkitのカテゴリcacheを、カテゴリの索引(index)として利用することで、高速リンクを実現しています。
この高速リンクには、カテゴリしか利用できないため、タイトル名でリンクは対応しません。
実際の運用では、十分な働きをしてくれます。
- カテゴリが 1 ページの場合、そのページを表示。(day mode)
- カテゴリが 2 ページ以上の場合、そのページの一覧を表示。(latest mode)
- カテゴリに存在しない場合、その語を検索。(search mode)
カテゴリに「親カテゴリ(TOPと表記)」を指定した場合の挙動
カテゴリが親カテゴリ(TOP)の場合、挙動がやや複雑になります。
- ページがない TOP(0)、1ページ TOP(1) の場合、メニューナビとサイドナビは、グループ全体(親とすべての子カテゴリ)が対象
- 2ページ TOP(2+) 以上の場合、ガイドとサイドナビには、親カテゴリのページが対象
親カテゴリのページが2ページ以上ある場合、そのカテゴリのグループ全体の最新リストを表示しません。 表示方式をいろいろ試しましたが、この結論に至りました。
親カテゴリのページは、そのカテゴリのグループ全体の道案内ページとして利用します。 複数ページ(最大でも10ページ以内)であれば、親カテゴリのページ一覧表示から、簡単に目的のページを探すことができます。
トップのページ指定
tDiaryを、パラメーターなしでアクセスしたときに、特定のページを表示することができます。(テスト中)
起動プログラムindex.rb中に、$blex_start='index'などと、トップページに指定したいカテゴリ(例 index)、または、日付 (例 20120101) を指定します。(⇒設定方法は、blexのインストールを参照)
WEBサーバーのmod_rewrite機能を使用している場合、トップページを index.html のように、WEBアドレス(URL, URI)を表記することができます。
wikiとblexの違い
wikiの場合、一般的に、タイトルのページにリンクします。
blexの場合、リンクを高速化するために、カテゴリ名にリンクする方式としています。
wikiの場合、ページのタイトル名の付け方に工夫が必要で、後日、タイトル名を変えると、リンク全体に影響が発生します。
blexの場合、タイトル名を後で変更できる簡便さがあります。カテゴリ名を変更した場合、カテゴリの初期化が必要となります。
cgiの入力値と挙動
この内容は、α5までの検討中のものです。 実際に運用してみて、実現できる範囲で、自然な振る無いになるよう更新しています。 現在の版では、多少、違います。 説明不足、用語の変更による不統一があります。参考までに見てください。
入力値によって、ページ表示(day mode)、一覧表示(latest mode)、検索(search mode)を行います。
日付を含まない場合、一覧表示(latest mode)
cgiの入力値に、日付を含まない場合、一覧表示(latest mode)します。
ただし、カテゴリが1ページだけの場合、そのページを表示(day mode)します。
または、子カテゴリで、ページがない場合、そのカテゴリを検索(search mode)します。
表の説明
- params: cgiの入力値、カテゴリ=@cgi['blogcategory'][0]、cat=子カテゴリ, TOP=親カテゴリ; TOP(0,1,2+)は、TOPカテゴリでページなし、1ページ、2ページ以上あり
- path_list: ページの階層、パンくず、擬似的なパス表示
- related_cats: 関連カテゴリ
- guide; side_menu: メニューナビとサイドナビの対象; TOP family=親カテゴリのグループ全体
params(pages) | path_list | related_cats | guide; side_menu |
- | HOME/* | diaries_cats | prev/next nums of block; @diaies |
TOP(0) | HOME/TOP/* | TOP family cats | n, TOP family cats |
TOP(1)->day, TOP | HOME/TOP | TOP family cats | TOP family |
TOP(2+) | HOME/TOP | TOP family cats | n=day, TOP |
cat(0)->search,q=cat | HOME/* | TOP childen cats + diary_cats - cat | n, search |
cat(1)->day, cat | HOME/TOP/cat | TOP family cats + diary cat - cat | n, TOP family |
cat(2+) | HOME/TOP/cat | TOP family cats | n, cat |
日付を含む場合、day mode
params; cat pages | path_list | related_cats | guide; side_menu | |
day | HOME/* | diary_cats | prev/next diary title | @diaies |
day, TOP(1) | HOME/TOP | TOP children cats + diary_cat - cat | TOP family | |
day, TOP(2+) | HOME/TOP | TOP children cats + diary_cat | day(n), TOPs | |
day, cat(1) | HOME/TOP/cat | TOP children cats + diary cat - cat | day(n), diarly_cats | |
day, cat(2+) | HOME/TOP/cat | TOP children cats + diary cat | day(n), cat |