The Stack Overflow Unofficial Patch (SOUP) is a project to collect various minor client-side bugfixes, work-arounds and usability improvements for Stack Overflow and other Q&A sites on the Stack Exchange Network into a single user script.
The intent of SOUP is not to make any substantial or controversial changes to the Stack Exchange user interface, but to fix minor problems and omissions that the SE developers have overlooked or haven't got around to fixing yet. By combining these minor patches into a single user script, they become easier to install and maintain.
The easiest way to install SOUP is to use the GreaseMonkey (for Firefox) or TamperMonkey (for Chrome) extension for managing user scripts. (Other similar extensions, like Scriptish or NinjaKit, should also work.) After installing the extension, clicking the "download / install" button below should bring up a dialog asking you if you want to install SOUP. Answer "yes".
SOUP can also be used on other browsers with compatible user script support, such as Opera or Safari. For detailed instructions on how to enable and install user scripts on different browsers, see the "script" tag wiki on StackApps.
When installing SOUP on Opera, please remove the "
.user" part from the file name to disable GreaseMonkey compatibility mode. While SOUP can run in either native or compatibility mode, a few MathJax-related fixes require native mode.
SOUP has not yet been tested on Safari, but in principle it should work. If you do try to use it, please let me know how / if it works.
SOUP v1.12 includes fixes or workarounds for the following issues:
- Add a non-breaking space to “reopen (1)” and its ilk (CSS)
- Layout fix for Firefox in “Zoom text only” mode (CSS)
- Background in OP's user name can obscure text in multiline comments (CSS)
- Images can be pushed outside the boundaries of a post by using nested lists (CSS)
- Ugly overflows when editing a deleted answer inline (CSS)
- <hr/>'s do not get rendered in deleted answers (CSS)
- Mouse cursor doesn't change to pointer when hovering “full site” on mobile (CSS)
- Does the spoiler markdown work on images? (CSS)
- The CSS for spoilers is a mess. Let's fix it! (not CSS only, supersedes above fix)
- <kbd> (yes, still <kbd>) doesn't play nice with lists (CSS)
- Add spacing / padding to “Protected By…” and “Not the answer you're looking for” (CSS)
- Excerpt of privilege is below privilege instead of in front (CSS)
- Extra blue line appearing in the top bar (Firefox only) (CSS)
- Long math expressions cause comments to overlap sidebar (CSS)
- Links in promotion ads are black on black, thus invisible (CSS, skeptics.SE only)
- “Sign up for the newsletter” button overflows the frame on Firefox / Linux (CSS, math.SE only)
- Preformatted text in Japanese doesn't line up properly (CSS, japanese.SE only)
- Hovering over the community links changes the header height (CSS)
- Ignoring somebody screws up the avatar list (CSS, chat)
- The reply buttons in chat shouldn't reposition themselves on pinged messages (CSS, chat)
- Getting Red Line under tags (CSS, chat)
- U+0008 inserted into chat @-pings (chat)
- Problem in css style loading in Search Bar after refresh page when using FF (chat)
- Clicking on tags broken?
- Cannot navigate into the multicollider with keyboard
- Un-fade low-score answers on rollover or click
- Allow flagging a comment after upvoting it
- The branch prediction answer is overflowing
- Confirming context menu entries via Enter triggers comment to be posted
- New top bar should render avatar with a transparent background
- CSS for daily site access calendar on profile page fails to load over HTTPS
- Election comments have no permalink link
- All internal links on Stack Exchange sites should be protocol-relative
- Please put answers underneath questions in Close review queue
- Soft-hyphen hides subsequent text when using Opera 12.16
- Add thousand separator for helpful flags count in user profiles
- Add delete button on-the-fly when reviewing flags
- Chat link in top bar isn't site-specific when using HTTPS
- Render MathJax in the 10k tools (math)
- Can we have the suggested questions' titles parsed by default? (math)
- Missing MathJaX in the duplicate subtab of the close review queue (math)
- The scope of \newcommand is the entire page (math)
- MathJax preview broken when equations contain
- Exclude TeX.SE question titles from MathJax parsing in Hot Network Questions (math)
- chat: This fix applies to the Stack Exchange Network chat.
- math: This fix applies only to sites using MathJax for LaTeX math rendering.
If you know a user script or stylesheet patch for SO or other SE sites that would be suitable for inclusion in SOUP, or an unfixed issue that you believe might be worth patching, please let me know (e.g. by posting a comment or an answer the SOUP page on StackApps).
To be included in SOUP, a patch should:
address a known unfixed issue: If you find a new interface bug on SO, please report it on MSO first, and give the devs some time to fix it. There's no hard limit on this, but there's not much point in patching something via SOUP if it's going to be fixed by the devs in a few minutes / hours / days anyway.
be simple and fast: The mean length of individual patches in SOUP (excluding shared infrastructure) is currently around three lines of code. If adding a new patch would significantly increase the length of SOUP, cause a noticeable performance impact or introduce a significant external dependency (e.g. new syntax highlighting rules), it's probably not suitable.
be uncontroversial: SOUP is intended to be a "least common denominator" patch set for everyone. While a simple
[status-declined]doesn't necessarily disqualify an issue from being included in SOUP (sometimes it just means the devs are feeling lazy ;-), if a substantial number of people say they don't want it, it doesn't go in. In particular, patches that add significant new functionality, significantly change the appearance of the site or repaint the bikeshed are not suitable for SOUP.
be safe and unobtrusive: This goes with the above points: if any patch in SOUP turns out to cause undesirable side effects (including usability or performance issues) on some platforms, it should be either fixed or removed.
If you notice that any fix included in SOUP is not working for you, causes undesirable side effects or has become obsolete (e.g. because the bug it's working around was fixed), please let me know!