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-12-22 와 같다. 이게 항상 이탤릭체로 출력되도록 고치고 싶다면,
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-12-22와 같이 바뀔 것이다.
4. 쓰고 싶지 않은 매크로를 지우려면
<date> 매크로를 쓰고 싶지 않다고 한다면...
macros/date.pl 파일을 삭제해도 되지만, 이 경우 UseModWiki ext 버전이 업그레이드되어 새로 받아와서 압축을 풀면 또 macros/date.pl 파일이 생성될 것이다.
따라서 아래와 같이, 더미 매크로를 만들어 mymacros/date.pl 로 저장을 해 주면 된다.
$MacroFunc{"date"} = \&date;
sub date {
my ($txt) = @_;
return $txt;
}
1:
5. 주의 사항
관련 링크:
위키위키분류