Name:
Image
FullName:
SuikaWikiImage
URI:
IW:SuikaWiki:WikiAdmin
{
Name:
wikiformat/SuikaWikiImage/0.9-to-HTML
FullName:
SuikaWikiImage/0.9 document format -> HTML
URI:
IW:SuikaWiki:SuikaWiki
Format:
my $c = $o->{content};
$c =~ s(\x0D?\x0A__IMAGE__\x0D?\x0A.+$){}s;
my $embed = '[[#embed:IMG:'.$o->{page}.']]';
unless (index ($c, $embed) > -1) {
$c = $embed . "\n" . $c;
}
if ($c !~ /\[\[\#comment/ && $o->{p}->{comment} && $o->{magic} !~ /obsoleted="yes"/ && !$main::database->meta (IsFrozen => $o->{page})) {
$c .= qq(\n[[#comment]]);
}
$r = &main::text_to_html ($c, %$o);
}
{
Name:
wikiformat/SuikaWikiImage/0.9-to-image-png
FullName:
SuikaWikiImage/0.9 document format -> PNG image
URI:
IW:SuikaWiki:SuikaWiki
Format:
if ($o->{magic} =~ m#image-type="image/png"#) {
if ($o->{content} =~ /\x0D?\x0A__IMAGE__\x0D?\x0A(.+)$/s) {
require MIME::Base64;
$r = MIME::Base64::decode ($1);
}
}
}
{
Name:
wikiformat/SuikaWikiImage/0.9-to-image-jpeg
FullName:
SuikaWikiImage/0.9 document format -> JPEG image
URI:
IW:SuikaWiki:SuikaWiki
Format:
if ($o->{magic} =~ m#image-type="image/jpeg"#) {
if ($o->{content} =~ /\x0D?\x0A__IMAGE__\x0D?\x0A(.+)$/s) {
require MIME::Base64;
$r = MIME::Base64::decode ($1);
}
}
}
{
Name:
wikiformat/SuikaWikiImage/0.9-to-image-x-icon
FullName:
SuikaWikiImage/0.9 document format -> Windows icon
URI:
IW:SuikaWiki:"Wiki//Icon"
Format:
if ($o->{magic} =~ m#image-type="image/x-icon"#) {
if ($o->{content} =~ /\x0D?\x0A__IMAGE__\x0D?\x0A(.+)$/s) {
require MIME::Base64;
$r = MIME::Base64::decode ($1);
}
}
}
{
Name:
wikiformat/SuikaWikiImage/0.9-to-HTML-fragment
FullName:
SuikaWikiImage/0.9 document format -> HTML fragment
URI:
IW:SuikaWiki:SuikaWiki
Format:
if ($o->{magic} =~ m#image-type="([^"]+)"#) {
my $type = $1; $type =~ tr/\x00-\x20\x7F//d;
$type =~ s/[^0-9A-Za-z_]/_/g;
my $uri = $o->uri('wiki'); my $epage = $o->encode($o->{page});
my $alt = ''; $alt = $1 if $o->{magic} =~ /image-alt="([^"]+)"/;
$r = qq(
);
} else {
$r = qq().$o->resource('Embed:ImageNotFound',escape=>1).q();
}
}
{
Name:
wikiview/link-favicon
FullName:
Returns LINK element for favicon
Format:
my $page = $p->{page} || 'WikiIcon';
$page = get_icon_page_name ($o, $page) if $p->{use_page_icon};
if ($o->_database_exist ($page)) {
my ($magic, $content) = $o->magic_and_content ($main::database{$page});
if ($magic =~ m!^\#\?SuikaWikiImage/0\.9! && $magic =~ m#image-type="([^"]+)"#) {
my ($type0,$type) = ($1,$1); $type =~ tr/\x00-\x20\x7F//d;
$type =~ s/[^0-9A-Za-z_]/_/g;
my $alt = ''; $alt = $1 if $magic =~ /image-alt="([^"]+)"/;
$r = qq();
}
}
}
{
Name:
wikiview/img-favicon
FullName:
Returns IMG element for favicon
Format:
my $page = $p->{page} || 'WikiIcon';
$page = get_icon_page_name ($o, $page) if $p->{use_page_icon};
if ($o->_database_exist ($page)) {
my ($magic, $content) = $o->magic_and_content ($main::database{$page});
if ($magic =~ m!^\#\?SuikaWikiImage/0\.9! && $magic =~ m#image-type="([^"]+)"#) {
my ($type0,$type) = ($1,$1); $type =~ tr/\x00-\x20\x7F//d;
$type =~ s/[^0-9A-Za-z_]/_/g;
$r = qq(
);
}
}
}
MODULE:
sub get_icon_page_name ($$) {
my ($o, $page) = @_;
my @name = SuikaWiki::Name::Space::split_name ($o->{page});
for (my $i = $#name; $i >= 0; $i--) {
my $p_name = &SuikaWiki::Name::Space::join_names ([@name[0..$i]]);
my ($pmagic) = $o->magic_and_content ($main::database{$p_name});
if ($pmagic =~ m!\#\?SuikaWiki! && $pmagic =~ m#page-icon="([^"]+)"#) {
$page = $1;
last;
} else {
$p_name = &SuikaWiki::Name::Space::join_names ([@name[0..$i], 'WikiIcon']);
if ($o->_database_exist ($p_name)) {
$page = $p_name; last;
}
}
}
$page;
}
SuikaWiki::View->template ('links')->add_lines (q(%link-favicon(use-page-icon);));
SuikaWiki::View->definition (image_jpeg => {
media => {type => 'image/jpeg', expires => 240*3600},
check => sub { ref ($_[0]->format_converter ($_[0]->{magic} => 'image_jpeg'))
&& $_[0]->{magic} =~ m#image-type="image/jpeg"# ? 1 : 0 },
template => '%read(to=>image_jpeg);'});
SuikaWiki::View->definition (image_png => {
media => {type => 'image/png', expires => 240*3600},
check => sub { ref ($_[0]->format_converter ($_[0]->{magic} => 'image_png'))
&& $_[0]->{magic} =~ m#image-type="image/png"# ? 1 : 0 },
template => '%read(to=>image_png);'});
SuikaWiki::View->definition (image_x_icon => {
media => {type => 'image/x-icon', expires => 240*3600},
check => sub { ref ($_[0]->format_converter ($_[0]->{magic} => 'image_x_icon'))
&& $_[0]->{magic} =~ m#image-type="image/x-icon"# ? 1 : 0 },
template => '%read(to=>image_x_icon);'});
POD:LICENSE:
Copyright 2003 Wakaba
%%GNUGPL2%%