small refactor

This commit is contained in:
2026-04-21 06:00:03 +02:00
parent 4b62a9a64b
commit 26924a5c01
27 changed files with 2149 additions and 789 deletions
+10
View File
@@ -0,0 +1,10 @@
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
Theme: GitHub Dark
Description: Dark theme as seen on github.com
Author: github.com
Maintainer: @Hirse
Updated: 2021-05-15
Outdated base version: https://github.com/primer/github-syntax-dark
Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
+1244
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(r,o){"use strict";var e,a="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",i=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),i=parseInt(r.dataset.lineNumber);if(o==i)return n;var a,l=t.textContent,s=r.textContent;for(i<o&&(a=o,o=i,i=a,a=l,l=s,s=a);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<i;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(i)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,i=t.length;o<i;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[a,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(i)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersBlockSync=function(e,n){if("object"!=typeof e)return;e.innerHTML=f(e,n)},r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[a,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
+228
View File
@@ -0,0 +1,228 @@
:root {
/* Unix/Terminal Aesthetic Palette */
--bg: #0d1117;
--text: #c9d1d9;
--text-dim: #8b949e;
--border: #30363d;
--primary: #238636;
--primary-hover: #2ea043;
--secondary: #21262d;
--secondary-hover: #30363d;
--accent: #58a6ff;
--highlight: rgba(241, 250, 140, 0.1); /* Subtle Dracula Yellow */
--margin: 1rem;
--line-height: 1.5;
--font-mono: "Fira Code", "JetBrains Mono", "Cascadia Code", "Source Code Pro", "Menlo", "Monaco", "Consolas", monospace;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html, body {
height: 100%;
width: 100%;
font-family: var(--font-mono);
background-color: var(--bg);
color: var(--text);
overflow: hidden;
}
body {
display: flex;
flex-direction: column;
}
#nav {
display: flex;
height: 3.5rem;
padding: 0 var(--margin);
align-items: center;
justify-content: space-between;
background-color: var(--bg);
flex-shrink: 0;
}
.nav-left {
display: flex;
align-items: center;
gap: 1rem;
}
.nav-left .title {
font-size: 1.1rem;
font-weight: 600;
text-decoration: none;
color: var(--text-dim);
letter-spacing: -0.02em;
}
.nav-left .title:hover { color: var(--text); }
.source-link {
font-size: 0.75rem !important;
padding: 0.2rem 0.5rem !important;
opacity: 0.7;
}
.nav-right {
display: flex;
align-items: center;
gap: 1rem;
}
.nav-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.4rem 0.8rem;
border-radius: 4px;
font-size: 0.85rem;
font-weight: 500;
text-decoration: none;
cursor: pointer;
border: 1px solid var(--border);
font-family: inherit;
transition: all 0.1s ease;
}
.primary { background-color: var(--primary); color: #ffffff; }
.secondary { background-color: var(--secondary); color: var(--text); }
#metadata {
display: flex;
align-items: center;
gap: 0.75rem;
font-size: 0.8rem;
color: var(--text-dim);
}
main {
flex-grow: 1;
overflow: hidden;
display: flex;
flex-direction: column;
padding: 0 var(--margin) var(--margin) var(--margin);
}
.content-wrapper {
flex-grow: 1;
overflow-y: auto;
overflow-x: hidden;
width: 100%;
height: 100%;
scroll-behavior: smooth;
}
#paste-form {
height: 100%;
display: flex;
flex-direction: column;
}
textarea {
flex-grow: 1;
width: 100%;
font-family: inherit;
font-size: 0.95rem;
line-height: var(--line-height);
border: none;
outline: none;
background-color: transparent !important;
color: inherit;
resize: none;
padding: 0.5rem;
white-space: pre;
overflow: auto;
}
pre, code {
background: transparent !important;
padding: 0 !important;
margin: 0 !important;
font-family: inherit !important;
font-size: inherit !important;
line-height: var(--line-height) !important;
}
code.with-line-numbers {
display: block;
}
.line {
display: grid;
grid-template-columns: calc(var(--digits, 1) * 1ch + 2rem) minmax(0, 1fr);
width: 100%;
min-height: calc(1em * var(--line-height));
/* Breathing room when targeting a line */
scroll-margin-top: 2rem;
}
.line-number {
grid-column: 1;
text-align: right;
padding-right: 1rem;
color: var(--text-dim);
opacity: 0.3;
border-right: 1px solid var(--border);
user-select: none;
text-decoration: none;
cursor: pointer;
font-size: 0.9rem;
}
.line-number:hover {
opacity: 0.8;
color: var(--accent);
}
.line-code {
grid-column: 2;
padding-left: 1rem;
white-space: pre-wrap;
word-break: break-all;
}
/*
Line Highlight via URL Hash (#L315)
*/
.line:target {
background-color: var(--highlight);
}
.line:target .line-number {
opacity: 1;
color: #f1fa8c; /* Dracula Yellow */
border-right-color: #f1fa8c;
border-right-width: 2px;
}
/* Selection */
::selection { background: rgba(59, 130, 246, 0.4); color: #ffffff; }
/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--secondary); }
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
@media (max-width: 640px) {
#metadata { display: none; }
.line { grid-template-columns: 1fr; }
.line-number { display: none; }
.line-code { padding-left: 0; }
}