// ==UserScript== // @name Github Fix // @version 1 // @grant none // @run-at document-start // @include https://github.com/*/releases* // ==/UserScript== void function(){ var includeFragment=1; document.head.insertAdjacentHTML('afterbegin',''); document.addEventListener('DOMContentLoaded', function(ev){ function toggle(el){el[el.attributes.getNamedItem('open') ? 'removeAttribute': 'setAttribute']('open','')}; var el=document.querySelector('[data-action^="toggle:get-repo"]'); el && el.addEventListener('click', function(ev){toggle(this)}); var list=document.querySelectorAll('details > summary'); for (var i=0, el; el=list[i++];) el.addEventListener('click', function(ev){toggle(this.parentNode); ev.stopPropagation()}); function load(el) { var src = el.dataset.baseSrc || el.getAttribute('src'), accept = el.getAttribute('accept'); var id = el.previousElementSibling && el.previousElementSibling.id; if (!src || id!='files' && !src.match(/tree-commit|file-list|contributors_list|expanded_assets/)) return; console.log('include-fragment', el); var xhr = new XMLHttpRequest(); xhr.open('GET', src); xhr.onload = function(){if (this.status==200 && this.response) el.outerHTML=this.response}; xhr.send(); }; if (includeFragment) for (var i=0, list=document.querySelectorAll('include-fragment'), el; el=list[i++];) load(el); }); }();