<mysign(name,time)> 매크로 도입
- 게시판 등에서 <mysign(name,time)> 의 형태로 적으면, 우측으로 정렬되는 서명을 출력한다.
- name 과 time 자리에 들어갈 수 있는 값에 대해 조건이 복잡하다. 잘못된 값을 넣어 예상하지 못한 출력이 나오는 것을 막아보고자 함이니, 이 매크로를 직접 사용하지 말고 <mysign> 를 사용하는 것을 권장한다.
- 이런, mysign(name,time) 을 임의로 작성하는 것을 최대한 막으려고 엄격하게 검사를 시켰더니만, $UseAmPm 변수가 0일 경우 (am, pm 을 쓰지 않고 24시간제로 표시) 제대로 치환이 되지 않는 문제가 있었다. 정규표현식을 수정하여 해결.
-
sub MacroSubst {
...
$txt =~ s/\&__LT__;goto\((.*)\)\&__GT__;/&MacroGoto($1)/gei;
$txt =~ s/\&__LT__;history\((.*)\)\&__GT__;/&MacroHistory($1)/gei;
$txt =~ s/\&__LT__;mysign\(([^,]+),(\d+-\d+-\d+ \d+:\d+.*)\)\&__GT__;/&MacroMySign($1, $2)/gei;
return $txt;
}
- 적당한 위치에 MacroMySign 함수 전체를 삽입한다
sub MacroMySign {
my ($author, $timestamp) = @_;
return "\n<div align=\"right\">-- $author <small>$timestamp</small></div>\n";
}
위키위키분류