您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds syntax highlighting to the Unity Documentation. Forked from hyblocker.
当前为
- // ==UserScript==
- // @name Unity Docs Syntax Hightligher Fork
- // @namespace https://github.com/Maoyeedy
- // @version 1.2.2
- // @author Maoyeedy
- // @license MIT
- // @description Adds syntax highlighting to the Unity Documentation. Forked from hyblocker.
- // @icon https://unity.com/favicon.ico
- //
- // @match https://docs.unity3d.com/Manual/*
- // @match https://docs.unity3d.com/ScriptReference/*
- // @match https://docs.unity3d.com/*/Manual/*
- // @match https://docs.unity3d.com/*/ScriptReference/*
- //
- // @grant GM_getResourceText
- // @grant GM_addStyle
- //
- // @require https://cdn.jsdelivr.net/npm/prismjs@1/prism.min.js
- // @require https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-c.min.js
- // @require https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-clike.min.js
- // @require https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-csharp.min.js
- // @require https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-hlsl.min.js
- // @resource PRISM_THEME_LIGHT https://cdn.jsdelivr.net/gh/PrismJS/prism-themes/themes/prism-one-light.min.css
- // @resource PRISM_THEME_DARK https://cdn.jsdelivr.net/gh/PrismJS/prism-themes/themes/prism-duotone-dark.min.css
- //
- // Recommended Light Themes
- // https://cdn.jsdelivr.net/npm/prismjs/themes/prism.min.css
- // https://cdn.jsdelivr.net/gh/PrismJS/prism-themes/themes/prism-one-light.min.css
- //
- // Recommended Dark Themes
- // https://cdn.jsdelivr.net/gh/PrismJS/prism-themes/themes/prism-xonokai.min.css
- // https://cdn.jsdelivr.net/gh/PrismJS/prism-themes/themes/prism-duotone-dark.min.css
- // https://cdn.jsdelivr.net/gh/PrismJS/prism-themes/themes/prism-duotone-space.min.css
- // Extra Themes
- // https://github.com/PrismJS/prism-themes
- //
- // ==/UserScript==
- (function () {
- "use strict"
- GM_addStyle(GM_getResourceText("PRISM_THEME_LIGHT"))
- /* InjectCustomCSS */
- const customCSS = `
- code[class*="language-"],
- pre[class*="language-"] {
- border-radius: .5em;
- font-family: 'Jetbrains Mono', monospace !important;
- font-size: 0.875em !important;
- line-height: 1.5 !important;
- }
- .token.keyword,
- .token.bold {
- font-weight: normal !important;
- }
- `
- const styleElement = document.createElement("style")
- styleElement.setAttribute("type", "text/css")
- styleElement.appendChild(document.createTextNode(customCSS))
- document.head.appendChild(styleElement)
- /* Create Button */
- const switchButton = document.createElement("button")
- switchButton.style.cursor = "pointer"
- switchButton.style.position = "fixed"
- switchButton.style.bottom = "16px"
- switchButton.style.right = "16px"
- switchButton.style.width = "32px"
- switchButton.style.height = "32px"
- switchButton.style.borderRadius = "16px"
- switchButton.style.border = "1px solid #2a2734"
- switchButton.style.fontSize = "16px"
- switchButton.style.paddingBottom = "4px"
- switchButton.style.backgroundColor = "#f9f9f9"
- switchButton.style.color = "#2a2734"
- switchButton.textContent = "🌞"
- document.body.appendChild(switchButton)
- /* Switch between dark and light themes */
- let isDarkTheme = false
- switchButton.addEventListener("click", () => {
- if (isDarkTheme) {
- GM_addStyle(GM_getResourceText("PRISM_THEME_LIGHT"))
- switchButton.style.backgroundColor = "#f9f9f9"
- switchButton.style.color = "#2a2734"
- switchButton.textContent = "🌞"
- isDarkTheme = false
- } else {
- GM_addStyle(GM_getResourceText("PRISM_THEME_DARK"))
- switchButton.style.backgroundColor = "#2a2734"
- switchButton.style.color = "#f9f9f9"
- switchButton.textContent = "🌙"
- isDarkTheme = true
- }
- })
- })()
- const CSHARP = 0
- const HLSL = 1
- var waitForGlobal = function (key, callback) {
- if (window[key]) {
- callback()
- } else {
- setTimeout(function () {
- waitForGlobal(key, callback)
- }, 100)
- }
- }
- function waitForLangLoad (lang, callback) {
- if (Prism.util.getLanguage(lang) != null) {
- callback()
- } else {
- setTimeout(function () {
- waitForLangLoad(lang, callback)
- }, 100)
- }
- }
- function detectCodeLanguage (elem) {
- if (elem.classList.contains("codeExampleCS")) {
- return CSHARP
- }
- if (
- elem.innerHTML.match(/CGPROGRAM|ENDCG|CGINCLUDE|#pragma|SubShader \"/g) !=
- null
- ) {
- return HLSL
- }
- return CSHARP
- }
- waitForGlobal("Prism", () => {
- waitForLangLoad("csharp", () => {
- waitForLangLoad("hlsl", () => {
- document.querySelectorAll(".content-wrap pre").forEach((el) => {
- el.innerHTML = el.innerHTML.replace(/\<br\>/g, "\n")
- if (detectCodeLanguage(el) == CSHARP) {
- el.classList.add("language-csharp")
- } else {
- el.classList.add("language-hlsl")
- }
- if (el.firstChild.nodeName != "CODE") {
- el.innerHTML = `<code>${el.innerHTML}</code>`
- }
- })
- })
- })
- })