This commit is contained in:
2026-03-28 17:35:17 +00:00
commit a08229a866
20 changed files with 6055 additions and 0 deletions

1
assets/css/prism-sweetie.min.css vendored Normal file
View File

@@ -0,0 +1 @@
pre[class*=language-]{--padding-y:var(--am-prism-padding-y, 1rem);--padding-x:var(--am-prism-padding-x, 1rem);padding:var(--padding-y) var(--padding-x);overflow:auto;font-size:var(--am-prism-font-size,.85em);border-radius:var(--am-prism-border-radius,.4em)}pre>code[class*=language-]{padding:initial;font-size:1em;font-weight:400;font-family:var(--am-prism-font-family,ui-monospace),monospace;line-height:var(--am-prism-line-height,1.5);background-color:initial}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-] .line-numbers-rows{box-sizing:content-box;margin:calc(var(--padding-y) * -1) 0;padding:var(--padding-y) 0}.line-numbers.line-numbers .line-numbers-rows{border-right-width:var(--am-prism-border-width,1px);border-right-color:var(--am-prism-border-color)}.line-numbers .line-numbers-rows>span:before{color:var(--am-prism-line-numbers-color)}div.code-toolbar>.toolbar{top:.3rem!important;right:.3rem!important}div.code-toolbar>.toolbar>.toolbar-item>button.copy-to-clipboard-button{display:inline-flex;padding:0 .75em;font-size:var(--am-prism-font-size,.8em);font-family:var(--am-prism-font-family,ui-monospace),monospace;font-weight:600!important;line-height:2.25em;color:var(--am-prism-copy-color);background-color:var(--am-prism-copy-bg);border-radius:calc(var(--am-prism-border-radius, .4em) - .1em);cursor:pointer;box-shadow:none;opacity:1;transition:opacity .2s}div.code-toolbar>.toolbar>.toolbar-item>button.copy-to-clipboard-button:hover{opacity:.8}div.code-toolbar>.toolbar>.toolbar-item>button.copy-to-clipboard-button:focus{opacity:1}code[class*=language-],pre[class*=language-]{color:#202023}pre[class*=language-]{background:#bbbbce}:not(pre)>code[class*=language-]{padding:.1em .3em;border-radius:.3em;color:#202023;background:#bbbbce}pre[data-line]{position:relative}pre[class*=language-]>code[class*=language-]{position:relative;z-index:1}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:#fff8c5;box-shadow:inset 5px 0 0 #eed888;z-index:0;pointer-events:none;line-height:inherit;white-space:pre}.namespace{opacity:.7}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8989a9}.token.operator,.token.punctuation{color:#0c5090}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.class-name,.token.symbol,.token.tag{color:#ae580e}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#287f0d}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#287f0d}.token.atrule,.token.attr-value,.token.keyword{color:#0c5090}.token.function{color:#a00c79}.token.macro,.token.important,.token.regex,.token.variable{color:#9437ff}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}:root{--am-prism-line-numbers-color:#18181a77;--am-prism-border-color:#18181a22;--am-prism-copy-color:#202023aa;--am-prism-copy-bg:#78789d22}html[class*="-dark"],html[class*="dark-"],.dark{& code[class*=language-],& pre[class*=language-]{color:#d3d7de}& pre[class*=language-]{background:#303040}& :not(pre)>code[class*=language-]{padding:.1em .3em;border-radius:.3em;color:#bdbdbd;background:#303040}& pre[data-line]{position:relative}& pre[class*=language-]>code[class*=language-]{position:relative;z-index:1}& .line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:#2f2a1e;box-shadow:inset 5px 0 0 #674c16;z-index:0;pointer-events:none;line-height:inherit;white-space:pre}& .namespace{opacity:.7}& .token.cdata,& .token.comment,& .token.doctype,& .token.prolog{color:#798399}& .token.punctuation,& .token.operator,& .token.variable{color:#73a3f3}& .token.boolean,& .token.constant,& .token.deleted,& .token.number,& .token.property,& .token.symbol,& .token.class-name,& .token.tag{color:#e7a06a}& .token.attr-name,& .token.builtin,& .token.char,& .token.inserted,& .token.selector,& .token.string{color:#89c252}& .language-css .token.string,& .style .token.string,& .token.entity,& .token.url{color:#89c252;background:#161b22}& .token.atrule,& .token.keyword{color:#73a3f3}& .token.attr-value,& .token.function{color:#d087e8}& .token.macro,& .token.important,& .token.regex{color:#b094e2}& .token.bold,& .token.important{font-weight:700}& .token.italic{font-style:italic}& .token.entity{cursor:help}&{--am-prism-line-numbers-color:#bdbdbd55;--am-prism-border-color:#bdbdbd22;--am-prism-copy-color:#d3d7de;--am-prism-copy-bg:#707b8722}}

1372
assets/css/styles.min.css vendored Normal file

File diff suppressed because it is too large Load Diff

343
assets/css/tailwind.css Normal file
View File

@@ -0,0 +1,343 @@
@import url("https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;500;700&display=swap");
@import url("https://unpkg.com/@catppuccin/palette/css/catppuccin.css");
@import "tailwindcss";
/* User content */
@source "../../../content";
/* User templates */
@source "../../../templates";
/* Theme templates */
@source "../../templates";
/* Use dark class for dark theme */
@custom-variant dark (&:where(.dark, .dark *));
@layer base {
/* Buttons use pointer cursor */
button:not(:disabled),
[role="button"]:not(:disabled) {
cursor: pointer;
}
}
/*
* Fix some code rendering bugs with PrismJS
* See https://github.com/PrismJS/prism/issues/2443
*/
@layer utilities {
.table {
display: initial;
}
}
/* Colorscheme, using sweetie palette */
:root {
--base: var(--ctp-latte-base);
--base-alt: var(--ctp-latte-mantle);
--surface: var(--ctp-latte-surface0);
--text: var(--ctp-latte-text);
--text-alt: var(--ctp-latte-subtext1);
--grey: var(--ctp-latte-overlay1);
--dark-grey: var(--ctp-latte-overlay0);
--magenta: var(--ctp-latte-mauve);
--red: var(--ctp-latte-red);
--orange: var(--ctp-latte-peach);
--yellow: var(--ctp-latte-yellow);
--green: var(--ctp-latte-green);
--teal: var(--ctp-latte-teal);
--cyan: var(--ctp-latte-sky);
--blue: var(--ctp-latte-blue);
--violet: var(--ctp-latte-lavender);
}
:root.dark {
--base: var(--ctp-mocha-base);
--base-alt: var(--ctp-mocha-mantle);
--surface: var(--ctp-mocha-surface0);
--text: var(--ctp-mocha-text);
--text-alt: var(--ctp-mocha-subtext1);
--grey: var(--ctp-mocha-overlay1);
--dark-grey: var(--ctp-mocha-overlay0);
--magenta: var(--ctp-mocha-mauve);
--red: var(--ctp-mocha-red);
--orange: var(--ctp-mocha-peach);
--yellow: var(--ctp-mocha-yellow);
--green: var(--ctp-mocha-green);
--teal: var(--ctp-mocha-teal);
--cyan: var(--ctp-mocha-sky);
--blue: var(--ctp-mocha-blue);
--violet: var(--ctp-mocha-lavender);
}
@theme static {
--font-sans:
"Fira Mono", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-mono:
"Fira Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace;
--color-base: var(--base);
--color-base-alt: var(--base-alt);
--color-surface: var(--surface);
--color-text: var(--text);
--color-text-alt: var(--text-alt);
--color-grey: var(--grey);
--color-dark-grey: var(--dark-grey);
--color-red: var(--red);
--color-orange: var(--orange);
--color-green: var(--green);
--color-teal: var(--teal);
--color-yellow: var(--yellow);
--color-blue: var(--blue);
--color-magenta: var(--magenta);
--color-violet: var(--violet);
--color-cyan: var(--cyan);
}
/* Overall design */
html {
scrollbar-color: var(--blue) var(--surface);
@apply scroll-smooth tabular-nums font-sans;
}
body {
@apply bg-base text-text antialiased font-medium;
}
main a {
@apply underline hover:text-blue;
}
a.icon {
@apply no-underline;
}
a {
@apply transition-colors duration-200 ease-in-out;
}
hr {
/* brightness-120 = #39394b */
@apply text-base-alt dark:brightness-120;
}
header,
footer {
@apply bg-surface text-text-alt;
}
h1,
h2,
h3,
h4,
h5,
h6 {
@apply font-bold;
}
h1 {
@apply text-3xl;
}
h2 {
@apply text-2xl;
counter-increment: h2;
counter-reset: h3;
}
h3 {
@apply text-xl;
counter-increment: h3;
counter-reset: h4;
}
h4 {
@apply text-lg;
counter-increment: h4;
}
h5 {
counter-increment: h5;
}
h6 {
@apply font-semibold;
counter-increment: h6;
}
p {
@apply leading-relaxed py-2;
}
strong {
@apply font-semibold;
}
ul {
@apply list-disc;
}
ol {
@apply list-decimal;
}
ul,
ol {
@apply leading-relaxed;
}
nav ul,
nav ol {
@apply mx-2 space-y-0 list-none;
}
main ul {
@apply pl-4;
}
/* Margins */
main h2,
article h2,
section h2 {
@apply mt-10;
}
main h3,
article h3,
section h3 {
@apply mt-8;
}
main h4,
article h4,
section h4 {
@apply mt-6;
}
main h5,
article h5,
section h5 {
@apply mt-4;
}
main h6,
article h6,
section h6 {
@apply mt-2;
}
/* Visual flair */
main div#content h2:not(:first-child) {
@apply border-t border-t-base-alt dark:border-t-[#39394b] pt-5;
}
main div#content h3:not(:first-child) {
@apply border-t border-t-base-alt dark:border-t-[#39394b] pt-4;
}
main div#content h4:not(:first-child) {
@apply border-t border-t-base-alt dark:border-t-[#39394b] pt-3;
}
main div#content h5:not(:first-child) {
@apply border-t border-t-base-alt dark:border-t-[#39394b] pt-2;
}
main div#content h6:not(:first-child) {
@apply border-t border-t-base-alt dark:border-t-[#39394b] pt-1;
}
blockquote {
@apply p-4 my-4 border-s-4 rounded-r-sm border-base-alt bg-surface dark:border-surface dark:bg-base-alt;
}
blockquote.tip {
@apply border-green bg-green/30;
}
blockquote.note {
@apply border-blue bg-blue/30;
}
blockquote.important {
@apply border-violet bg-violet/30;
}
blockquote.warning {
@apply border-yellow bg-yellow/30;
}
blockquote.error {
@apply border-red bg-red/30;
}
blockquote > p {
@apply leading-relaxed;
}
/* Inline verbatim `` */
code:not([class*="language-"]) {
@apply px-1 py-px font-mono text-sm rounded-md bg-base-alt dark:bg-surface dark:brightness-80;
}
/* Table of Contents */
nav.toc {
@apply h-3/4 pt-4 pb-4 font-mono bg-surface border-2 border-base-alt rounded-md;
}
nav.toc ol {
@apply pl-4 list-decimal list-inside;
}
nav.toc ul {
@apply pl-4 list-disc list-inside;
}
nav.toc ol li,
nav.toc ul li {
@apply mt-0 pb-0;
}
nav.toc ol li a,
nav.toc ul li a {
@apply no-underline hover:text-blue;
}
nav.toc ol li::marker,
nav.toc ul li::marker {
@apply hover:text-blue;
}
nav.toc ol li ol,
nav.toc ul li ul {
@apply pb-2;
}
/* PrismJS specific css */
pre[class*="language-"],
code[class*="language-"] {
font-variant-ligatures: common-ligatures !important;
@apply bg-surface! dark:bg-base-alt font-mono! text-shadow-none!;
}
/* PrismJS line-numbers plugin */
pre[class*="language-"].line-numbers {
counter-reset: linenumber;
@apply relative pl-13;
}
pre[class*="language-"].line-numbers > code {
white-space: inherit;
@apply relative;
}
.line-numbers .line-numbers-rows {
@apply absolute flex flex-col top-[-1.5px] -left-12 w-10 pointer-events-none select-none border-r! border-r-grey!;
}
.line-numbers-rows > span {
counter-increment: linenumber;
@apply block leading-[1.5];
}
.line-numbers-rows > span:before {
content: counter(linenumber);
@apply text-grey! text-right pr-2 block;
}
/* Center MermaidJS charts and diagrams */
pre.mermaid {
@apply flex justify-center;
}
/* Automatic dark theme for MermaidJS */
.dark .mermaid {
filter: invert(0.9) hue-rotate(180deg);
}