<!-- thumbnail: https://avatars.githubusercontent.com/u/84144502?s=200&v=4 --> <!-- version: 1.2.0 --> <!-- tag: design --> <!-- excerpt: Restore syntax highlighting on revision and review pages --> ### About Some time ago, Stack Exchange moved to [highlight.js](https://github.com/highlightjs/highlight.js) v11. One of the breaking changes of this version was the [removal of the HTML auto-passthru](https://github.com/highlightjs/highlight.js/blob/main/VERSION_11_UPGRADE.md#feature-removal), which SE uses to indicate addition/deletion in diffs (that is, nested `span`s in `code` elements). As a result, highlighting broke in code blocks for diffs. The bug was reported [on MSO](https://meta.stackoverflow.com/q/408781) and [MSE](https://meta.stackexchange.com/q/366899). A week later, a "hotfix" was pushed which has been out for... 2 months! Essentially, it disabled highlight.js entirely on the pages where there were diffs (revisions and suggested edits). ### What is this? This is a [highlight.js plugin](https://highlightjs.readthedocs.io/en/latest/plugin-api.html). The idea as well as a large part of the code have been taken from [this GitHub issue](https://github.com/highlightjs/highlight.js/issues/2889). ### Screenshots From revisions: [![Diff highlighting in revisions][1]][1] From suggested edits: [![Diff highlighting in suggested edits][2]][2] ### License The script is licensed under the [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later) license. ### Download [GitHub](https://github.com/userscripters/restore-highlightjs/blob/master/restore_highlightjs.user.js) | [Install](https://raw.githubusercontent.com/userscripters/restore-highlightjs/master/restore_highlightjs.user.js) ### Platform The script should work in most browsers and userscript managers. It has been tested on Chrome using Tampermonkey. ## Contact Author: [double-beep](https://stackoverflow.com/users/10607772) Organization: [UserScripters](https://github.com/userscripters) Please, submit bug reports [on the source repository](https://github.com/userscripters/restore-highlightjs/issues). Before adding a new one, please check if it hasn't been raised before. You can also [drop by to chat](https://chat.stackoverflow.com/rooms/214345), we are a friendly bunch. ## Code [Source code](https://github.com/userscripters/restore-highlightjs) written in Vanilla JS. Contributions are welcome, you can always [submit a PR here](https://github.com/userscripters/restore-highlightjs/pulls). ## Changelog | Version | Changes | | ------- | ------- | | [1.2.0](https://github.com/userscripters/restore-highlightjs/blob/c72b6276d738acf8033bde4da3e1a59724499a2f/restore_highlightjs.user.js) | Highlight code in the suggested edits editor | | [1.1.0](https://github.com/userscripters/restore-highlightjs/blob/8ea918744ea7f4e4bf196db59a9e95db02e81765/restore_highlightjs.user.js) | Reduce reliance on Stack Exchange's JS by fetching the preferred language ourselves | | [1.0.3](https://github.com/userscripters/restore-highlightjs/blob/5e5c84a18c57115505d4cb4fe6d8c20b63ba326a/restore_highlightjs.user.js) | Use the selectors Stack Exchange uses | | [1.0.2](https://github.com/userscripters/restore-highlightjs/blob/959ad12d0082df742e51f0aef30910afa016864e/restore_highlightjs.user.js) | Prevent double-highlighting of some elements, disable unescaped HTML warnings ([after request](https://chat.stackoverflow.com/transcript/message/53028641)) | | [1.0.1](https://github.com/userscripters/restore-highlightjs/blob/949ffa46a07910b26b0d3ab9e9ac3b94d52eb4fc/restore_highlightjs.user.js) | Update userscript metadata (`@include`, `@license`, `@homepageURL` and `@supportURL`) | | [1.0.0](https://github.com/userscripters/restore-highlightjs/blob/fe28a5dd6d5cc74948ca07a69dada2e7043ab539/restore_highlightjs.user.js) | Initial release | [1]: https://i.sstatic.net/tymuh.png [2]: https://i.sstatic.net/4OyFK.png