読者です 読者をやめる 読者になる 読者になる

リンク記法拡張

プログラミング Wiki

久々にソースコードを見たら何が書いてあるのか全くわからなかった, なんてことは
随分前に卒業したつもりだけど, その昔書いたSTGのコードが未だに誰も読むことができない
状態なのはとりあえず置いといて下さい。


リンク記法はとっくに実装していたんだけど, [リンク先title|URL]と入力するとき,
Shiftキーを押すのが面倒だったのでlink:リンク先title;url:URLとできるようにしてみた。
でも, よく考えてみると字数が増えて余計めんどくさい気もする。
だが, よくよく考えてみると|を入力するには, 左の小指でShiftキーを押しつつ,
右の小指で|を入力するか, 右手の小指でShiftキーを押しつつ,
手首を右に捻って|を入力しなければならない。
手先の不器用な自分にとって前者は1文字入力するだけの割に
やたら時間がかかっている気がする。正確な時間は計ってないけど,
多分, link:リンク先title;url:URLと書いた方が速い気がする。
後者は実際にやってみたら手首が痛くなったのでもうやりたくない。
しかし, よくよくよく考えてみると, link:リンク先title;url:URLと入力するとなると,
:と;は右の小指で押すことになり,
これでは打ち間違いが増えることが明白なので(少なくとも自分の場合はそうだ)
やっぱり[リンク先title|URL]とやった方がいい気もする。

などと考えながらキーボードを叩いていたら拡張が完了した。

private function createLink(){

    $reg = "(https?|ftp):\/\/[-_.!~*\'a-zA-Z0-9;\/?:\@&=+\$,%#]+";
        
    //例: http://www.kitcc.org
    $this->text = preg_replace("/([^\|:])($reg)/", 
				"\\1<a href=\"\\2\">\\2</a>", $this->text);


    //例: link:KITCC;url:http://www.kitcc.org
    $this->text = preg_replace("/link:([^;]+);url:($reg)/", 
			        "<a href=\"\\2\">\\1</a>", $this->text);
        
    //例: [KITCC|http://www.kitcc.org]		
    $this->text = preg_replace("/\[([^\[]+?)\|($reg)\]/", 
				"<a href=\"\\2\">\\1</a>", $this->text);
    	
}

追記:

[リンク先title:URL]ってやった方がいいような気がしてきた。