Add local domains

This commit is contained in:
Danielle Hutzley 2023-03-20 17:17:01 -05:00
parent 450b09554e
commit b5779936da
1 changed files with 15 additions and 0 deletions

View File

@ -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',
<meta charset="utf-8"/>
<link rel="stylesheet" href="style.css"></link>
@ -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 '<div>', "\n";
print '<span class="link-delim">=></span> ';
print '<a href="', escape($uri), '">', escape($content), '</a>', "\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;