- 追加された行はこの色です。
- 削除された行はこの色です。
[[参拾萬.jp>FrontPage]] > [[PukiWikiのカスタマイズ]] > &color(#ff0000,#ffff99){''リンク先URLを別窓で開く''};
*リンク先URLを別窓で開く [#wa4e9c0c]
-こちらを参照
→ [[nowsky/PukiWiki/改良/別窓リンク>http://www.ns-lab.org/wiki/?PukiWiki%2F%E6%94%B9%E8%89%AF%2F%E5%88%A5%E7%AA%93%E3%83%AA%E3%83%B3%E3%82%AF]]
*俺の更なる改良 [#b12876e7]
- 俺は,&color(#ff0000){『''URLの先頭に"+"を付けると同窓,付けないと別窓''』};と設定した。(上のリンク先とは逆の設定!)
- URLの先頭に"+"を付けずにリンクした箇所には,[[このアイコン→>http://300000.xyz/pukiwiki/image/external_link.gif]]が付くようにした。
**編集ファイル [#q685bcf6]
+まず,''[PukiWiki]/image/''フォルダ に''external_link.gif'' 画像ファイル([[コレ→>http://300000.xyz/pukiwiki/image/external_link.gif]])を入れておく。
+''[PukiWiki]/lib/make_link.php''ファイルを,以下のように編集する。
*** [class Link_url extends Link()] - [function get_pattern()] [#f5cc51cb]
-書き換え前
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()] [#u5eeefa8]
-書き換え前
function toString()
{
if (FALSE) {
$rel = '';
} else {
$rel = ' rel="nofollow"';
}
return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>';
}
-書き換え後
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.gif"></a>'; # そうでなければ勝手にURLと認識
}
}
**リンク方法 [#h9f046a7]
-アイコン付きの,別窓で開くリンク(通常の外部リンク)の例 → http://300000.jp/
-アイコンを付けず,同窓で開くリンク方法の例 → +http://300000.jp/
Tips:
「アイコンを付けず,同窓で開く」が「+を表示させない」 → [[http://300000.jp/>+http://300000.jp/]]