OSDN Git Service

ref_imageプラグインで画像の幅と高さを指定できるようにした。
authortakezoe <takezoe@users.osdn.me>
Sat, 30 Jul 2011 19:44:51 +0000 (19:44 +0000)
committertakezoe <takezoe@users.osdn.me>
Sat, 30 Jul 2011 19:44:51 +0000 (19:44 +0000)
lib/Wiki/HTMLParser.pm
plugin/attach/RefImage.pm

index 926ff54..397e212 100644 (file)
@@ -514,9 +514,11 @@ sub l_plugin {
 # ¥¤¥á¡¼¥¸
 #==============================================================================
 sub l_image {
-       my $self = shift;
-       my $page = shift;
-       my $file = shift;
+       my $self   = shift;
+       my $page   = shift;
+       my $file   = shift;
+       my $width  = shift;
+       my $height = shift;
        my $wiki = $self->{wiki};
        
        if($self->{para}==1){
@@ -529,7 +531,12 @@ sub l_image {
        $self->end_table;
        $self->end_quote;
        
-       $self->{html} .= "<div><img src=\"".$wiki->create_url({action=>"ATTACH",page=>$page,file=>$file})."\"></div>\n";
+       $self->{html} .= "<div class=\"image\">";
+       $self->{html} .= "<img src=\"".$wiki->create_url({action=>"ATTACH",page=>$page,file=>$file})."\"";
+       $self->{html} .= " width=\"$width\"" if ($width ne "");
+       $self->{html} .= " height=\"$height\"" if ($height ne "");
+       $self->{html} .= "/>";
+       $self->{html} .= "</div>\n";
 }
 
 #==============================================================================
index a144540..001bbce 100644 (file)
@@ -4,6 +4,13 @@
 # <pre>
 # {{ref_image ¥Õ¥¡¥¤¥ë̾}}
 # </pre>
+# <p>
+# ¥ª¥×¥·¥ç¥ó¤Ç²èÁü¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+# °Ê²¼¤ÎÎã¤Ç¤ÏÉý650¥Ô¥¯¥»¥ë¡¢¹â¤µ400¥Ô¥¯¥»¥ë¤Ç²èÁü¤òɽ¼¨¤·¤Þ¤¹¡£
+# </p>
+# <pre>
+# {{ref_image ¥Õ¥¡¥¤¥ë̾,w650,h400}}
+# </pre>
 # <p>Ê̤Υڡ¼¥¸¤ËźÉÕ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£</p>
 # <pre>
 # {{ref_image ¥Õ¥¡¥¤¥ë̾,¥Ú¡¼¥¸Ì¾}}
@@ -28,11 +35,24 @@ sub paragraph {
        my $self = shift;
        my $wiki = shift;
        my $file = shift;
-       my $page = shift;
+       my $page = "";
+       
+       my @options = @_;
+       my $width  = "";
+       my $height = "";
        
        if($file eq ""){
                return &Util::paragraph_error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£","WIKI");
        }
+       foreach my $option (@options){
+               if($option =~ /^w([0-9]+)$/){
+                       $width = $1;
+               } elsif($option =~ /^h([0-9]+)$/){
+                       $height = $1;
+               } else {
+                       $page = $option;
+               }
+       }
        if($page eq ""){
                $page = $wiki->get_CGI()->param("page");
        }
@@ -45,7 +65,7 @@ sub paragraph {
                return &Util::paragraph_error("¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£","WIKI");
        }
        
-       $wiki->get_current_parser()->l_image($page,$file);
+       $wiki->get_current_parser()->l_image($page, $file, $width, $height);
        return undef;
 }