// ==UserScript== // @name VisualCrumbs (Stack Visuals) // @namespace https://github.com/GrumpyCrouton/Userscripts // @version 3.0 // @description Customizes StackExchange to your liking. // @author GrumpyCrouton // @match *://*.stackoverflow.com/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/369480/VisualCrumbs%20%28Stack%20Visuals%29.user.js // @updateURL https://update.greasyfork.icu/scripts/369480/VisualCrumbs%20%28Stack%20Visuals%29.meta.js // ==/UserScript== (function() { 'use strict'; var $ = window.jQuery; /***** GLOBAL SITE CHANGES *****/ var header_search = $('header.top-bar form#search'); var main_container = $('body div.container'); var main_content = main_container.find('div#content'); header_search.css({ 'max-width': 'none' }); $('header ol.-secondary').css('padding-left', '0px'); main_container.append('').css({ 'max-width': 'none', 'background-color': '#f4fff3' }); main_content.css({ 'max-width': 'none', 'border-right': '1px solid #d6d9dc' }); /***** LOGOUT BUTTON IN MENU *****/ var logout_button = '\
  • \ \ \ \
  • \ '; $('li.js-topbar-dialog-corral').before(logout_button); //https://meta.stackoverflow.com/questions/372291/can-we-make-the-log-out-link-more-discoverable /***** QUESTIONS PAGE CHANGES *****/ var questions_content = main_container.find('div#questions'); questions_content.find('br.cbt').remove(); questions_content.css({ 'border-right': '1px solid #d6d9dc', 'margin-bottom': '0px' }); /***** HIDE JOBS STUFF *****/ main_content.find('div#hireme').remove(); main_container.find('li.p6').remove(); /***** HIDE ADS *****/ main_content.find('div#dfp-tsb').remove(); /***** MAINBAR *****/ var filterbuttons = $('div.grid.tabs-filter.s-btn-group.tt-capitalize'); var headline = $('h1.grid--cell.fl1.fs-headline1,h1.grid--cell.fl1.fs-headline1.mb24'); $('div.pl8.aside-cta.grid--cell').before(filterbuttons); headline.removeClass('mb24').css("margin-bottom", "0px"); var questions = $('div.grid--cell.fl1.fs-body3'); var questionCount = questions.length == 1 ? questions.html().trim().split(" ")[0] : ""; headline.html(headline.html() + " " + questionCount + ""); questions.remove(); $('div#mainbar div[class="mb24"]').remove(); filterbuttons.children('a').css("line-height", "20px"); $('#question-mini-list').css({ 'border-right': '1px solid #d6d9dc', 'border-bottom': '1px solid #d6d9dc' }); /***** RIGHT SIDEBAR *****/ $(function() { var widget_array = { 'RELATED_TAGS' : { 'old_find' : 'div#related-tags, .module.js-gps-related-tags', 'icon_path' : 'M9 1a8 8 0 1 0 0 16A8 8 0 0 0 9 1zm.81 12.13c-.02.71-.55 1.15-1.24 1.13-.66-.02-1.17-.49-1.15-1.2.02-.72.56-1.18 1.22-1.16.7.03 1.2.51 1.17 1.23zM11.77 8a5.8 5.8 0 0 1-1.02.91l-.53.37c-.26.2-.42.43-.5.69a4 4 0 0 0-.09.75c0 .05-.03.16-.18.16H7.88c-.16 0-.18-.1-.18-.15.03-.66.12-1.21.4-1.66a5.29 5.29 0 0 1 1.43-1.22c.16-.12.28-.25.38-.39a1.34 1.34 0 0 0 .02-1.71c-.24-.31-.51-.46-1.03-.46-.51 0-.8.26-1.02.6-.21.33-.18.73-.18 1.1H5.75c0-1.38.35-2.25 1.1-2.76.52-.35 1.17-.5 1.93-.5 1 0 1.79.18 2.49.71.64.5.98 1.18.98 2.12 0 .57-.2 1.05-.48 1.44z', 'inner_id' : 'related-tags' }, 'HOT_NETWORK_QUESTIONS' : { 'old_find' : 'div#hot-network-questions', 'icon_path' : 'M7.48.01c.87 2.4.44 3.74-.57 4.77-1.06 1.16-2.76 2.02-3.93 3.7C1.4 10.76 1.13 15.72 6.8 17c-2.38-1.28-2.9-5-.32-7.3-.66 2.24.57 3.67 2.1 3.16 1.5-.52 2.5.58 2.46 1.84-.02.86-.33 1.6-1.22 2A6.17 6.17 0 0 0 15 10.56c0-3.14-2.74-3.56-1.36-6.2-1.64.14-2.2 1.24-2.04 3.03.1 1.2-1.11 2-2.02 1.47-.73-.45-.72-1.31-.07-1.96 1.36-1.36 1.9-4.52-2.03-6.88L7.45 0l.03.01z', 'inner_id' : 'hot-network-questions' }, 'RELATED_QUESTIONS' : { 'old_find' : 'div.sidebar-related', 'icon_path' : 'M9 1a8 8 0 1 0 0 16A8 8 0 0 0 9 1zm.81 12.13c-.02.71-.55 1.15-1.24 1.13-.66-.02-1.17-.49-1.15-1.2.02-.72.56-1.18 1.22-1.16.7.03 1.2.51 1.17 1.23zM11.77 8a5.8 5.8 0 0 1-1.02.91l-.53.37c-.26.2-.42.43-.5.69a4 4 0 0 0-.09.75c0 .05-.03.16-.18.16H7.88c-.16 0-.18-.1-.18-.15.03-.66.12-1.21.4-1.66a5.29 5.29 0 0 1 1.43-1.22c.16-.12.28-.25.38-.39a1.34 1.34 0 0 0 .02-1.71c-.24-.31-.51-.46-1.03-.46-.51 0-.8.26-1.02.6-.21.33-.18.73-.18 1.1H5.75c0-1.38.35-2.25 1.1-2.76.52-.35 1.17-.5 1.93-.5 1 0 1.79.18 2.49.71.64.5.98 1.18.98 2.12 0 .57-.2 1.05-.48 1.44z', 'inner_id' : 'related-questions' }, 'FREQUENTLY_ASKED_QUESTIONS' : { 'old_find' : 'div.module h4:contains(Frequently Asked)', 'icon_path' : 'M11 4l2.29 2.29L10.5 9l-3-3L1 12.5 2.5 14l5-5 3 3 4.21-4.29L17 10V4z', 'inner_id' : 'frequently-asked-questions' }, 'LINKED_QUESTIONS' : { 'old_find' : 'div.sidebar-linked', 'icon_path' : 'M2.9 9c0-1.16.94-2.1 2.1-2.1h3V5H5a4 4 0 1 0 0 8h3v-1.9H5A2.1 2.1 0 0 1 2.9 9zM13 5h-3v1.9h3a2.1 2.1 0 1 1 0 4.2h-3V13h3a4 4 0 1 0 0-8zm-7 5h6V8H6v2z', 'inner_id' : 'linked-questions' }, 'QUESTION_STATS' : { 'old_find' : 'div.question-stats', 'icon_path' : 'M3 1h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3c0-1.1.9-2 2-2zm1 8v5h2V9H4zm4-5v10h2V4H8zm4 3v7h2V7h-2z', 'inner_id' : 'question-stats' }, 'PEOPLE_CHATTING' : { 'old_find' : 'div#chat-feature', 'icon_path' : 'M4 14l-3 3V3c0-1.1.9-2 2-2h12a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4zm0-8v1h10V6H4zm0-2v1h10V4H4zm0 4v1h10V8H4zm0 2v1h7v-1H4z', 'inner_id' : 'people-chatting' } }; for (var key in widget_array) { var row = widget_array[key]; var oldelem = main_content.find(row.old_find); if(row.inner_id == "frequently-asked-questions" || row.inner_id == "community-bulletin") { oldelem = oldelem.parent(); } var title = row.inner_id == "people-chatting" ? $('a#h-chat-link').parent().html() : row.inner_id.replace(/-/g, ' ').replace(/\b\S/g, function(t) { return t.toUpperCase() }); var newelem = '\
    \
    \ \ ' + title + '\
    \
    \
    \ '; oldelem.before(newelem).children('h4, a').remove().parent(); newelem = main_content.find('div#visualcrumbs-' + row.inner_id); if(row.inner_id == "related-tags") { newelem.prepend(oldelem.children()).children().wrapAll('
    ').each(function() { $(this).toggleClass('dno js-hidden js-tag grid--cell').children().slice(1).remove(); }); } else { newelem.prepend(oldelem.css('margin-bottom', '0px')); } newelem.find('p.label-key').css('margin-bottom', '0px'); console.log('VisualCrumbs: Converted ' + key); } }); })();