[첫화면으로]"UseModWiki소스수정/PlugIn" 페이지의 변경 내역

마지막으로 [b]


현재 버전 . . . . 2007-2-9 6:10 pm 수정한 사람: Raymundo
15 번째 수정본 . . . . 2006-3-26 4:45 pm 수정한 사람: Raymundo [수정됨]
 

변경사항 (가장 최근의 "일반적인 수정"부터) (다른 변경사항 없음)

-1,4 +1,5
== 외부 PlugIn 확장 ==
<toc>
== # 외부 PlugIn 확장 ==
외부 프로그램을 실행시켜 텍스트를 처리하게 하는 확장 기능. 이 확장 기능은 [[/매크로모듈화]]처럼 사용자가 각각의 PlugIn 파일을 추가, 삭제, 수정하여 쉽게 덮어 쓸 수 있다.

-6,6 +7,8
** [[/LaTeX]]에 있는 UnquoteHtmlForPageContent() 함수가 있을 것
* 선택 요구 사항: 딱히 없다.
=== # 사용법 ===
* 사용법: {{{#!플러그인이름 [옵션들] 내용 }}}
**예를 들어 gnuplot 플러그인이라면,
{{{

-48,7 +51,7
*** 사용자가 넣은 "텍스트"부분의 코드 중에 위험한 부분을 제거해야 한다. (예: gnuplot 에서 "!"으로 시작하면 쉘 명령을 실행한다)
** wiki.pl은 오직 텍스트와 옵션 배열을 넘겨주는 것으로 끝이다. 어떤 옵션을 제공할지, 그림을 생성하는 경우 캐쉬를 사용할지 등등은 각각의 플러그인이 알아서 해야 한다.
=== wiki.pl 수정 ===
=== # wiki.pl 수정 ===
{{{#!vim perl
### 패치를 위해 추가된 환경설정 변수
use vars qw(

-135,17 +138,36
    ...
    $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;
   $text =~ s/(^|\n)(\{\{\{[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*)\n/$1 \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/$1 \n/igm;
    # 아래 줄 추가
    $text =~ s/(^|\n)\{\{\{#!((\w+)( .+)?)[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*\n/ \n/igm;
    $text =~ s/(^|\n)(\{\{\{#!((\w+)( .+)?)[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*)\n/$1 \n/igm;
###
    if ($interlink) {
    ...
}
}}}
=== 추가 업데이트 내역 ===
관리자가 페이지 내의 링크를 일괄 변경할 때도 plugin 영역의 내용은 변경하지 않게 한다.
{{{#!vim perl
sub SubstituteTextLinks {
    ...
    $text =~ s/(<code>((.|\n)*?)<\/code>)/&StoreRaw($1)/ige;
    $text =~ s/(<nowiki>((.|\n)*?)<\/nowiki>)/&StoreRaw($1)/ige;
###############
### added by gypark
### {{{ }}} 내의 내용은 태그로 간주하지 않음
# 이 아래 처음 두 줄은 조금 수정되었고 세번째 줄 추가됨
    $text =~ s/(^|\n)(\{\{\{[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*)\n/$1.&StoreRaw($2)."\n"/igem;
    $text =~ s/(^|\n)(\{\{\{([a-zA-Z0-9+]+)(\|(n|\d*|n\d+|\d+n))?[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*)\n/$1.&StoreRaw($2)."\n"/igem;
    $text =~ s/(^|\n)(\{\{\{#!((\w+)( .+)?)[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*)\n/$1.&StoreRaw($2)."\n"/igem;
###
###############
    ...
}
}}}
=== # 추가 업데이트 내역 ===
ext1.72a - 플러그인호출시의 에러처리 개선
ext1.73b - 플러그인이 에러가 나서 원래 텍스트를 보여 줄 때 부등호 등이 치환되어 버리는 문제를 수정

-156,7 +178,10
ext1.95a - {{{#!...}}} 안의 내용 중에 위키네임이나 이중대괄호쌍이 있더라도 그것을 링크로 취급하지 않게 함. (즉, 역링크 검색이나 전체 링크 출력시 표시되지 않게 함)<mysign([[Raymundo]],2006-3-26 4:45 pm)>
=== 사용자 의견 ===
ext1.110 - ext1.95a와 같은 맥락으로, 관리자 기능 중 링크 일괄 변경을 할 때도 플러그인 안의 내용은 건드리지 않게 함
<mysign([[Raymundo]],2007-2-9 6:10 pm)>
=== # 사용자 의견 ===
다양한 플러그인이 나오기를 기대합니다~ :-) <mysign([[Raymundo]],2005-1-23 11:38 pm)>