gopher-server: support gopher tags

See gopher://circumlunar.space:70/0/~solderpunk/phlog/tagged-gophers.txt
This commit is contained in:
Alex Schroeder
2018-10-07 15:39:51 +02:00
parent 086a992b5a
commit f27ab9a8a0
2 changed files with 10 additions and 3 deletions

View File

@@ -572,9 +572,10 @@ sub serve_text_page {
my $id = shift;
my $page = shift;
my $text = $page->{text};
$text =~ s/^\./../mg;
$text =~ s/\[\[tag:([^]]+)\]\]/'#' . join('_', split(' ', $1))/mge;
$self->log(3, "Serving " . UrlEncode($id) . " as " . length($text)
. " bytes of text");
$text =~ s/^\./../mg;
$self->print_text($text);
}

View File

@@ -35,7 +35,7 @@ END {
# kill server
if ($pid) {
kill 'KILL', $pid or warn "Could not kill server $pid";
}
}
}
our ($DataDir);
@@ -85,7 +85,7 @@ sub query_gopher {
$socket->print("$query\r\n");
$socket->print($text);
undef $/; # slurp
return <$socket>;
}
@@ -306,4 +306,10 @@ $page = query_gopher("Gopher/menu");
like($page, qr/^1Phlogs\t\/phlogs\/\tsdf\.org\t70/m, "Direct Gopher link");
like($page, qr/^0VF-1\t\/users\/solderpunk\/phlog\/introducing-vf1.txt\tsdf\.org\t70/m, "Floodgap proxy link");
# gopher tags
update_page('Gopher', 'Tags: [[tag:Gopher]] [[tag:Perl 6]]');
$page = query_gopher("Gopher");
like($page, qr/#Gopher/m, "Gopher tag");
like($page, qr/#Perl_6/m, "Gopher multi-word tag");
done_testing();