diff --git a/cap2site.pl b/cap2site.pl index 09a08df..e42f9ea 100755 --- a/cap2site.pl +++ b/cap2site.pl @@ -14,7 +14,7 @@ struct('Config', => { web_schemes => '@', standalone => '$', head => '$', - local_domains => '@', + local_domains => '$', }); our $DEFAULT = Config->new( @@ -49,9 +49,11 @@ sub isA($$$) { return grep $1, $self->extensions->{type}; } -sub isLocal($$) { - my ($self,$url) = @_; +sub isLocal($$$) { + my ($self,$url,$content) = @_; $url =~ /gemini:\/\/([^\/]+).*/ or return 0; + + return 0 if (index($content, "(gemini)") == 0); return grep $1, $self->{local_domains}; } @@ -150,7 +152,7 @@ sub parse($$$) { elsif (index($line, '=>') == 0) { my $data = trimLeft(substr $line, 2); - my ($uri,$content) = split " ", $data; + my ($uri,$content) = split " ", $data, 2; if ($config->isUrl($uri) and $config->isA($uri, 'image')) { print ''; @@ -171,7 +173,7 @@ sub parse($$$) { } elsif ($config->isUrl($uri)) { - if ($config->isLocal($uri)) { + if ($config->isLocal($uri, $content)) { # TODO: local http $uri =~ s/gemini:/https:/; $uri =~ s/\.gmi$/\.html/;