トップに戻る  / 編集 / 新規 複製 名前変更 / 差分 バックアップ / 一覧 最終更新 単語検索

[ パソコン用表示 | スマホ用表示 ]

参拾萬.jp > PukiWikiのカスタマイズ > リンク先URLを別窓で開く

リンク先URLを別窓で開く

俺の更なる改良

  • 俺は,URLの先頭に"+"を付けると同窓,付けないと別窓と設定した。(上のリンク先とは逆の設定!)
  • URLの先頭に"+"を付けずにリンクした箇所には, ←このアイコンが付くようにした。

編集ファイル

  1. まず,[PukiWiki]/image/フォルダ にexternal_link.png 画像ファイル( ←コレ)を入れておく。
  2. [PukiWiki]/lib/make_link.phpファイルを,以下のように編集する。

[class Link_url extends Link()] - [function get_pattern()]

  • 書き換え前
    function get_pattern()
    {
       $s1 = $this->start + 1;
       return <<<EOD
    (\[\[             # (1) open bracket
     ((?:(?!\]\]).)+) # (2) alias
     (?:>|:)
    )?
    (                 # (3) url
     (?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
    )
     (?($s1)\]\])      # close bracket
     EOD;
        }
  • 書き換え後
    function get_pattern()
    {
        $s1 = $this->start + 1;
        return <<<EOD
    (\[\[             # (1) open bracket
     ((?:(?!\]\]).)+) # (2) alias
     (?:>|:)
    )?
    (                 # (3) url
     (?:(?:\+?https?|\+?ftp|\+?news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
    )
    (?($s1)\]\])      # close bracket
    EOD;
        }

[class Link_url extends Link()] - [function toString()]

  • 書き換え前
    function toString()
    {
        if (FALSE) {
            $rel = '';
        } else {
            $rel = ' rel="nofollow"';
        }
        return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>';
    }
  • 書き換え後(~2017.02.10.)
    function toString()
    {
        if (FALSE) {
            $rel = '';
        } else {
            $rel = ' rel="nofollow"';
        }
        if (ereg("^(\+)(.*)", $this->name, $regs)) {
            return '<a href="' . $regs[2] . '" ' . $rel . '>' . $this->alias . '</a>'; # +が付いていてもURLと認識するおまじない
        }else{
            return '<a href="' . $this->name . '" target="_blank" ' . $rel . '>' . $this->alias . '<img src="./image/external_link.png"></a>'; # そうでなければ勝手にURLと認識
        }
    }
  • 書き換え後(2017.02.11.~)※300000.netのみ
    cssで "gaibu" クラスを設定し,外部リンクの色などを変更。
    (2017.02.11.現在は 300000.net のみ。)
    function toString()
    {
        if (FALSE) {
            $rel = '';
        } else {
            $rel = ' rel="nofollow"';
        }
        if (ereg("^(\+)(.*)", $this->name, $regs)) {
            return '<a href="' . $regs[2] . '" ' . $rel . '>' . $this->alias . '</a>'; # +が付いていてもURLと認識するおまじない
        }else{
            return '<a href="' . $this->name . '"class="gaibu" target="_blank" ' . $rel . '>' . $this->alias . '<img src="./image/external_link.png"></a>'; # そうでなければ勝手にURLと認識 
        }
    }

リンク方法

  • アイコン付きの,別窓で開くリンク(通常の外部リンク)の書き方の例
    http://300000.jp/
  • アイコンを付けず,同窓で開くリンクの書き方の例
    +http://300000.jp/
  • アイコンを付けずに同窓で開くが、+を表示させないリンクの書き方の例
    [[http://300000.jp/>+http://300000.jp/]]
最終更新日: 2019-06-04 (火) 21:44:23 (42d)