[첫화면으로]UseModWiki소스수정/입력한그대로출력

마지막으로 [b]

{{{ }}} 태그 개선 및 SyntaxHighlighting 지원

Notes

{{{ }}} 내부에 있는 위키네임이나 이중 대괄호쌍이 있을 경우, 본문 출력시에는 이들을 링크로 간주하지 않으나 역링크 검색이나 전체 링크 목록 출력 화면에서는 링크로 간주한다. 이것을 막으려면 다음을 수정한다.

sub GetPageLinks {
    ...
    $text =~ s/<code>(.|\n)*?\<\/code>/ /ig;
### 다음 두 줄 추가
    $text =~ s/(^|\n)\{\{\{[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*\n/ \n/igm;
    $text =~ s/(^|\n)\{\{\{([a-zA-Z0-9+]+)(\|(n|\d*|n\d+|\d+n))?[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*\n/ \n/igm;
### 여기까지
    if ($interlink) {
        $text =~ s/''+/ /g;  # Quotes can adjacent to inter-site links
    ...
}
- 2003.2.7.

source-highlight 유틸리티가 지원하는 언어 목록을 해쉬변수에 담아서 사용했었는데, 너무도 직관적이지 않은 형태가 되어서... SRCHIGHLANG 환경변수를 배열로 지정하고 실제로 호출될 때 루프를 돌면서 지원 언어 목록을 검색하도록 수정하였다. 다음과 같이 수정한다.

config.pl 에서는
### source-highlight 의 경로명
$SOURCEHIGHLIGHT    = "/usr/local/bin/source-highlight";    # path of source-highlight
### source-highlight 에서 옵션으로 줄 수 있는 언어 목록을 아래와 같이 배열로 지정한다.
@SRCHIGHLANG = qw(cpp java prolog perl php3 python flex changeelog);
wiki.pl 에서는
###############
### added by gypark
### 패치를 위해 추가된 환경설정 변수
use vars qw(
    $UserGotoBar $UserGotoBar2 $UserGotoBar3 $UserGotoBar4
    $ConfigFile $SOURCEHIGHLIGHT @SRCHIGHLANG $LinkFirstChar   # %SRCHIGHLANG 을 @SRCHIGHLANG 으로 바꾼다.
    $EditGuideInExtern $SizeTopFrame $SizeBottomFrame
    $LogoPage $CheckTime $LinkDir $IconDir
    );
###
###############
sub StoreSyntaxHighlight {
    my ($lang, $opt , @code) = @_;

    my %LANG;                    # 추가
    foreach (@SRCHIGHLANG) {     # 추가
        $LANG{$_} = "1";         # 추가
    }                            # 추가

    if (!((-x "$SOURCEHIGHLIGHT") && defined($LANG{$lang}))) {  # 수정
        return &StoreCodeRaw(@code);
    }
    ... 이하 이전과 동일 ...
}
-- Raymundo 2003-3-5 1:27 am

추가 업데이트 내역

ext1.95 - source-highlight 2.* 버전의 출력을 지원. 1.8과 2.2에서 각각 테스트했음.
3524,3528c3524,3530
< # source-highlight 출력물 앞뒤의 pre 태그와 tt 태그를 뺀다
<   shift @html;
<   shift @html;
<   pop @html;
<   pop @html;
---
> # source-highlight 출력물 앞뒤의 버전정보, pre 태그, tt 태그를 뺀다
>   my $html = join($FS1, @html);
>   $html =~ s/^<!-- Generator: GNU source-highlight.*?-->//s;
>   $html =~ s/^.*?<pre>.*?<tt>//s;
>   $html =~ s/<\/tt>.*?<\/pre>(\r?\n)*$//s;
>   $html =~ s/(\r?\n)*?$//s;
>   @html = split(/$FS1/, $html);
-- Raymundo 2006-3-26 4:37 pm

사용자 의견

이름:  
Homepage:
내용:
 

위키위키분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
831 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기