텍스트로 그린 플로우차트를 이미지로 변환해 주는 플러그인
{{{#!ditaa +--------+ +-------+ +-------+ | c897 +---+ ditaa +--->| | | Text | +-------+ |diagram| |Document| |!magic!| | | | {d}| | c978 | | c789 | +---+----+ +-------+ +-------+ }}}
위에 소개한 것처럼 {{{#!ditaa ... }}}
블럭 안에 차트를 그리면 된다.
처음 한 번은 ditaa 사이트에서 이미지를 변환하고, 일단 변환된 이미지는 업로드디렉토리/ditaa
디렉토리 아래 저장되어 다음부터는 저장된 이미지를 바로 사용한다.
만일 LWP::Simple 모듈이 없다면 매번 ditaa 사이트에서 변환해서 가져오는데, 속도가 좀 느리다.
텍스트는 영문만 되고 한글이 들어가면 깨진다ㅠㅠ
plugin/ditaa.pl
파일 추가:
# 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(<img src="$url/$imgfile" alt="$alt">); # 캐시에 있으면 주소 반환 if ( -f "$dir/$imgfile" ) { return $img_cached; } # 캐시에 없으면 새로 구성 my $enc = EncodeUrl($content); my $ditaa = "http://ditaa.org/ditaa/render?grid=$enc"; my $img_ditaa = qq(<img src="$ditaa" alt="$alt">); # 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
이런, ditta.org 없어졌나보네.