6 번째 수정본 소스 보기 : UseModWiki소스수정/Ditaa플러그인
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: UseModWiki소스수정/Ditaa플러그인 는 읽기 전용 페이지입니다.
== # Ditaa 플러그인 == 텍스트로 그린 플로우차트를 이미지로 변환해 주는 플러그인 * 플로우차트와 변환된 이미지의 예는 [http://ditaa.org/ditaa/ ditaa - DIagrams Through Ascii Art]에 가면 잘 나와 있다 * 그러면 텍스트로 플로우차트를 그리는 건 나름 노동인데, 이건 또 [http://www.asciiflow.com/ Asciiflow - ASCII Flow Diagram Tool]에서 할 수 있다. * 즉 asciiflow에서 그리면서 상단 ditta! 버튼을 눌러서 그림을 확인하고, 최종 텍스트를 export 하여 위키에서 붙여 넣으면 됨 : {{{ {{{#!ditaa +--------+ +-------+ +-------+ | c897 +---+ ditaa +--->| | | Text | +-------+ |diagram| |Document| |!magic!| | | | {d}| | c978 | | c789 | +---+----+ +-------+ +-------+ }}} }}} {{{#!ditaa +--------+ +-------+ +-------+ | c897 +---+ ditaa +--->| | | Text | +-------+ |diagram| |Document| |!magic!| | | | {d}| | c978 | | c789 | +---+----+ +-------+ +-------+ }}} * 필수 요구 사항: 없음 * 선택 요구 사항: Cpan:LWP::Simple 모듈이 있어야 이미지를 캐시로 가져올 수 있음 === # 사용법 === 위에 소개한 것처럼
{{{#!ditaa ... }}}
블럭 안에 차트를 그리면 된다. 처음 한 번은 ditaa 사이트에서 이미지를 변환하고, 일단 변환된 이미지는
업로드디렉토리/ditaa
디렉토리 아래 저장되어 다음부터는 저장된 이미지를 바로 사용한다. 만일 LWP::Simple 모듈이 없다면 매번 ditaa 사이트에서 변환해서 가져오는데, 속도가 좀 느리다. 텍스트는 영문만 되고 한글이 들어가면 깨진다ㅠㅠ === # wiki.pl 수정 ===
plugin/ditaa.pl
파일 추가: {{{#!vim perl # ditaa plugin # http://ditaa.org/ditaa/ # http://www.asciiflow.com/ # # usage : # {{{#!ditaa # text art # }}} sub plugin_ditaa { my ($content, @opt) = @_; my $img; # 캐시 저장할 이미지 파일명 require Digest::MD5; my $hash = Digest::MD5::md5_hex($content); my $imgfile = "$hash.png"; # 저장할 디렉토리 my $dir = "$UploadDir/ditaa"; my $url = "$UploadUrl/ditaa"; # 반환할 이미지 태그 my $alt = "ditaa diagram"; my $img_cached = qq(
); # 캐시에 있으면 주소 반환 if ( -f "$dir/$imgfile" ) { return $img_cached; } # 캐시에 없으면 새로 구성 my $enc = EncodeUrl($content); my $ditaa = "http://ditaa.org/ditaa/render?grid=$enc"; my $img_ditaa = qq(
); # LWP::Simple이 없으면 ditaa.org의 주소를 바로 반환 - 느리다 if ( not eval { require LWP::Simple } ) { return $img_ditaa; } # 캐시 디렉토리에 저장하고 주소 반환 CreateDir($UploadDir); CreateDir($dir); my $res = LWP::Simple::getstore($ditaa, "$dir/$imgfile"); if ( $res eq "200" ) { return $img_cached; } else { return $img_ditaa; } } 1; }}} === # 추가 업데이트 내역 === === # 사용자 의견 === 윽 한글... ㅠㅠ
: 안타깝지요ㅠㅠ
UTF-8 인코딩은 지원하는 모양인데.. 혹시 폰트 문제 아닌가요? \\ \\ 한글 지원 가능성은 없을까요? \\ \\ http://vaslor.net/tech/ascii_chart
: 저도 잘 모르겠네요 :-)
---- [[위키위키분류]]
UseModWiki소스수정/Ditaa플러그인
페이지로 돌아가기 |
다른 수정본 보기