[첫화면으로]UseModWiki소스수정/전처리매크로

마지막으로 [b]

1 번째 수정본
(1 번째 수정본부터 1 번째 수정본까지의 변경사항) (소소한 수정)
(두 수정본의 내용이 동일하거나, 수정본을 비교할 수 없음.)

페이지를 저장할 때 수행되는 매크로 도입

다음과 같이 DoPost 함수 내에 ProcessPostMacro() 함수를 삽입한다.
sub DoPost {
    ...
    # Remove "\r"-s (0x0d) from the string
    $string =~ s/\r//g;

### 다음 라인 추가
    $string = &ProcessPostMacro($string);
###
    # Lock before getting old page to prevent races
    &RequestLock() or die(T('Could not get editing lock'));
    ...

그 다음, 적당한 위치에 ProcessPostMacro() 함수를 통채로 작성한다.
sub ProcessPostMacro {
    my ($string) = @_;

    ### 여기에 사용할 매크로들을 나열한다
    $string = &PostMacroMySign($string);

    return $string;
}

이제 "작성시 변환되는 매크로"를 도입하고 싶다면, 적절한 변환 함수를 작성하고, 그 함수를 위의 ProcessPostMacro 안에서 다음과 같이 호출해준다.
    $string = &내가추가한함수($string);

또한, 미리보기 창에서도 이런 매크로가 정의되게 하기 위해서, DoPreview() 함수도 마찬가지로 수정한다.
sub DoPreview {
    $ClickEdit = 0;
    print &GetHttpHeader();
    print &GetHtmlHeader("$SiteName: " . T('Preview'), "Preview");
### 다음 라인을 아래 두 줄로 교체
#   print &WikiToHTML(&GetParam("text", undef));
    my ($textPreview) = &GetParam("text", undef);
    print &WikiToHTML(&ProcessPostMacro($textPreview));
###
}


위키위키분류

이 수정본 편집일: 2003-2-7 7:56 pm (변경사항 [d])
1327 hits | Permalink | 변경내역 보기 [h] | 현재 수정본 보기 | 1 번째 수정본 소스 보기