- 追加された行はこの色です。
- 削除された行はこの色です。
[[参拾萬.jp>FrontPage]] > [[PukiWikiのカスタマイズ]] > &color(#ff0000,#ffffcc){リンク先URLを別窓で開く};
*リンク先URLを別窓で開く [#wa4e9c0c]
参拾萬.xyz でのみ実施。(参拾萬.ch と 参拾萬.com ではやっていません。)
→ /lib/make_link.php を編集
- 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
- 上記URLが読めなくなったときのためのコピペ → [[参拾萬.xyz/PukiWikiの備忘録>http://300000.xyz/pukiwiki/?cmd=edit&page=PukiWiki%A4%CE%C8%F7%CB%BA%CF%BF]] &color(#ff0000){(要password)};
-こちらを参照
→ [[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.jp/image/external_link.png]]が付くようにした。
**編集ファイル [#q685bcf6]
+まず,''[PukiWiki]/image/''フォルダ に''external_link.png'' 画像ファイル([[←コレ>http://300000.jp/image/external_link.png]])を入れておく。
+''[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>';
}
-書き換え後(~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>+http://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と認識
}
}
**リンク方法 [#h9f046a7]
-アイコン付きの,別窓で開くリンク(通常の外部リンク)の書き方の例
http://300000.jp/
-- このように書いた場合のリンク → http://300000.jp/
-アイコンを付けず,同窓で開くリンクの書き方の例
+http://300000.jp/
-- このように書いた場合のリンク → +http://300000.jp/
-アイコンを付けずに同窓で開くが、+を表示させないリンクの書き方の例
[[http://300000.jp/>+http://300000.jp/]]
-- このように書いた場合のリンク → [[http://300000.jp/>+http://300000.jp/]]