perl: link version references in description
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 14 Feb 2023 23:22:57 +0000 (00:22 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 15 Apr 2023 14:34:51 +0000 (16:34 +0200)
perl.plp

index b5e5d57f48d3eef79adf3d199366742cefa6a587..c227a9c89898034231633b1f55acdcb8997d9ef8 100644 (file)
--- a/perl.plp
+++ b/perl.plp
@@ -19,14 +19,18 @@ scripting language.
 <:
 my $info = Data('perl');
 
+use feature 'signatures';
+sub vname ($v) {
+       return sprintf 'v%d%03d', unpack 'C*', $v;
+}
+sub linkversion ($v) {
+       return showlink(sprintf('%vd', $v), '#'.vname($v));
+}
+
 eval {
        use List::Util 'first';
        use Time::Piece;
        use Time::Seconds;
-       use feature 'signatures';
-       sub linkversion ($v) {
-               return sprintf('%vd', $v);
-       }
 
        my $now = Time::Piece->new;
        my $coreeol = ($now - ONE_YEAR * 3)->strftime('%F');
@@ -54,7 +58,7 @@ for my $vernum (reverse sort keys %{$info}) {
        my $verrow = $info->{$vernum};
        defined $verrow->{unstable} and next unless exists $get{v};
 
-       say '<div class="section">';
+       say sprintf '<div class="section" id="%s">', vname($vernum);
        say sprintf '<h2>%vd <small>%s</small></h2>', $vernum, $verrow->{release};
        say '<dl>';
        for (@{ $verrow->{new} }) {