Skip to content

Instantly share code, notes, and snippets.

@henriquemor
Created August 3, 2024 20:55
Show Gist options
  • Save henriquemor/e60906e382eadd5a49c90d10306dce82 to your computer and use it in GitHub Desktop.
Save henriquemor/e60906e382eadd5a49c90d10306dce82 to your computer and use it in GitHub Desktop.
Bookmarklets
// Highlights the selected text
javascript: function randomColor(brightness){ colors=['FF595E','FFCA3A','8AC926','509ece','af80ce','F4A261','ffe272']; var cor = colors[Math.floor(Math.random()*colors.length)]; return cor; }(()=>{const DEFAULT_BACKGROUND_COLOR='#'+randomColor();const e=t=>{switch(t.nodeType){case Node.TEXT_NODE:return[t];case Node.ELEMENT_NODE:case Node.DOCUMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:return Array.prototype.map.call(t.childNodes,t=>e(t)).flat();default:return[]}},t=(e,n=0)=>{switch(e.nodeType){case Node.TEXT_NODE:{if(n<e.length)return e;let r=null;for(;!(r=e.nextSibling)&&(e=e.parentNode););return r?t(r):null}case Node.ELEMENT_NODE:case Node.DOCUMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:{const r=e.childNodes,o=r.length;for(let e=n;e<o;e++){const n=t(r[e]);if(n)return n}let l=null;for(;!(l=e.nextSibling)&&(e=e.parentNode););return l?t(l):null}default:{let n=null;for(;!(n=e.nextSibling)&&(e=e.parentNode););return n?t(n):null}}},n=(e,t=e.length||e.childNodes.length)=>{switch(e.nodeType){case Node.TEXT_NODE:{if(t>0&&e.length>0)return e;let r=null;for(;!(r=e.previousSibling)&&(e=e.parentNode););return r?n(r):null}case Node.ELEMENT_NODE:case Node.DOCUMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:{const r=e.childNodes;for(let e=t;e-- >0;){const t=n(r[e]);if(t)return t}let o=null;for(;!(o=e.previousSibling)&&(e=e.parentNode););return o?n(o):null}default:{let t=null;for(;!(t=e.previousSibling)&&(e=e.parentNode););return t?n(t):null}}},r=(e,t)=>{const n=document.createElement("mark");return n.style.backgroundColor=t,e.parentNode.replaceChild(n,e),n.appendChild(e),n},o=(o,l)=>{(e=>{const r=e.startContainer,o=e.startOffset;switch(r.nodeType){case Node.TEXT_NODE:o>0&&e.setStart(r.splitText(o),0);break;case Node.ELEMENT_NODE:e.setStart(t(r,o),0)}const l=e.endContainer,a=e.endOffset;switch(l.nodeType){case Node.TEXT_NODE:a<l.length&&l.splitText(a);break;case Node.ELEMENT_NODE:const t=n(l,a);e.setEnd(t,t.length)}})(o);const a=o.commonAncestorContainer;switch(a.nodeType){case Node.TEXT_NODE:r(a,l);break;case Node.ELEMENT_NODE:const t=e(a),n=t.lastIndexOf(o.endContainer);for(let e=t.indexOf(o.startContainer);e<=n;e++)r(t[e],l)}},l=(e=window)=>{try{const t=e.getSelection();return t&&t.rangeCount>0?[t,...Array.prototype.flatMap.call(e.frames,e=>l(e))]:Array.prototype.flatMap.call(e.frames,e=>l(e))}catch(e){return console.error(e),[]}};(e=>{for(const t of l()){const n=t.rangeCount;for(let r=0;r<n;r++)try{o(t.getRangeAt(r),e)}catch(e){console.error(e)}t.removeAllRanges()}})(DEFAULT_BACKGROUND_COLOR)})();
// prompt to add new css
javascript:(function(){var newcss=window.prompt("new css rule:", "!important}");var tag=document.createElement("style");tag.type="text/css";document.getElementsByTagName("head")[0].appendChild(tag);tag[(typeof document.body.style.WebkitAppearance=="string")?"innerText":"innerHTML"]=newcss})();
// css dark "black" mode
javascript:(function(){var newcss="*:not(.chrome-extension-mutihighlight) {background-color: #0C0C0C !important;color: rgb(243, 239, 234) !important;border: none !important; background-image: none !important; background: hsl(0,0%,0%)!important}";if("\v"=="v"){document.createStyleSheet().cssText=newcss}else{var tag=document.createElement("style");tag.type="text/css";document.getElementsByTagName("head")[0].appendChild(tag);tag[(typeof document.body.style.WebkitAppearance=="string")?"innerText":"innerHTML"]=newcss}})();
// remove links
javascript: document.querySelectorAll("a").forEach(element => element.style.display="none");
// css dark mode and wide margins
javascript:(function(){var newcss=" body{max-width:40em;margin:auto}*:not(.chrome-extension-mutihighlight) {background-color: #0C0C0C !important;color: rgb(243, 239, 234) !important;border: none !important; background-image: none !important; background: hsl(0,0%,0%)!important} *:link{color:#7e69f4 !important} ";if("\v"=="v"){document.createStyleSheet().cssText=newcss}else{var tag=document.createElement("style");tag.type="text/css";document.getElementsByTagName("head")[0].appendChild(tag);tag[(typeof document.body.style.WebkitAppearance=="string")?"innerText":"innerHTML"]=newcss}})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment