URI: 
       Misc.pm - lsg - Lumidify Site Generator
  HTML git clone git://lumidify.org/lsg.git (fast, but not encrypted)
  HTML git clone https://lumidify.org/lsg.git (encrypted, but very slow)
  HTML git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/lsg.git (over tor)
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       Misc.pm (1470B)
       ---
            1 #!/usr/bin/env perl
            2 
            3 # LSG::Misc - miscellaneous functions for the LSG
            4 # Written by lumidify <nobody@lumidify.org>
            5 #
            6 # To the extent possible under law, the author has dedicated
            7 # all copyright and related and neighboring rights to this
            8 # software to the public domain worldwide. This software is
            9 # distributed without any warranty.
           10 #
           11 # You should have received a copy of the CC0 Public Domain
           12 # Dedication along with this software. If not, see
           13 # <http://creativecommons.org/publicdomain/zero/1.0/>.
           14 
           15 package LSG::Misc;
           16 use strict;
           17 use warnings;
           18 use utf8;
           19 use open qw< :encoding(UTF-8) >;
           20 binmode STDIN, ":encoding(UTF-8)";
           21 binmode STDOUT, ":encoding(UTF-8)";
           22 binmode STDERR, ":encoding(UTF-8)";
           23 
           24 # Generate relative link - both paths must already be relative,
           25 # starting at the same place!
           26 # e.g. "bob/hi/whatever/meh.txt","bob/hi/bla/fred.txt" => ../bla/fred.txt
           27 sub gen_relative_link {
           28         my ($base, $linked) = @_;
           29         my @parts_base = split("/", $base);
           30         my @parts_linked = split("/", $linked);
           31         # don't include last element in @parts_base (the filename)
           32         my $i = 0;
           33         while ($i < $#parts_base && $i < $#parts_linked) {
           34                 if ($parts_base[$i] ne $parts_linked[$i]) {
           35                         last;
           36                 }
           37                 $i++;
           38         }
           39         my $rel_lnk = "";
           40         $rel_lnk .= "../" x ($#parts_base-$i);
           41         $rel_lnk .= join("/", @parts_linked[$i..$#parts_linked]);
           42         return $rel_lnk;
           43 }
           44 
           45 1;