diff --git a/cap2site.pl b/cap2site.pl index c53a1ee..09a08df 100755 --- a/cap2site.pl +++ b/cap2site.pl @@ -14,6 +14,7 @@ struct('Config', => { web_schemes => '@', standalone => '$', head => '$', + local_domains => '@', }); our $DEFAULT = Config->new( @@ -29,6 +30,7 @@ our $DEFAULT = Config->new( }, web_schemes => ["http", "https", "mailto", "gemini"], standalone => 0, + local_domains => [], head => <<~'EOF', @@ -47,6 +49,12 @@ sub isA($$$) { return grep $1, $self->extensions->{type}; } +sub isLocal($$) { + my ($self,$url) = @_; + $url =~ /gemini:\/\/([^\/]+).*/ or return 0; + return grep $1, $self->{local_domains}; +} + package State; sub new($$) { @@ -163,6 +171,12 @@ sub parse($$$) { } elsif ($config->isUrl($uri)) { + if ($config->isLocal($uri)) { + # TODO: local http + $uri =~ s/gemini:/https:/; + $uri =~ s/\.gmi$/\.html/; + } + print '