![[첫화면으로]](/raymundo_logo.jpg) "UseModWiki소스수정/전처리매크로" 페이지의 변경 내역
"UseModWiki소스수정/전처리매크로" 페이지의 변경 내역| -1,6 +1,6 | 
| == 페이지를 저장할 때 수행되는 매크로 도입 == | 
| * 현재 UseModWiki 에서 지원하는 모든 매크로나 태그들은, 사용자가 입력한 그대로 저장이 되었다가, 화면에 출력할 때 매번 wiki.pl 이 내용을 적절히 치환하여 출력한다. 따라서 매크로의 출력 결과는, 페이지를 열람하는 순간의 상태에 좌우된다. | 
| * 아래에 나오는 <mysign> 과 같이, 페이지를 "작성하는" 순간의 상태에 의존하는 출력을 얻을 수 있었으면..하여 뚝딱거려보았다. | 
| * [[/MySign매크로]]와 같이, 페이지를 "작성하는" 순간의 상태에 의존하는 출력을 얻을 수 있었으면..하여 뚝딱거려보았다. | 
| * 부작용: | 
| ** 아래에 언급되는 매크로들은 출력시 변환되는 게 아니라 입력시 변환되어 저장된다. | 
| ** 따라서, 한 번 저장하고 나면 원래의 매크로가 아닌 치환된 문자열만이 남아 있게 된다. 페이지 수정하기로 들어가 보면 알 수 있다. | 
| -8,7 +8,7 | 
| ** 변환하는 시점이 타당한지 확신이 서지를 않는다. 테스트하는 동안은 잘 동작했는데, 예기치 않은 곳에서 엉뚱하게 동작할 우려가 있다. | 
| : 다음과 같이 DoPost 함수 내에 ProcessPostMacro() 함수를 삽입한다. | 
| {{{perl | 
| {{{#!vim perl | 
| sub DoPost { | 
| ... | 
| # Remove "\r"-s (0x0d) from the string | 
| -23,7 +23,7 | 
| }}} | 
| : 그 다음, 적당한 위치에 ProcessPostMacro() 함수를 통채로 작성한다. | 
| {{{perl | 
| {{{#!vim perl | 
| sub ProcessPostMacro { | 
| my ($string) = @_; | 
| -40,7 +40,7 | 
| }}} | 
| : 또한, 미리보기 창에서도 이런 매크로가 정의되게 하기 위해서, DoPreview() 함수도 마찬가지로 수정한다. | 
| {{{perl | 
| {{{#!vim perl | 
| sub DoPreview { | 
| $ClickEdit = 0; | 
| print &GetHttpHeader(); |