リンク先URLを別窓で開く †
俺の更なる改良 †
- 俺は,『URLの先頭に"+"を付けると同窓,付けないと別窓』と設定した。(上のリンク先とは逆の設定!)
- URLの先頭に"+"を付けずにリンクした箇所には, ←このアイコンが付くようにした。
編集ファイル †
- まず,[PukiWiki]/image/フォルダ にexternal_link.png 画像ファイル( ←コレ)を入れておく。
- [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/
|