sanereddit

Sanereddit will remove tons of bloat, allowing reddit to be used in a sane manner.

  1. // ==UserScript==
  2. // @name sanereddit
  3. // @namespace sanereddit
  4. // @version 1.6
  5. // @grant none
  6. // @include http*://*.reddit.com/*
  7. // @license MIT
  8. // @description Sanereddit will remove tons of bloat, allowing reddit to be used in a sane manner.
  9. // ==/UserScript==
  10. (function() {
  11. function getScrollbarWidth() {
  12. var outer = document.createElement("div");
  13. outer.style.visibility = "hidden";
  14. outer.style.width = "100px";
  15. outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps
  16. document.body.appendChild(outer);
  17. var widthNoScroll = outer.offsetWidth;
  18. // force scrollbars
  19. outer.style.overflow = "scroll";
  20. // add innerdiv
  21. var inner = document.createElement("div");
  22. inner.style.width = "100%";
  23. outer.appendChild(inner);
  24. var widthWithScroll = inner.offsetWidth;
  25. // remove divs
  26. outer.parentNode.removeChild(outer);
  27. return widthNoScroll - widthWithScroll;
  28. }
  29. $(function() {
  30. var sbWidth = getScrollbarWidth();
  31. var sideBar = document.getElementsByClassName('side') [0];
  32. var linkList = document.getElementsByClassName('linklisting') [0];
  33. var commentarea = document.getElementsByClassName('commentarea')[0];
  34. var comments = document.getElementsByClassName('comment');
  35. var mds = document.getElementsByClassName('md');
  36. var root= document.compatMode=='BackCompat'? document.body : document.documentElement;
  37. function go() {
  38. $("a.title").css('fontSize','small');
  39. $("div.thing").css('marginBottom', '0px');
  40. $("div.footer-parent").hide();
  41. $("div.content").css("marginTop","0px");
  42. sideBar.style.display = 'none';
  43. linkList.style.width = (root.clientWidth - sbWidth) + 'px';
  44. if (commentarea !== undefined){
  45. commentarea.style.width= (root.clientWidth - sbWidth) + 'px';//'100%';
  46. }
  47. var i = 0;
  48. for (i = 0; i < comments.length; i++) {
  49. comments[i].style.width = '100%';
  50. }
  51. for (i = 0; i < mds.length; i++) {
  52. var elem = mds[i];
  53. var marginRight = 0;
  54. var depth = $(elem).parentsUntil("div.commentarea").filter('div.thing').length;
  55. elem.parentElement.style.width = (root.clientWidth - sbWidth - (depth * 31)) + 'px';
  56. elem.style.maxWidth = '100%';
  57. }
  58. }
  59. // Attach it the resize event
  60. window.addEventListener('resize', function (event) {
  61. go();
  62. });
  63. // Run it once initially
  64. go();
  65. });
  66. })();
  67.