diff options
| author | stkhan <personal@slickd.xyz> | 2023-03-19 11:03:17 -0500 |
|---|---|---|
| committer | stkhan <personal@slickd.xyz> | 2023-03-19 11:03:17 -0500 |
| commit | 3cfd05f026f56149d96dde75727f4ca5dd417ca6 (patch) | |
| tree | fffeec8cbfee66d8d13c601ceeadfeb96261c681 /utils/surf/script.js | |
| parent | e66a65bdec52c387189adbb905102c3ae0ab0319 (diff) | |
Remove surf
Diffstat (limited to 'utils/surf/script.js')
| -rw-r--r-- | utils/surf/script.js | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/utils/surf/script.js b/utils/surf/script.js deleted file mode 100644 index f33fca3..0000000 --- a/utils/surf/script.js +++ /dev/null @@ -1,308 +0,0 @@ -// ==UserScript== -// @name vimkeybindings -// @namespace renevier.fdn.fr -// @author arno <arenevier@fdn.fr> -// @licence GPL/LGPL/MPL -// @description use vim keybingings (i, j, k, l, …) to navigate a web page. -// ==/UserScript== -/* -* If you're a vim addict, and you always find yourself typing j or k in a web -* page, then wondering why it just does not go up and down like any good -* software, that user script is what you have been looking for. -*/ -function up() { - if (window.scrollByLines) - window.scrollByLines(-1); // gecko - else - window.scrollBy(0, -12); // webkit -} -function down() { - if (window.scrollByLines) - window.scrollByLines(1); // gecko - else - window.scrollBy(0, 12); // webkit -} -function pageup() { - if (window.scrollByPages) - window.scrollByPages(-1); // gecko - else - window.scrollBy(0, 0 - _pageScroll()); // webkit -} -function pagedown() { - if (window.scrollByPages) - window.scrollByPages(1); // gecko - else - window.scrollBy(0, _pageScroll()); // webkit -} -function right() { - window.scrollBy(15, 0); -} -function left() { - window.scrollBy(-15, 0); -} -function home() { - window.scroll(0, 0); -} -function bottom() { - window.scroll(document.width, document.height); -} -// If you don't like default key bindings, customize here. -// if you want to use the combination 'Ctrl + b' (for example), use '^b' -var bindings = { - 'h' : left, - 'l' : right, - 'k' : up, - 'j' : down, - 'g' : home, - 'G' : bottom, - //'^b': pageup, - //'^f': pagedown, -} -function isEditable(element) { - - if (element.nodeName.toLowerCase() == "textarea") - return true; - // we don't get keypress events for text input, but I don't known - // if it's a bug, so let's test that - if (element.nodeName.toLowerCase() == "input" && element.type == "text") - return true; - // element is editable - if (document.designMode == "on" || element.contentEditable == "true") { - return true; - } - - return false; -} -function keypress(evt) { - var target = evt.target; - - // if we're on a editable element, we probably don't want to catch - // keypress, we just want to write the typed character. - if (isEditable(target)) - return; - var key = String.fromCharCode(evt.charCode); - if (evt.ctrlKey) { - key = '^' + key; - } - var fun = bindings[key]; - if (fun) - fun(); -} -function _pageScroll() { - // Gecko algorithm - // ---------------- - // The page increment is the size of the page, minus the smaller of - // 10% of the size or 2 lines. - return window.innerHeight - Math.min(window.innerHeight / 10, 24); -} -window.addEventListener("keypress", keypress, false); - -// easy links for surf -// christian hahn <ch radamanthys de>, sep 2010 -testcomplete = function() { - if(document.readyState=="complete") { - run(); return; - } - window.setTimeout("testcomplete()",200); -} -testcomplete(); -run=function() { - // config , any css - var modkey = 18; //ctrl=17, alt=18 - var cancelkey = 67; // c - var newwinkey = 84; // t - var openkey = 70; // f - var label_style = {"color":"black","fontSize":"10px","backgroundColor":"#27FF27","fontWeight":"normal","margin":"0px","padding":"0px","position":"absolute","zIndex":99}; - var hl_style = {"backgroundColor":"#E3FF38","fontSize":"15px"}; - var nr_base = 5; // >=10 : normal integer, - // globals - var ankers = document.getElementsByTagName("a"); - var labels = new Object(); - var ui_visible = false; - var input = ""; - // functions - hl=function(t) { - for(var id in labels) { - if (t && id.match("^"+t)==t) - for(var s in hl_style) - labels[id].rep.style[s]=hl_style[s]; - else - for(var s in label_style) - labels[id].rep.style[s]=label_style[s]; - } - } - open_link=function(id, new_win) { - try { - var a = labels[input].a; - if(a && !new_win) window.location.href=a.href; - if(a && new_win) window.open(a.href,a.href); - } catch (e) {} - } - set_ui=function(s) { - var pos = "static"; - ui_visible = true; - if(s == "hidden") { - ui_visible = false; - pos = "absolute"; - input=""; - } - for(var id in labels) { - labels[id].rep.style.visibility=s; - labels[id].rep.style.position=pos; - } - } - base=function(n, b) { - if(b>=10) return n.toString(); - var res = new Array(); - while(n) { - res.push( (n%b +1).toString() ) - n=parseInt(n/b); - } - return res.reverse().join(""); - } - // main - // create labels - for (var i=0; i<ankers.length; i++) { - var a = ankers[i]; - if (!a.href) continue; - var b = base(i+1,nr_base); - var d = document.createElement("span"); - d.style.visibility="hidden"; - d.innerHTML=b; - for(var s in label_style) - d.style[s]=label_style[s]; - labels[b]={"a":a, "rep":d}; - a.parentNode.insertBefore(d, a.nextSibling); - } - // set key handler - window.onkeydown=function(e) { - if (e.keyCode == modkey) { - set_ui("visible"); - } - } - window.onkeyup=function(e) { - if (e.keyCode == modkey ) { - open_link(input); - set_ui("hidden"); - hl(input); - } else if (ui_visible) { - if(e.keyCode == newwinkey) { - open_link(input, true); - set_ui("hidden"); - } else if(e.keyCode == cancelkey) - input=""; - else if(e.keyCode == openkey) { - open_link(input); - set_ui("hidden"); - } else - input += String.fromCharCode(e.keyCode); - hl(input); - } - } -} -(function() { - window.addEventListener("click", function(e) { - if ( - e.button == 1 // for middle click - //|| e.ctrlKey // for ctrl + click - ) { - var new_uri = e.srcElement.href; - if (new_uri) { - e.stopPropagation(); - e.preventDefault(); - window.open(new_uri); - } - } - }, false); -})(); - -/* See COPYING file for copyright, license and warranty details. */ - -(function() { - document.addEventListener('keydown', keybind, false); -})(); - -function keybind(e) { - if(e.altKey && String.fromCharCode(e.keyCode) == "R") - simplyread(); -} -/* See COPYING file for copyright, license and warranty details. */ - -if(window.content && window.content.document && window.content.document.simplyread_original === undefined) window.content.document.simplyread_original = false; - -function simplyread(nostyle, nolinks) -{ - /* count the number of <p> tags that are direct children of parenttag */ - function count_p(parenttag) - { - var n = 0; - var c = parenttag.childNodes; - for (var i = 0; i < c.length; i++) { - if (c[i].tagName == "p" || c[i].tagName == "P") - n++; - } - return n; - } - - var doc; - doc = (document.body === undefined) - ? window.content.document : document; - - /* if simplyread_original is set, then the simplyread version is currently active, - * so switch to the simplyread_original html */ - if (doc.simplyread_original) { - doc.body.innerHTML = doc.simplyread_original; - for (var i = 0; i < doc.styleSheets.length; i++) - doc.styleSheets[i].disabled = false; - doc.simplyread_original = false - return 0; - } - - doc.simplyread_original = doc.body.innerHTML; - doc.body.innerHTML = doc.body.innerHTML.replace(/<br[^>]*>\s*<br[^>]*>/g, "<p>"); - - var biggest_num = 0; - var biggest_tag; - - /* search for tag with most direct children <p> tags */ - var t = doc.getElementsByTagName("*"); - for (var i = 0; i < t.length; i++) { - var p_num = count_p(t[i]); - if (p_num > biggest_num) { - biggest_num = p_num; - biggest_tag = t[i]; - } - } - - if (biggest_num == 0) return 1; - - /* save and sanitise content of chosen tag */ - var fresh = doc.createElement("div"); - fresh.innerHTML = biggest_tag.innerHTML; - fresh.innerHTML = fresh.innerHTML.replace(/<\/?font[^>]*>/g, ""); - fresh.innerHTML = fresh.innerHTML.replace(/style="[^"]*"/g, ""); - if(nolinks) - fresh.innerHTML = fresh.innerHTML.replace(/<\/?a[^>]*>/g, ""); - fresh.innerHTML = fresh.innerHTML.replace(/<\/?span[^>]*>/g, ""); - fresh.innerHTML = fresh.innerHTML.replace(/<style[^>]*>/g, "<style media=\"aural\">"); /* ensures contents of style tag are ignored */ - - for (var i = 0; i < doc.styleSheets.length; i++) - doc.styleSheets[i].disabled = true; - - srstyle = - "p{margin:0ex auto;} h1,h2,h3,h4{font-weight:normal}" + - "p+p{text-indent:2em;} body{background:#cccccc none}" + - "img{display:block; max-width: 32em; padding:1em; margin: auto}" + - "h1{text-align:center;text-transform:uppercase}" + - "div#sr{width:34em; padding:8em; padding-top:2em;" + - " background-color:white; margin:auto; line-height:1.4;" + - " text-align:justify; font-family:serif; hyphens:auto;}"; - /* text-rendering:optimizeLegibility; - someday this will work, - * but at present it just ruins justify, so is disabled */ - - doc.body.innerHTML = - "<style type=\"text/css\">" + (nostyle ? "" : srstyle) + "</style>" + - "<div id=\"sr\">" + "<h1>"+doc.title+"</h1>" + fresh.innerHTML + "</div>"; - - return 0; -} |