hikiのattachプラグイン
tDiaryのimageプラグインを無理やりhikiに入れて使ってたのだが、hikiのattachプラグインでほぼ同じことができることを発見。早く気づけ。んで、これまたtDiaryでやったのと同じようにサイズとfloatが指定できるように改造。
--- save/attach.rb Sat Jun 26 23:11:24 2004 +++ attach.rb Mon Mar 14 18:51:20 2005 @@ -75,8 +75,13 @@ s << %Q!#{file_name.escapeHTML}</a>! end -def attach_image_anchor(file_name, page=@page) - s = %Q!<img alt="#{file_name.escapeHTML}" src="! +def attach_image_anchor(file_name, page=@page, width=nil, height=nil, place=nil) + if (width && height) + imgsize = %Q!width="#{width}" height="#{height}"! + else + imgsize = '' + end + s = %Q!<img class="#{place}" alt="#{file_name.escapeHTML}" #{imgsize} src="! s << %Q!#{$cgi_name}#{cmdstr('plugin', "plugin=attach_download;p=#{page.escape};file_name=#{file_name.escape}")}">! s << %Q!</img>! end @@ -149,11 +154,11 @@ end end -def attach_view(file_name, page=@page) +def attach_view(file_name, width=nil, height=nil, place=nil, page=@page) if file_name =~ /\.(txt|rd|rb|c|pl|py|sh|java|html|htm|css|xml|xsl)\z/i attach_src(file_name, page) elsif file_name =~ /\.(jpeg|jpg|png|gif|bmp)\z/i - attach_image_anchor(file_name, page) + attach_image_anchor(file_name, page, width, height, place) end end
attach_viewの"page=@page"という引数は、省略したら現在のページになるので、@pageに現在のページ名が入ってると思うのだが、
{{attach_view(xxx.gif,,80,60)}}
というように指定するとページ名前がnilになってしまって動作しない。仕方ないので、オリジナルとの互換性がなくなってしまうが、
{{atach_view(filename,width,height,place,page)}}
というsyntaxにした。