// ==UserScript== // @name Go.dev Code Highlight // @namespace GolangDevNamespace // @version 1.0 // @description Golang code highlighter // @author Anton Vi // @match https://*.go.dev/* // @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/go.min.js // @grant GM_getResourceURL // @license GNU GPLv3 // @downloadURL none // ==/UserScript== (function() { 'use strict'; start(); })(); function start() { let css = 'pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf!important;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}'; let style = document.createElement('style'); let cssText = document.createTextNode(css); style.appendChild(cssText); document.head.appendChild(style); // loop pre-s let pre_s = document.getElementsByTagName('pre'); for (let el of pre_s) { let text = el.innerHTML; el.innerHTML = ''; let code = document.createElement('code'); code.className = 'language-go'; code.innerHTML = text; el.appendChild(code); } // load scripts with timeout setTimeout(() => { hljs.highlightAll(); }, 100) }