feat(userstyles): add One Dark theme for GitHub

This commit is contained in:
2022-04-21 01:40:06 +01:00
parent 51014663af
commit 33d374e791

View File

@@ -0,0 +1,423 @@
// ==UserScript==
// @name One Dark GitHub Syntax Highlight
// @description Apply One Dark theme to syntax highlighting on GitHub
// @version 1.0.0
// @namespace jimeh.me
// @downloadURL https://github.com/jimeh/dotfiles/raw/main/userscripts/one-dark-github-syntax-highlight.user.js
// @updateURL https://github.com/jimeh/dotfiles/raw/main/userscripts/one-dark-github-syntax-highlight.user.js
// @inject-into content
// @run-at document-end
// @match *://*githubusercontent.com/*
// @match *://*githubstatus.com/*
// @match *://github.com/*
// ==/UserScript==
(function () {
if (
window.location.hostname == "githubusercontent.com" ||
window.location.hostname == "githubstatus.com" ||
window.location.href.match("^https?://((education|graphql|guides|raw|resources|status|developer|support|vscode-auth)\\.)?github\\.com/((?!(sponsors)).)*$")
) {
const css = `
/* borrowed from https://github.com/StylishThemes/GitHub-Dark/blob/master/src/themes/github/one-dark.css */
/*! GitHub: One Dark */
/* adapted from: https://github.com/atom/one-dark-syntax & https://github.com/Aerobird98/codemirror-one-dark-theme */
/* by https://github.com/sparcut */
:root {
--ghd-code-background: hsl(0, 0%, 8%);
--ghd-code-color: hsl(220, 14%, 71%);
}
/* comment, punctuation.definition.comment, string.comment */
.pl-c,
.pl-c span {
color: hsl(220, 10%, 40%) !important;
font-style: italic !important;
}
/* constant, entity.name.constant, variable.other.constant, variable.language,
support, meta.property-name, support.constant, support.variable,
meta.module-reference, markup.raw, meta.diff.header */
.pl-c1 {
color: hsl(29, 54%, 61%) !important;
}
/* string.regexp constant.character.escape */
.pl-sr .pl-cce {
color: hsl(187, 47%, 55%) !important;
font-weight: normal !important;
}
.pl-cn {
color: hsl(29, 54%, 61%) !important;
}
.pl-e {
/* entity */
color: hsl(29, 54%, 61%) !important;
}
.pl-ef {
/* entity.function */
color: hsl(207, 82%, 66%) !important;
}
.pl-en {
/* entity.name */
color: hsl(29, 54%, 61%) !important;
}
.pl-enc {
/* entity.name.class */
color: hsl(39, 67%, 69%) !important;
}
.pl-enf {
/* entity.name.function */
color: hsl(207, 82%, 66%) !important;
}
.pl-enm {
/* entity.name.method-name */
color: hsl(220, 14%, 71%) !important;
}
.pl-ens {
/* entity.name.section */
color: hsl(5, 48%, 51%) !important;
}
.pl-ent {
/* entity.name.tag */
color: hsl(355, 65%, 65%) !important;
}
.pl-entc {
/* entity.name.type.class */
color: hsl(39, 67%, 69%) !important;
}
.pl-enti {
/* entity.name.type.instance */
color: hsl(187, 47%, 55%) !important;
}
.pl-entm {
/* entity.name.type.module */
color: hsl(355, 65%, 65%) !important;
}
.pl-eoa {
/* entity.other.attribute-name */
color: hsl(29, 54%, 61%) !important;
}
.pl-eoac {
/* entity.other.attribute-name.class */
color: hsl(29, 54%, 61%) !important;
}
.pl-eoac .pl-pde {
/* punctuation.definition.entity */
color: hsl(29, 54%, 61%) !important;
}
.pl-eoai {
/* entity.other.attribute-name.id */
color: hsl(207, 82%, 66%) !important;
}
.pl-eoi {
/* entity.other.inherited-class */
color: hsl(95, 38%, 62%) !important;
}
.pl-k {
/* keyword, storage, storage.type */
color: hsl(286, 60%, 67%) !important;
}
.pl-ko {
/* keyword.operator */
color: hsl(220, 14%, 71%) !important;
}
.pl-kolp {
/* keyword.operator.logical.python */
color: hsl(286, 60%, 67%) !important;
}
.pl-kos {
/* keyword.other.special-method */
color: hsl(207, 82%, 66%) !important;
}
.pl-kou {
/* keyword.other.unit */
color: hsl(29, 54%, 61%) !important;
}
.pl-mai .pl-sf {
/* support.function */
color: hsl(187, 47%, 55%) !important;
}
.pl-mb {
/* markup.bold */
color: hsl(29, 54%, 61%) !important;
font-weight: bold !important;
}
.pl-mc {
/* markup.changed, punctuation.definition.changed */
color: hsl(286, 60%, 67%) !important;
}
.pl-mh {
/* markup.heading */
color: hsl(355, 65%, 65%) !important;
}
/* markup.heading punctuation.definition.heading */
.pl-mh .pl-pdh {
color: hsl(207, 82%, 66%) !important;
}
.pl-mi {
/* markup.italic */
color: hsl(286, 60%, 67%) !important;
font-style: italic !important;
}
.pl-ml {
/* markup.list */
color: hsl(187, 47%, 55%) !important;
}
.pl-mm {
/* meta.module-reference */
color: hsl(29, 54%, 61%) !important;
}
.pl-mp {
/* meta.property-name */
color: hsl(220, 9%, 55%) !important;
}
.pl-mp1 .pl-sf {
/* meta.property-value support.function */
color: hsl(220, 14%, 71%) !important;
}
.pl-mq {
/* markup.quote */
color: hsl(29, 54%, 61%) !important;
}
.pl-mr {
/* meta.require */
color: hsl(207, 82%, 66%) !important;
}
.pl-ms {
/* meta.separator */
color: hsl(220, 14%, 71%) !important;
}
/* punctuation.definition.bold */
.pl-pdb {
color: hsl(39, 67%, 69%) !important;
font-weight: bold !important;
}
/* punctuation.definition.comment */
.pl-pdc {
color: hsl(220, 10%, 40%) !important;
font-style: italic !important;
}
.pl-pdc1 {
/* punctuation.definition.constant */
color: hsl(220, 14%, 71%) !important;
}
.pl-pde {
/* punctuation.definition.entity */
color: hsl(286, 60%, 67%) !important;
}
/* punctuation.definition.italic */
.pl-pdi {
color: hsl(286, 60%, 67%) !important;
font-style: italic !important;
}
/* punctuation.definition.string, source.regexp, string.regexp.character-class */
.pl-pds {
color: hsl(95, 38%, 62%) !important;
}
.pl-pdv {
/* punctuation.definition.variable */
color: hsl(355, 65%, 65%) !important;
}
/* string punctuation.section.embedded source */
.pl-pse .pl-s1 {
color: hsl(95, 38%, 62%) !important;
}
.pl-pse .pl-s2 {
/* punctuation.section.embedded source */
color: hsl(39, 67%, 69%) !important;
}
.pl-s {
/* string */
color: hsl(95, 38%, 62%) !important;
}
.pl-s1 {
/* string */
color: hsl(95, 38%, 62%) !important;
}
.pl-s2 {
/* source */
color: hsl(39, 67%, 69%) !important;
}
.pl-mp .pl-s3 {
/* support */
color: hsl(29, 54%, 61%) !important;
}
.pl-s3 {
/* support */
color: hsl(29, 54%, 61%) !important;
}
.pl-sc {
/* support.class */
color: hsl(39, 67%, 69%) !important;
}
.pl-scp {
/* support.constant.property-value */
color: hsl(220, 14%, 71%) !important;
}
.pl-sf {
/* support.function */
color: hsl(187, 47%, 55%) !important;
}
.pl-smc {
/* storage.modifier.c */
color: hsl(220, 14%, 71%) !important;
}
/* variable.parameter.function, storage.modifier.package,
storage.modifier.import, storage.type.java, variable.other */
.pl-smi {
color: hsl(355, 65%, 65%) !important;
}
.pl-smp {
/* storage.modifier.package */
color: hsl(39, 67%, 69%) !important;
}
.pl-sok {
/* support.other.keyword */
color: hsl(29, 54%, 61%) !important;
}
.pl-sol {
/* string.other.link */
color: hsl(355, 65%, 65%) !important;
}
.pl-som {
/* support.other.module */
color: hsl(220, 14%, 71%) !important;
}
.pl-sr {
/* string.regexp */
color: hsl(187, 47%, 55%) !important;
}
/* string.regexp string.regexp.arbitrary-repitition */
.pl-sr .pl-sra {
color: hsl(187, 47%, 55%) !important;
}
.pl-src {
/* string.regexp.character-class */
color: hsl(187, 47%, 55%) !important;
}
.pl-sr .pl-sre {
/* string.regexp source.ruby.embedded */
color: hsl(39, 67%, 69%) !important;
}
.pl-st {
/* support.type */
color: hsl(187, 47%, 55%) !important;
}
.pl-stj {
/* storage.type.java */
color: hsl(39, 67%, 69%) !important;
}
.pl-stp {
/* support.type.property-name */
color: hsl(220, 9%, 55%) !important;
}
.pl-sv {
/* support.variable */
color: hsl(29, 54%, 61%) !important;
}
.pl-v {
/* variable */
color: hsl(39, 67%, 69%) !important;
}
.pl-vi {
/* variable.interpolation */
color: hsl(5, 48%, 51%) !important;
}
.pl-vo {
/* variable.other */
color: hsl(187, 47%, 55%) !important;
}
.pl-vpf {
/* variable.parameter.function */
color: hsl(220, 14%, 71%) !important;
}
/* markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted */
.pl-mi1 {
color: hsl(95, 38%, 62%) !important;
background: #020 !important;
}
/* meta.diff.header.to-file */
.pl-mdht {
color: hsl(95, 38%, 62%) !important;
background: #020 !important;
}
/* markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted */
.pl-md {
color: hsl(355, 65%, 65%) !important;
background: #200 !important;
}
/* meta.diff.header.from-file */
.pl-mdhf {
color: hsl(355, 65%, 65%) !important;
background: #200 !important;
}
/* meta.diff.range */
.pl-mdr {
color: hsl(220, 14%, 71%) !important;
font-weight: normal !important;
}
.pl-mdh {
/* meta.diff.header */
color: hsl(355, 65%, 65%) !important;
font-weight: normal !important;
}
.pl-mdi {
/* meta.diff.index */
color: hsl(355, 65%, 65%) !important;
font-weight: normal !important;
}
/* constant.other.reference.link, string.other.link */
.pl-corl {
color: hsl(355, 65%, 65%) !important;
text-decoration: underline !important;
}
.pl-ib {
/* invalid.broken */
background-color: hsl(355, 65%, 65%) !important;
}
/* invalid.broken, invalid.deprecated, invalid.unimplemented, message.error,
brackethighlighter.unmatched, sublimelinter.mark.error */
.pl-bu,
.pl-ii {
/* invalid.illegal */
background-color: hsl(0, 70%, 60%) !important;
}
.pl-mo {
/* meta.output */
color: hsl(220, 14%, 71%) !important;
}
.pl-mri {
/* markup.raw.inline */
color: hsl(95, 38%, 62%) !important;
}
.pl-ms1 {
/* meta.separator */
color: hsl(220, 14%, 71%) !important;
background-color: #373b41 !important;
}
.pl-va {
/* variable.assignment */
color: hsl(220, 14%, 71%) !important;
}
.pl-vpu {
/* variable.parameter.url */
color: hsl(220, 14%, 71%) !important;
}
.pl-entl {
/* entity.name.tag.label */
color: hsl(355, 65%, 65%) !important;
}
.pl-token.active,
.pl-token:hover {
background: hsl(207, 82%, 66%) !important;
color: hsl(0, 0%, 8%) !important;
}
`;
let styleElm = document.createElement('style');
if (styleElm.styleSheet) {
styleElm.styleSheet.cssText = css; // Support for IE
} else {
styleElm.appendChild(document.createTextNode(css));
}
document.getElementsByTagName("head")[0].appendChild(styleElm);
}
})();