From b5779936dacd7987f0ab307618fceab4a24ec56a Mon Sep 17 00:00:00 2001 From: Danielle Hutzley Date: Mon, 20 Mar 2023 17:17:01 -0500 Subject: [PATCH] Add local domains --- cap2site.pl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 '
', "\n"; print '=> '; print '', escape($content), '', "\n"; @@ -207,6 +221,7 @@ GetOptions ( 'inline-video!' => \$config->inline->{video}, 'inline-image!' => \$config->inline->{image}, 'standalone!' => \$config->{standalone}, + 'local-domain=s' => \$config->{local_domains}, ) or pod2usage(-exitval => 1, -verbose => 0); pod2usage(-verbose => $help) if $help;