/Template 기능을 사용할 때, 템플릿페이지의 내용에 comments 나 mysign 같은 전처리 매크로를 넣으면 템플릿페이지를 저장할 때 치환되어 버리므로 사용할 수 없다. 따라서 전처리 매크로가 치환되지 않도록 앞뒤에 다른 문자를 넣거나 해야 되는데 그러면 이번에는 새 페이지를 만들때 이런 문자들이 그대로 복사되므로 다시 지워야 한다.
또 위키의일기장화프로젝트 를 응용한 Diary 같은 곳에서 새 페이지를 만들때 페이지 이름을 매번 직접 적어줘야 하는 게 불편하다.
TemplateMacro 는 오직 템플릿페이지 안에서 사용했을 때만 동작하는 매크로이다. 이 매크로는 새로운 페이지를 만들기 위해 편집창을 열고 템플릿페이지의 텍스트가 편집창에 복사되는 시점에서 치환된다.
<template_null>
sub GetTemplatePageText { ... my %temp_Text = split(/$FS3/, $temp_Section{'data'}, -1); ### template macro my $return_text = &TemplateMacroSubst($newpage, $temp_Text{'text'}); return $return_text; }
함수 통채로 추가. 차후에 매크로를 추가하고 싶으면 이 함수에 추가해 준다.
### template macro sub TemplateMacroSubst { my ($newpage, $text) = @_; my ($newpage_main, $newpage_sub); ### null $text =~ s/<template_null>//gi; ### pagename, mainpagename, subpagename 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"; }
^^고맙습니다. 오늘은 바빠서 적용을 못 시켰고 내일 적용시켜 볼게요.
하루가 다르게 변해가는 프로그램을 그때마다 적용시켜야하는 이 즐거움이란.. 단지 요즘 내시간이 시간이 아닐 정도로 정신이 없다는 것이 문제겠지요.. ㅠ.ㅠ, 하지만, 늘 감사드리고 있다는 것은 아시죠??
음..적용해봤는데 전혀 매크로가 안먹요. 혹시 템프레이트페이지 말고 또 적용해야할 내용이 있던건 아닌지..
config.pl 같은 것들 말입죠 :)
환경설정은 별 관계가 없을 것 같은데요. /Template 이 동작한다는 것은 $newpage와 $temp_Text{'text'} 까지 제대로 나왔다는 얘기니까요. 일단 저 두 함수만 소스를 복사해서 올려보시는게 어떨까요?