# Blosxom Plugin: mark_oops # Author: ISO_Archiver # Version: 0.01 (2008-02-01) package mark_oops; use strict; # ----- Config ----- # my $image_dir = "$blosxom::url/img/"; #画像ファイルを一括して格納している場所(URL) my $noimg_flavour = "(?:m|mi)"; #このflavourでは、imgタグを使わずaタグを使います。 my $default_width = 320; #画像のwidthが指定されていなければこの値を使用します。 my $default_height = 240; #画像のheightが指定されていなければこの値を使用します。 # ------------------ # my $flavour; sub start { $flavour = $blosxom::path_info; $flavour =~ s/^[^\.]+\.(\w+?)$/$1/; 1; } sub story { my $body_ref = $_[5]; $$body_ref =~ s/'''(.+?)'''/$1<\/strong>/g; $$body_ref =~ s/##(.+?)##/$1<\/span>/g; $$body_ref =~ s/\[\[画像:(.+?)\]\]/image_markup($1)/ge; $$body_ref =~ s/\[\[(.+?)\]\]/anchor_markup($1)/ge; 1; } sub image_markup { my $get_string = shift; my @attr_list = split(/\|/, $get_string); my ($image_url, $width, $height, $alt, $return_string); foreach (@attr_list) { if (/^(\d+?)x(\d+?)px$/) { $width = $1; $height = $2; } elsif (/^(\d+?)px$/) { $width = $1; } elsif (/^([\w\-\[\]\(\)]+?\.\w+?)$/) { $image_url = $1; } else { $alt = $_; } } $width ||= $default_width; $height ||= $default_height; $alt ||= $image_url; if ($flavour =~ /^$noimg_flavour$/i) { $return_string = "$alt"; } else { $return_string = "$anchor_string"; } 1;