img 매크로
UseModWiki소스수정/이미지매크로 를 그대로 적용
- 사용법: <img(이미지경로,너비,폭[,캡션][,정렬방식])>
- 부작용:
- 전혀 다른 테스트나 점검 없이 가져왔습니다. 조프님을 믿을 뿐~ :-)
- 띄어쓰기를 하면 안 되기 때문에, 결과적으로 "이미지경로,너비,폭..." 등이 통채로 하나의 링크로 취급된다. 즉, Upload:그림.jpg 를 인자로 주었다 하더라도 Upload:그림.jpg,300,0 이란 링크로 저장이 된다는 얘기. 따라서 /UploadedFiles매크로에서 돋보기를 클릭해도 역링크로 검색이 되지 않는다는 매우 기분 나쁜 단점이 있다.
wiki.pl 수정
sub CommonMarkup {
...
if ($useImage) {
$_ = &EmoticonSubst($_);
}
s/\&__LT__;img\(([^,\n\s]*?)\)\&__GT__;/&MacroImgTag($1,0,0,'','')/gei;
s/\&__LT__;img\(([^,\n\s]*?),(\d+?),(\d+?)\)\&__GT__;/&MacroImgTag($1,$2,$3,'','')/gei;
s/\&__LT__;img\(([^,\n\s]*?),(\d+?),(\d+?),([^,\n]*?)\)\&__GT__;/&MacroImgTag($1,$2,$3,$4,'')/gei;
s/\&__LT__;img\(([^,\n\s]*?),(\d+?),(\d+?),([^,\n]*?),([^,\n\s]*?)\)\&__GT__;/&MacroImgTag($1,$2,$3,$4,$5)/gei;
s/\[$UrlPattern\]/&StoreBracketUrl($1, "")/geo;
...
}
함수 통채로 추가
sub MacroImgTag {
my ($url,$width,$height,$caption,$float) = @_;
my ($s_width,$s_height,$s_tag,$s_divstyle,$s_caption,$return);
$s_width = " width=\"$width\"" if ( $width>0 );
$s_height = " height=\"$height\"" if ( $height>0 );
$s_tag = " title=\"$url\"";
$s_divstyle = " style=\"float:$float;\"" if ($float ne '');
$s_caption = "<br><span class=\"imgcaption\">$caption</span>" if ($caption ne '');
if ($url =~ /$InterLinkPattern/)
{
my $id = $url;
my ($name, $site, $remotePage, $punct, $image);
($id, $punct) = &SplitUrlPunct($id);
$name = $id;
($site, $remotePage) = split(/:/, $id, 2);
$url = &GetSiteUrl($site);
if ($url ne "")
{
$remotePage =~ s/&/&/g;
if ($url =~ /\|/) {
($url, $image) = split(/\|/, $url, 2);
}
$url .= $remotePage;
}
}
if ($width > 0 or $height > 0)
{
$return = "<a href=\"$url\"><img src=\"$url\" $s_width $s_height $s_tag border=\"1\" style=\"margin:5px;\"></a>";
}
else
{
$return = "<img src=\"$url\" $s_tag border=\"1\" style=\"margin:5px;\">";
}
if (($caption ne '') or ($float ne ''))
{
$return = "<div align=\"center\" $s_divstyle>$return$s_caption</div>";
}
return &StoreRaw($return);
}
추가 업데이트 내역
사용자 의견
/UploadedFiles매크로에서 돋보기를 클릭했을때 '역링크 검색'이 아니라 '텍스트 검색'을 하도록 하면 위 부작용에 적은 문제점을 해결할 수는 있습니다. (조프님 홈의 경우 텍스트 검색을 하도록 했더군요) 그렇지만 역링크 검색이 훨씬 빠를 텐데 (애초에 역링크 검색을 하게 했던 이유도 그거고) 이 문제 때문에 바꾸기도 그렇고... 그렇다고 지금처럼 놔두자니 UploadedFiles 페이지에서 찾는게 너무 힘들어지고... 묘안이 떠오르지 않는군요.
한가지 방법은, img 매크로를 쓸때 그림 경로 바로 뒤에 반드시 스페이스를 넣도록 하는 겁니다. 그럼 매크로를 쓰는 게 너무 불편해질까요? 불편은 둘째치고 다른 매크로와 비교해서 일관성이 없는게 좀 그렇군요.
- 변명을 하자면 그게 애당초 제가 만든게 아니기 때문에~~~
어쩌면 좋을까요?
^^; 아니 뭐... 남 탓하자는 것은 아니니까요... ^^;;;;
지금까지 생각한 안들을 정리하면,
1. 그냥 이대로 산다 -> 뭐 못 살 것도 없지만...
2. 돋보기를 reverse 가 아닌 search 로 -> 사실 조프님 홈이나 제 홈에서는 별 속도 차이 안 날 겁니다. 어제 제 홈에서 잠깐 해 봤는데 영 점 몇 초 차이? 하지만 고려바위 같이 3000여 페이지가 있는 곳에 가면... -.-;;
3. 인자를 넣을 때, 그림 경로명 직후에 인터링크패턴에 포함되지 않는 뭔가를 넣도록 강제 -> 뭘 사용해야지 일관성이나 직관성을 떨어뜨리지 않을지 고민 중
위키위키분류