Work on links

This commit is contained in:
Danielle Hutzley 2023-03-20 18:04:16 -05:00
parent b5779936da
commit 022b4e54be
1 changed files with 7 additions and 5 deletions

View File

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