[첫화면으로]UseModWiki매크로

마지막으로 [b]

1. 남이 만든 매크로를 받아 오려면

해당 매크로 파일 (매크로이름.pl) 을 받아와서 위키가 설치된 디렉토리 아래 mymacros 디렉토리(없다면 만들어주고 퍼미션은 755로 줌)에 넣으면 된다.

2. 새로운 매크로를 만들려면

매크로 파일의 형식은 다음과 같다. macros/date.pl 파일을 예로 들면

sub date {                                               <-- 파일명 date.pl의 date와 이 함수이름 date가 동일해야 한다.
    my ($txt) = @_;                                      <-- 이 줄과 아래의 return $txt; 는 건드리지 않는다.

    $txt =~ s/\&__LT__;date\&__GT__;/&MacroDate()/gei;   <-- 출력되는 html 을 치환하는 부분이다. 매크로의 인터페이스.

    return $txt;
}

sub MacroDate() { return &CalcDay(time); }               <-- MacroDate 의 경우 사실 다른 이름이어도 상관은 없지만, 다른 매크로 파일이나 
                                                             wiki.pl 에 들어 있는 함수와 겹치는 것을 방지하기 위해서 항상
                                                             "Macro<매크로이름>"의 형태로 작성하는 것을 권장한다. 
                                                             이 함수에서는 실제로 어떻게 치환할지를 구현한다. 이 함수에서 사용하기 위해
                                                             별도의 함수를 추가로 만들 수도 있고, wiki.pl 내에 있는 변수나 함수도 쓸 수
                                                             있다.

1;                                                       <-- require 로 매크로 파일을 읽어오기 때문에 마지막에 1을 반환해 주는 코드를
                                                             넣어 주는 게 좋다. 없으면 문제가 생기는 경우가 있다.

위와 같은 식으로 새로운 매크로 파일 (*.pl) 을 작성해서 mymacros 디렉토리 아래에 두면 된다.

만든 매크로는 UseModWiki소스수정/사용자추가매크로에 올려서 다른 분들도 공유할 수 있도록 합시다 ^_^

3. 기존의 매크로를 덮어 쓰려면

<date> 매크로의 기본 출력은 2024-7-5 와 같다. 이게 항상 이탤릭체로 출력되도록 고치고 싶다면,

mymacros/date.pl 파일, 즉 macros 디렉토리에 있는 date.pl 파일과 동일한 이름의 파일을 만들어서 원하는 데로 고쳐준다.

$MacroFunc{"date"} = \&date;

sub date {
    my ($txt) = @_;

    $txt =~ s/\&__LT__;Date\&__GT__;/&MacroDate()/gei;      # 경우에 따라 여기를 바꿀 수도 있지만, 웬만하면 인터페이스는
                                                            # 바꾸지 않는게 좋지 싶다.
    return $txt;
}

sub MacroDate() { return "<i>".&CalcDay(time)."</i>"; }     # 여기가 바뀌었다.

1;

그러면 <date> 의 출력이 2024-7-5와 같이 바뀔 것이다.

4. 쓰고 싶지 않은 매크로를 지우려면

<date> 매크로를 쓰고 싶지 않다고 한다면...

macros/date.pl 파일을 삭제해도 되지만, 이 경우 UseModWiki ext 버전이 업그레이드되어 새로 받아와서 압축을 풀면 또 macros/date.pl 파일이 생성될 것이다.

따라서 아래와 같이, 더미 매크로를 만들어 mymacros/date.pl 로 저장을 해 주면 된다.

# mymacros/date.pl 파일
$MacroFunc{"date"} = \&date; # 여긴 그대로 놔두고

sub date { # 이것도 놔두고
    my ($txt) = @_;  # 이렇게 두 줄만 남긴다. 즉 아무 일도 하지 않는 함수이다.
    return $txt;
}
# 이하 치환할 내용을 구현한 함수들은 쓰이지 않으니 삭제

1:

5. 주의 사항


관련 링크:

이름:  
Homepage:
내용:  


위키위키분류

마지막 편집일: 2012-2-11 12:25 am (변경사항 [d])
1115 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기