*includeしたページの<h1~h3>横の↑リンクの飛び先が存在しない

-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 普通
-状態: 提案
-カテゴリー: 本体バグ
-投稿日: 2003-02-28 (金) 00:52:46
-バージョン: 1.3.3及び1.4pre5

**メッセージ
includeしたページ内にある<h1>~<h3>の横の↑の飛び先がcontentsになっているため、飛び先が存在しないことになる。

対策としては、↑の飛び先をページ上部のメニューにすればよい。
上部のメニュー部分は<div id="navigator">になっているので、↑の飛び先を<a href="#navigator">にしておけば、includeされたページでも問題なくページ先頭に飛ぶことができる。

&uarr;ですが、現在はdefault.ini.phpの$topで設定しているが、ば↑や▲も使えるようにja.lng、en.lngで設定するほうがいい。

リンクの位置が<h1>~<h3>の横にあるが、<h1>~<h3>の直前行に<div class="jumpmenu">で囲んで出力したほうがわかりやすい。このとき、先頭の<h*>の直前にだけは出力しないほうが美しい。

1.3ではhtml.phpのheadingの部分を次のように書き換えればいい。
  } else if ($line_head == '*') { // Heading
    if (preg_match("/^(\*{1,3})\s*(.*)/",$line,$out)) {
      end_block($result,$saved,$flag); //見出しはいかなるブロック要素にも食われない
      $str = inline($out[2]);
      $level = strlen($out[1]);
      $h = $level + 1;
      if($content_count == 0 && $content_id == 1){
        array_push($result, "<h$h><a id=\"content_{$content_id_local}_$content_count\"></a>$str</h$h>");
      } else {
        array_push($result, "<div class=\"jumpmenu\"><a href=\"#menu\">▲</a></div>\n<h$h><a id=\"content_{$content_id_local}_$content_count\"></a>$str</h$h>");
      }
      if($content_count == 0)
        $tmp_lvl = $level;
      $arycontents[] = str_repeat("-",$level-$tmp_lvl+1)."<a href=\"#content_{$content_id_local}_$content_count\">".strip_htmltag(make_user_rules(inline($out[2],TRUE)))."</a>\n";
      $content_count++;
      continue;
    }
上記では、<h1>がなく<h2>や<h3>だけ存在するページのcontentsの出力の字下げが深くなりすぎる対策もしてあります。

1.4ではconvert_html.phpのclass headingを変更すればいいんだろうけど、よくわからなかった(^^;;
----

#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.063 sec.

OSDN