diff --git a/go.mod b/go.mod index 420397d..767db5b 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( require ( dario.cat/mergo v1.0.2 // indirect filippo.io/edwards25519 v1.1.0 // indirect - git.learnjsthehardway.com/learn-code-the-hard-way/ssgod v0.0.0-20250805021517-b0047ab2ce51 // indirect + git.learnjsthehardway.com/learn-code-the-hard-way/ssgod v0.0.0-20250819005110-6eacdff12eb8 // indirect github.com/ClickHouse/ch-go v0.65.1 // indirect github.com/ClickHouse/clickhouse-go/v2 v2.34.0 // indirect github.com/air-verse/air v1.62.0 // indirect diff --git a/go.sum b/go.sum index 69b626a..f64833a 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -git.learnjsthehardway.com/learn-code-the-hard-way/ssgod v0.0.0-20250805021517-b0047ab2ce51 h1:bSz0GfM8KXCLCNpR19zsqAwN9J3nQcQrL2bFGHiwHW8= -git.learnjsthehardway.com/learn-code-the-hard-way/ssgod v0.0.0-20250805021517-b0047ab2ce51/go.mod h1:QbY7C8GVlTo/Ru7sUi56BWgbY7MnTfWm0SoLZ/DMDcE= +git.learnjsthehardway.com/learn-code-the-hard-way/ssgod v0.0.0-20250819005110-6eacdff12eb8 h1:SCVz8GPnZKESrJTl1JzxGkIT+RBkoTiP6TEsK3kHQUY= +git.learnjsthehardway.com/learn-code-the-hard-way/ssgod v0.0.0-20250819005110-6eacdff12eb8/go.mod h1:QbY7C8GVlTo/Ru7sUi56BWgbY7MnTfWm0SoLZ/DMDcE= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 h1:nyQWyZvwGTvunIMxi1Y9uXkcyr+I7TeNrr/foo4Kpk8= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= diff --git a/static/blockstart.css b/static/blockstart.css deleted file mode 100644 index ff7c188..0000000 --- a/static/blockstart.css +++ /dev/null @@ -1,241 +0,0 @@ -:root { - --color-border: hsl(0, 0%, 0%); - --border-radius: 5px; - --text: 0; - --value: 9; - --value-scale: 12%; - --pad: 10px; - --bottom-margin: 2rem; - --w: initial; - --h: initial; - --value0: hsl(0, 0%, calc(0 * var(--value-scale))); - --value1: hsl(0, 0%, calc(1 * var(--value-scale))); - --value2: hsl(0, 0%, calc(2 * var(--value-scale))); - --value3: hsl(0, 0%, calc(3 * var(--value-scale))); - --value4: hsl(0, 0%, calc(4 * var(--value-scale))); - --value5: hsl(0, 0%, calc(5 * var(--value-scale))); - --value6: hsl(0, 0%, calc(6 * var(--value-scale))); - --value7: hsl(0, 0%, calc(7 * var(--value-scale))); - --value8: hsl(0, 0%, calc(8 * var(--value-scale))); - --value9: hsl(0, 0%, calc(9 * var(--value-scale))); -} - -body { - padding: 0px; - margin: 0px; -} - -blockstart { - background-color: #fff; - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - display: flex; - flex-direction: column; - justify-content: flex-start; - padding: 0px; - margin: 0px; - width: 100%; - min-width: 100%; - max-width: 100%; - height: fit-content; - min-height: fit-content; - padding: 1rem; -} - -blockstart > * + * { - margin-bottom: var(--bottom-margin); -} - -blockstart > *:last-child { - margin-bottom: 0px; -} - -blockstart a { - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); -} - -blockstart block { - --spacing: space-evenly; - - display: flex; - background-color: hsl(0, 0%, calc(var(--value) * var(--value-scale))); - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - justify-content: var(--spacing); - flex-direction: column; - padding: var(--pad); - width: var(--w); - min-width: var(--w); - max-width: var(--w); - height: var(--h); - min-height: var(--h); - max-height: var(--h); -} - -blockstart block > * { - --spacing: flex-start; - --pad: 10px; - --w: initial; - --h: initial; - - background-color: hsl(0, 0%, calc(var(--value) * var(--value-scale))); - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - display: flex; - justify-content: var(--spacing); - align-self: stretch; - flex-direction: column; - margin: 2px; - padding: var(--pad); - width: var(--w); - min-width: var(--w); - max-width: var(--w); - height: var(--h); - min-height: var(--h); - max-height: var(--h); -} - -blockstart stack { - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - display: grid; - grid-template-rows: 1fr; - grid-template-columns: 1fr; - grid-template-areas: "cover"; -} - -blockstart stack > * { - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - width: 100%; - height: 100%; - position: relative; - grid-area: cover; -} - -blockstart stack > .top { - z-index: 10; -} - -blockstart .wide { - width: 100%; -} - -blockstart .no-flex { - display: block; - flex: unset; - flex-direction: unset; - align-self: unset; -} - -blockstart .center { - justify-content: center; - align-items: center; - align-self: center; -} - -blockstart .center-text { - text-align: center; - justify-content: center; - align-items: center; -} - -blockstart .center-self { - align-self: center; -} - -blockstart .vertical { - flex-direction: column; -} - -blockstart .horizontal { - flex-direction: row; -} - -blockstart grid { - --cols: auto; - --rows: auto; - --gap: 0.5rem; - - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - display: grid; - grid-gap: var(--gap); - grid-template-columns: repeat(var(--cols), 1fr); - grid-template-rows: repeat(var(--rows), 1fr); -} - - -blockstart hr { - --height: 1rem; - - min-height: var(--height); - visibility: hidden; -} - -blockstart hr.huge { - --height: 3rem; -} - -blockstart shape { - --value: 2; - --text: 9; - --pad: 1rem; - - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - background-color: hsl(0, 0%, calc(var(--value) * var(--value-scale))); - display: flex; - width: var(--w); - min-width: var(--w); - max-width: var(--w); - height: var(--h); - min-height: var(--h); - max-height: var(--h); - text-align: center; - justify-content: center; - align-items: center; - align-self: center; - padding: pad; -} - -blockstart .debug { - border: 1px solid red; -} - -blockstart .debug > * { - border: 1px solid blue; -} - -blockstart .border { - border: 2px solid var(--color-border); - border-radius: var(--border-radius); -} - -blockstart .compact { - justify-content: flex-start; -} - -blockstart .compact > * { - flex: unset; -} - -.solid { - --value: 4; - --text: 9; -} - -.fill { - flex: 1 1 auto; -} - -button { - --value: 7; - --text: 0; - - background-color: hsl(0, 0%, calc(var(--value) * var(--value-scale))); - color: hsl(0, 0%, calc(var(--text) * var(--value-scale))); - border: 2px solid var(--color-border); - border-radius: var(--border-radius); -} - -button:hover { - filter: brightness(90%); -} - -[style*="--aspect-ratio"] { - aspect-ratio: var(--aspect-ratio); -} diff --git a/static/color.css b/static/color.css deleted file mode 100644 index 621f922..0000000 --- a/static/color.css +++ /dev/null @@ -1,143 +0,0 @@ -@font-face { - font-family: computer; - src: url(/fonts/computer.woff); -} - -/* Grays - --value9: hsl(0, 0%, 100%); - --value8: hsl(210, 17%, 98%); - --value8a: hsl(210, 17%, 98%, 0); - --value7: hsl(210, 16%, 93%); - --value6: hsl(210, 14%, 89%); - --value5: hsl(210, 14%, 83%); - --value4: hsl(210, 11%, 71%); - --value3: hsl(208, 7%, 46%); - --value2: hsl(210, 9%, 31%); - --value1: hsl(210, 10%, 23%); - --value0: hsl(210, 11%, 15%); - - Greens - --value9: #f7fcf5; - --value8: #e5f5e0; - --value8a: hsl(210, 17%, 98%, 0); - --value7: #83cad4; - --value6: #73c17a; - --value5: #006d2c; - --value4: hsl(210, 11%, 71%); - --value3: hsl(208, 7%, 46%); - --value2: hsl(210, 9%, 31%); - --value1: #06160c; - --value0: #010402; -*/ - -:root { - --value9: #f7fcf5; - --value8: #e5f5e0; - --value8a: hsl(210, 17%, 98%, 0); - --value7: #daf0d5; - --value6: #73c17a; - --value5: #238b45; - --value4: #006d2c; - --value3: #105329; - --value2: #0e321b; - --value1: #06160c; - --value0: #010402; - - --gray9: hsl(0, 0%, 100%); - --gray8: hsl(210, 17%, 98%); - --gray8a: hsl(210, 17%, 98%, 0); - --gray7: hsl(210, 16%, 93%); - --gray6: hsl(210, 14%, 89%); - --gray5: hsl(210, 14%, 83%); - --gray4: hsl(210, 11%, 71%); - --gray3: hsl(208, 7%, 46%); - --gray2: hsl(210, 9%, 31%); - --gray1: hsl(210, 10%, 23%); - --gray0: hsl(210, 11%, 15%); - - --orange: hsl(19, 97%, 41%); - --yellow: hsl(44, 100%, 52%); - --red: hsl(334, 100%, 50%); - --purple: hsl(265, 83%, 57%); - --blue: hsl(217, 100%, 61%); - --green: hsl(98, 32%, 45%); - --black: hsl(240, 100%, 0%); - - --invert-orange: var(--value9); - --invert-yellow: var(--value0); - --invert-red: var(--value9); - --invert-purple: var(--value9); - --invert-blue: var(--value9); - --invert-green: var(--value9); - - --color-accent: var(--value7); - --color-bg-inverted: var(--gray6); - --color-bg-secondary: var(--gray2); - --color-bg-code-text: var(--value2); - --color-bg-tertiary: var(--value3); - --color-bg: var(--value0); - --color-border: var(--gray3); - --color-error: var(--red); - --color-good: var(--green); - --color-icon-image: var(--value8); - --color-inactive: var(--value4); - --color-info: var(--yellow); - --color-input-bg: var(--value7); - --color-input-border: var(--value7); - --color-input-button: var(--value6); - --color-overlay-background: var(--value2); - --color-overlay-shadow: var(--value6); - --color-overlay-text: var(--value7); - --color-play-icon: var(--value4); - --color-pulse-1: hsla(0, 0%, 80%, 1); - --color-pulse-2: hsla(0, 0%, 80%, 0.7); - --color-pulse-3: hsla(0, 0%, 80%, 0.1); - --color-pulse-4: hsla(0, 0%, 80%, 0); - --color-secondary-accent: var(--value7); - --color-secondary: var(--value7); - --color-shadow-secondary: var(--value6); - --color-shadow: var(--value2); - --color-text-inverted: var(--value0); - --color-text-secondary: var(--value8); - --color-text: var(--value9); - --color-warning: var(--orange); - --color: var(--value9); - --gray-bg: var(--gray1); - --color-scrollbar-thumb: hsla(0, 0%, 40%, 0.8); - --color-scrollbar-track-piece: hsla(0, 0%, 20%, 0.8); - --color-bg-transparent: var(--value8a); - --color-bg-code: var(--gray1); - --color-border-tabs: var(--value6); - --color-shadow-dark: var(--value2); - - - --font-family: "Andale Mono", "Monaco", monospace, monospace; - --font-title: "Palatino", serif; - --font-computer: "computer", monospace; - --font-size: 1.05em; - --font-text-size: 1.4em; /* for paragraphs mostly */ - --font-label-size: 1rem; - --font-heading-size: 1.2em; - --font-heading-weight: 300; - --font-header-nav: 1.3em; - --font-button-size: 1.4em; - --hover-brightness: 0.9; - --justify-important: center; - --justify-blockquote: left; - --justify-normal: left; - --line-height: 1.5; - --width-sidebar: 320px; - --width-card: 385px; - --width-card-medium: 460px; - --width-card-wide: 800px; - --width-content: 1080px; - --width-badge: 20px; - --font-size-badge: 13px; - --fixed-header-height: 73px; - --fixed-footer-height: 400px; - --color-scrollbar-thumb: hsla(0, 0%, 60%, 0.8); - --color-scrollbar-track-piece: hsla(0, 0%, 100%, 0.9); - - --color-bg-header: var(--value0); - --color-text-header: var(--value9); -} diff --git a/static/global.css b/static/global.css deleted file mode 100644 index 02e4701..0000000 --- a/static/global.css +++ /dev/null @@ -1,1637 +0,0 @@ -/* Hea vily modified from the wonderful MVP.css v1.6.2 - https://github.com/andybrewer/mvp */ -@import 'color.css'; - -/* You can remove this if you don't do any code in your project. */ -@import '/css/prism.css'; - -body * { - /* This fixes the classic CSS braindead decision that children can explode out - * of their parent's box. - */ - box-sizing: border-box; -} - -aside { - display: block; - font-size: 1.2em; - line-height: var(--line-height); - padding: 1rem 1rem; - text-align: var(--justify-blockquote); - border-radius: var(--border-radius); - background-color: var(--color-bg-secondary); - border: 1px solid var(--value3); -} - -aside.warning { - background-color: var(--value7); - color: var(--color-text-inverted); -} - -/* Layout */ -article aside { - background: var(--color-secondary-accent); - border-left: 4px solid var(--color-secondary); - padding: 0.01rem 0.8rem; -} - -body { - background: var(--color-bg); - color: var(--color-text); - font-family: var(--font-family); - line-height: var(--line-height); - margin: 0; - overflow-x: hidden; - overflow-y: overlay; - text-rendering: optimizeSpeed; - -webkit-font-smoothing: antialiased; -} - -::-webkit-scrollbar { - width: 10px; -} - -::-webkit-scrollbar-thumb { - background: var(--color-scrollbar-thumb); -} -::-webkit-scrollbar-track-piece { - background: var(--color-scrollbar-track-piece); -} - -header { - background-color: var(--color-bg-header); - color: var(--color-text-header); - display: flex; - justify-content: center; - text-align: var(--justify-important); -} - -header, -main { - margin: 0 auto; - padding-left: 0.5rem; - padding-right: 0.5rem; - padding-top: 0rem; -} - -header.fixed { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 90; - height: var(--fixed-header-height); -} - -main { - max-width: var(--width-content); - min-height: 800px; - margin-bottom: 2rem; - display: flex; - flex-direction: column; -} - -header.fixed + main { - margin-top: var(--fixed-header-height) !important; - min-height: unset; -} - -footer { - background-color: var(--color-bg-header); - color: var(--color-text-header); - padding: 0px; - width: 100%; - display: flex; - flex-direction: row; - justify-content: space-evenly; -} - -footer aside { - background-color: var(--color-bg-secondary); - width: 33%; - padding: 1em; -} - -footer aside h4 { - margin-top: 0px; - margin-bottom: 0.5rem; -} - -hr { - background-color: var(--color-bg-secondary); - border: none; - height: 1px; - margin: 1rem 0; -} - -section { - display: flex; - flex-wrap: wrap; - justify-content: var(--justify-important); -} - -section aside { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - margin: 1rem; - padding: 1.25rem; - width: var(--width-card); -} - -section aside img { - max-width: 100%; -} - -[hidden] { - display: none; -} - -/* Headers */ -article header, -div header, -main header { - padding-top: 0; -} - -header a.button { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -header nav { - max-width: var(--width-content); -} - -header nav a { - /* this covers all links in the header nav */ - font-size: var(--font-header-nav); - text-decoration-line: none; -} - -header nav > a { - /* this is for just a tags in the header, not inside