// ==UserScript== // @name Prettier preformatted code for lib.rs // @namespace https://github.com/StaticPH // @match https://lib.rs/crates/* // @version 1.0 // @createdAt 7/5/2020 // @author StaticPH // @description Makes
 blocks on lib.rs look more like they do on crates.io; lib.rs is so much faster thanks to reduced JS use, but it's not as pretty.
// @license        MIT
// @updateURL      https://raw.githubusercontent.com/StaticPH/Userscripts/master/prettier_librs_preformatted_code.user.js
// @downloadURL    https://raw.githubusercontent.com/StaticPH/Userscripts/master/prettier_librs_preformatted_code.user.js
// @homepageURL    https://github.com/StaticPH/UserScripts
// @supportURL     https://github.com/StaticPH/UserScripts/issues
// @icon           https://lib.rs/favicon.png
// @grant          GM_addStyle
// @run-at         document-start
// ==/UserScript==

GM_addStyle(`
	code[lang], pre[lang], :not(p) pre:not(code) {
		color: #fff;
		background: 0 0;
		font-size: 1em;
		/*
		text-align: left;
		text-shadow: 0 -.1em .2em #000;
		white-space: pre;
		word-spacing: normal;
		word-break: normal;
		word-wrap: normal;
		*/
		line-height: 1.5;
	}
	:not(pre)>code[lang], pre[lang], :not(p) pre:not(code) {
		background: #141414;
	}
	pre[lang], :not(p) pre:not(code) {
		border-radius: .5em;
		border: .3em solid #545454;
		/* box-shadow: 1px 1px 0.5em #000 inset; */
		margin: .5em 0;
		/* overflow: auto; */
		padding: 1em;
	}
	:not(pre)>code[lang] {
		border-radius: .3em;
		border: .13em solid #545454;
		/* box-shadow: 1px 1px .3em -.1em #000 inset; */
		padding: .15em .2em .05em;
		white-space: normal
	}
`);

// Only use this if changing the font size from 0.9em to 1em as above results in some code blocks wrapping for just 3-4 characters. Can mess with layout on pages where this is not a problem.
/*
GM_addStyle(`
	#deps {
		max-height: min-content;
	}
	.about-crate {
		min-width: inherit;
	}
	#readme-deps>div {
		min-width: 100%;
	}
	#readme-deps, .about-crate {
		max-width: min-content;
	}
`)
*/



/* Or if it's really necessary:
(function() {
	let css = ` CSS HERE `;
	if (typeof GM_addStyle != "undefined") {
		GM_addStyle(css);
	}
	else {
		let node = document.createElement("style");
		node.type = "text/css";
		node.appendChild(document.createTextNode(css));
		let heads = document.getElementsByTagName("head");
		if (heads.length > 0) {
			heads[0].appendChild(node);
		} else {
			// Somehow, the page doesn't seem to have a  yet. As such, just insert this new element wherever you can
			document.documentElement.appendChild(node);
		}
	}
})();
*/