UseModWiki매크로 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki매크로 는 읽기 전용 페이지입니다.
== # 남이 만든 매크로를 받아 오려면 == 해당 매크로 파일 (''매크로이름''.pl) 을 받아와서 위키가 설치된 디렉토리 아래 mymacros 디렉토리(없다면 만들어주고 퍼미션은 755로 줌)에 넣으면 된다. == # 새로운 매크로를 만들려면 == 매크로 파일의 형식은 다음과 같다. 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소스수정/사용자추가매크로]]에 올려서 다른 분들도 공유할 수 있도록 합시다 ^_^ == # 기존의 매크로를 덮어 쓰려면 == <date> 매크로의 기본 출력은
와 같다. 이게 항상 이탤릭체로 출력되도록 고치고 싶다면, mymacros/date.pl 파일, 즉 macros 디렉토리에 있는 date.pl 파일과 동일한 이름의 파일을 만들어서 원하는 데로 고쳐준다. {{{#!vim perl $MacroFunc{"date"} = \&date; sub date { my ($txt) = @_; $txt =~ s/\&__LT__;Date\&__GT__;/&MacroDate()/gei; # 경우에 따라 여기를 바꿀 수도 있지만, 웬만하면 인터페이스는 # 바꾸지 않는게 좋지 싶다. return $txt; } sub MacroDate() { return "
".&CalcDay(time)."
"; } # 여기가 바뀌었다. 1; }}} 그러면 <date> 의 출력이 ''
''와 같이 바뀔 것이다. == # 쓰고 싶지 않은 매크로를 지우려면 == <date> 매크로를 쓰고 싶지 않다고 한다면... macros/date.pl 파일을 삭제해도 되지만, 이 경우 UseModWiki ext 버전이 업그레이드되어 새로 받아와서 압축을 풀면 또 macros/date.pl 파일이 생성될 것이다. 따라서 아래와 같이, 더미 매크로를 만들어 mymacros/date.pl 로 저장을 해 주면 된다. {{{#!vim perl # mymacros/date.pl 파일 $MacroFunc{"date"} = \&date; # 여긴 그대로 놔두고 sub date { # 이것도 놔두고 my ($txt) = @_; # 이렇게 두 줄만 남긴다. 즉 아무 일도 하지 않는 함수이다. return $txt; } # 이하 치환할 내용을 구현한 함수들은 쓰이지 않으니 삭제 1: }}} == # 주의 사항 == ---- 관련 링크: * [[UseModWiki소스수정/사용자추가매크로]] - mymacros 에 넣고 쓸만한 매크로들 * [[UseModWiki소스수정/매크로모듈화]]
----
---- [[위키위키분류]]
UseModWiki매크로
페이지로 돌아가기 |
다른 수정본 보기