use strict;
my $MyFootnoteCounter;
my @MyFootnotes;
my %SaveNumFootnote;
sub footnote {
my ($txt) = @_;
$MyFootnoteCounter = 0;
$txt =~ s/(&__LT__;footnote\(([^\n]+?)\)&__GT__;)/&MacroFootnote($2)/gei;
# 본문 하단에 각주 출력
if ($MyFootnoteCounter > 0) {
map { s/_MARK_// } @MyFootnotes;
$txt .= "<DIV class='footnote'>".
"\n" . T('Footnote') . ": <br>\n".
join('', @MyFootnotes). "</DIV>";
}
return $txt;
}
sub MacroFootnote {
my ($note) = @_;
$MyFootnoteCounter++;
my $number = "<A name='FN_$MyFootnoteCounter' href='#FNR_$MyFootnoteCounter'>$MyFootnoteCounter</A>.";
# URL이 있을 경우 동일한 내용이란 걸 파악하기 위해서, Restore를 해 줘야 함
my $note_restored = &RestoreSavedText($note); # 내용 비교는 이 변수를 사용
if (defined $SaveNumFootnote{$note_restored}) {
# 동일한 내용의 각주가 이미 있다면 그 각주에다가 새 번호 삽입
$MyFootnotes[$SaveNumFootnote{$note_restored}] =~ s/_MARK_/$number _MARK_/;
} else {
# 새로운 내용의 각주 추가
push @MyFootnotes,
$number.
" _MARK_$note".
"<br>\n";
$SaveNumFootnote{$note_restored} = $#MyFootnotes;
}
return "<A class='footnote' name='FNR_$MyFootnoteCounter' href='#FN_$MyFootnoteCounter'>$MyFootnoteCounter</A>";
}
1;
