====== Go Up ====== ===== Description ===== Go one step upwards in page structure known from vimperator. For instance: Your visiting page http://www.host.com/data/scripts, go-up will guide you to http://www.host.com/data. This is very useful for pages with are clear directory concept on their web page, mostly found in the open source world. ===== Perl ===== #!/usr/bin/perl my ($config,$pid,$xid,$fifo,$socket,$url,$title,$cmd) = @ARGV; if($fifo eq "") { die "No fifo"; }; # Delete last slash chop($url); my $index = index(reverse($url), '/'); # if youre already on top of the directory structure if ($index == -1) { print $url; exit; } # Workaround for missing reverse index $url = (substr(reverse($url), $index, length($url) )); $url = reverse($url); print $url."\n"; # This could look prettier with native fifo access qx(echo "act uri $url" >> $fifo); ==== Installation ==== Copy the above script to a directory of your choice and bind it for example with: @bind gu = spawn @scripts_dir/goup.pl ===== JavaScript ===== This script has the added functionality that of removes sub-domains once at the top/root level. For instance: Your visiting page http://bbs.host.com, go-up will guide you to http://host.com. (function() { try { // Go up one level location = location.href.match(/(\w+:\/\/.+?\/)([\w\?\=\+\%\&\-\.]+\/?)$/)[1]; } catch(e) { try { // Removing sub-domain var s = document.domain.match(/^(?!www\.)\w+\.(.+?)\.([a-z]{2,4})(?:\.([a-z]{2}))?$/); var l = s.length; location = location.protocol + "//" + s.slice(1, s[l] ? l : l-1).join("."); } catch(e) {} } })(); ==== Installation ==== Copy the above script to a directory of your choice and bind it for example with: # Go up one level @bind gu = script @scripts_dir/go_up.js # Go to the top/root level @bind gU = js (function() { location = location.protocol + "//" + document.domain; })() ===== Shell ===== Another alternative: @bind !goup = sh 'echo "uri $(dirname $6)" > $4' @bind !goUp = sh 'echo "uri $(echo $6 | grep -Eo \"(^[^/]+//[^/]+/)")" > $4'