TemplateMacro 기능
See also 다른페이지의내용을포함하여출력하기
/Template 기능을 사용할 때, 템플릿페이지의 내용에 comments 나 mysign 같은 전처리 매크로를 넣으면 템플릿페이지를 저장할 때 치환되어 버리므로 사용할 수 없다. 따라서 전처리 매크로가 치환되지 않도록 앞뒤에 다른 문자를 넣거나 해야 되는데 그러면 이번에는 새 페이지를 만들때 이런 문자들이 그대로 복사되므로 다시 지워야 한다.
또 위키의일기장화프로젝트 를 응용한 Diary 같은 곳에서 새 페이지를 만들때 페이지 이름을 매번 직접 적어줘야 하는 게 불편하다.
TemplateMacro 는 오직 템플릿페이지 안에서 사용했을 때만 동작하는 매크로이다. 이 매크로는 새로운 페이지를 만들기 위해 편집창을 열고 템플릿페이지의 텍스트가 편집창에 복사되는 시점에서 치환된다.
- 사용법:
- 템플릿페이지 안에서 매크로를 쓰면 새 페이지를 만들 때 그 매크로가 치환된다.
- 매크로 목록은 아래를 참조하라.
현재 사용가능한 매크로 목록
매크로를 추가할 경우는, 구분하기 쉽고 일관성이 있도록 매크로 이름을 template_ 으로 시작하도록 하자.
<template_null>
- 공백으로 치환된다. 즉 그냥 없어져 버린다.
- 전처리 매크로의 뒤에 슬쩍 넣어 주면 새 페이지를 만들 때 전처리 매크로만 남기 때문에 그냥 저장하면 된다.
<template_pagename>
<template_mainpagename>
- 현재 수정하는 페이지가 하위페이지일 경우 상위페이지의 이름으로 치환된다.
- 하위페이지가 아닐 경우는 그냥 페이지 이름으로 치환된다.
<template_subpagename>
- 현재 수정하는 페이지가 하위페이지일 경우 하위페이지의 이름으로 치환된다.
- 하위페이지가 아닐 경우는 공백으로 치환된다.
<template_date>
- 오늘 날짜를 "년-월-일" 형식으로 표시한다.
wiki.pl 수정
/Template에서 추가되었던 함수의 끝을 다시 고친다.
sub GetTemplatePageText {
...
my %temp_Text = split(/$FS3/, $temp_Section{'data'}, -1);
my $return_text = &TemplateMacroSubst($newpage, $temp_Text{'text'});
return $return_text;
}
함수 통채로 추가. 차후에 매크로를 추가하고 싶으면 이 함수에 추가해 준다.
sub TemplateMacroSubst {
my ($newpage, $text) = @_;
my ($newpage_main, $newpage_sub);
$text =~ s/<template_null>//gi;
if ($newpage =~ /^(.*)\/(.*)/) {
($newpage_main, $newpage_sub) = ($1, $2);
} else {
($newpage_main, $newpage_sub) = ($newpage, "");
}
$text =~ s/<template_pagename>/$newpage/gi;
$text =~ s/<template_mainpagename>/$newpage_main/gi;
$text =~ s/<template_subpagename>/$newpage_sub/gi;
$text =~ s/<template_date>/&CalcDay($Now)/gei;
return "$text";
}
추가 업데이트 내역
ext1.81 - template_date 매크로 추가
Notes
^^고맙습니다. 오늘은 바빠서 적용을 못 시켰고 내일 적용시켜 볼게요.
하루가 다르게 변해가는 프로그램을 그때마다 적용시켜야하는 이 즐거움이란.. 단지 요즘 내시간이 시간이 아닐 정도로 정신이 없다는 것이 문제겠지요.. ㅠ.ㅠ, 하지만, 늘 감사드리고 있다는 것은 아시죠??
음..적용해봤는데 전혀 매크로가 안먹요. 혹시 템프레이트페이지 말고 또 적용해야할 내용이 있던건 아닌지..
- 방금 바벨도서관에 가서 테스트해보았는데, 정말 안 되는군요. -_-; 글쎄요, 아무리 생각해 봐도 /Template 과 이 패치만 있으면 될 텐데요. 아니면 바벨쪽에는 여기에 없는 다른 패치 (시스터위키라던가) 가 있지 않은가요?
- 환경설정 내용을 다시한번 살펴보심이.. '-'a <mysign>
--
Bab2 2004-1-28 7:01 pm
- 환경설정이라 함은 어느?
config.pl 같은 것들 말입죠 :) --
Bab2 2004-1-29 12:51 pm
환경설정은 별 관계가 없을 것 같은데요. /Template 이 동작한다는 것은 $newpage와 $temp_Text{'text'} 까지 제대로 나왔다는 얘기니까요. 일단 저 두 함수만 소스를 복사해서 올려보시는게 어떨까요?
위키위키분류