Advertisement
Guest User

Untitled

a guest
Sep 14th, 2016
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 3.85 KB | None | 0 0
  1. use Algorithm::Combinatorics qw(combinations);
  2.  
  3. # list language codes
  4. my @languages = sort {$b cmp $a } qw(es fr de it pt nl ga da sv en hu eo tr nb uk pl ru ca cy gn el he vi ro sw);
  5.  
  6. my $iter;
  7. my $css1;
  8. my $css2;
  9. my $padding;
  10.  
  11. my @languages1, @languages2, @languages3, @languages4;
  12.  
  13. my $count = 0;
  14. foreach (@languages)
  15. {
  16.     if ($count < 1 * scalar @languages / 5) { push @languages5, $_; }
  17.     elsif ($count < 2 * scalar @languages / 5) { push @languages4, $_; }
  18.     elsif ($count < 3 * scalar @languages / 5) { push @languages3, $_; }
  19.     elsif ($count < 4 * scalar @languages / 5) { push @languages2, $_; }
  20.     elsif ($count < 5 * scalar @languages / 5) { push @languages1, $_; }
  21.     $count++;
  22. }
  23.  
  24. # generate .flair background-image classes
  25. for (my $length = 1; $length <= scalar @languages1; $length++)
  26. {
  27.     # iterate over the set of combinations of $length elements
  28.     $iter = combinations(\@languages1, $length);
  29.     while (my $i = $iter->next)
  30.     {
  31.         # @$i is now an array like [ru][uk][nb], so let's generate css from it
  32.         $css1 = $css2 = "";
  33.         $padding = (18 * $length) . "px";
  34.         while ($output = pop @$i)
  35.         {
  36.             $css1 .= "[title*=\"$output\"]"; # the css selector
  37.             if ($css2 ne "") { $css2 .= ","; }
  38.             $css2 .= " url(%%$output%%)"; # the image references
  39.         }
  40.         print ".flair$css1 { background-image:$css2; padding-left: $padding }\n";
  41.     }
  42. }
  43.  
  44. # generate :before background-image classes
  45. for (my $length = 1; $length <= scalar @languages2; $length++)
  46. {
  47.     # iterate over the set of combinations of $length elements
  48.     $iter = combinations(\@languages2, $length);
  49.     while (my $i = $iter->next)
  50.     {
  51.         # @$i is now an array like [ru][uk][nb], so let's generate css from it
  52.         $css1 = $css2 = "";
  53.         $padding = (18 * $length) . "px";
  54.         while ($output = pop @$i)
  55.         {
  56.             $css1 .= "[title*=\"$output\"]"; # the css selector
  57.             if ($css2 ne "") { $css2 .= ","; }
  58.             $css2 .= " url(%%$output%%)"; # the image references
  59.         }
  60.         print ".flair$css1:before{ background-image:$css2; padding-left: $padding }\n";
  61.     }
  62. }
  63.  
  64. # generate :before content classes
  65. for (my $length = 1; $length <= scalar @languages3; $length++)
  66. {
  67.     # iterate over the set of combinations of $length elements
  68.     $iter = combinations(\@languages3, $length);
  69.     while (my $i = $iter->next)
  70.     {
  71.         # @$i is now an array like [ru][uk][nb], so let's generate css from it
  72.         $css1 = $css2 = "";
  73.         while ($output = pop @$i)
  74.         {
  75.             $css1 .= "[title*=\"$output\"]"; # the css selector
  76.             $css2 .= " url(%%$output%%)"; # the image references
  77.         }
  78.         print ".flair$css1:before{ content:$css2; }\n";
  79.     }
  80. }
  81.  
  82. # generate :after background-image classes
  83. for (my $length = 1; $length <= scalar @languages4; $length++)
  84. {
  85.     # iterate over the set of combinations of $length elements
  86.     $iter = combinations(\@languages4, $length);
  87.     while (my $i = $iter->next)
  88.     {
  89.         # @$i is now an array like [ru][uk][nb], so let's generate css from it
  90.         $css1 = $css2 = "";
  91.         $padding = (18 * $length) . "px";
  92.         while ($output = pop @$i)
  93.         {
  94.             $css1 .= "[title*=\"$output\"]"; # the css selector
  95.             if ($css2 ne "") { $css2 .= ","; }
  96.             $css2 .= " url(%%$output%%)"; # the image references
  97.         }
  98.         print ".flair$css1:after{ background-image:$css2; padding-left: $padding }\n";
  99.     }
  100. }
  101.  
  102. # generate :after content classes
  103. for (my $length = 1; $length <= scalar @languages5; $length++)
  104. {
  105.     # iterate over the set of combinations of $length elements
  106.     $iter = combinations(\@languages5, $length);
  107.     while (my $i = $iter->next)
  108.     {
  109.         # @$i is now an array like [ru][uk][nb], so let's generate css from it
  110.         $css1 = $css2 = "";
  111.         while ($output = pop @$i)
  112.         {
  113.             $css1 .= "[title*=\"$output\"]"; # the css selector
  114.             $css2 .= " url(%%$output%%)"; # the image references
  115.         }
  116.         print ".flair$css1:after{ content:$css2; }\n";
  117.     }
  118. }
  119.  
  120. print "\n\n";
  121.  
  122. foreach (@languages)
  123. {
  124.     print "a[href\$=\"#$_\"]{ background:url(%%$_%%); width:18px; height: 18px; }\n";
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement