feat: refactor

This commit is contained in:
Barrett Ruth 2025-05-22 14:23:22 -05:00
parent b83f17d087
commit 8666e5a169
57 changed files with 5734 additions and 5313 deletions

1
public/d3.js vendored
View file

@ -1,4 +1,3 @@
// https://d3js.org v7.9.0 Copyright 2010-2023 Mike Bostock
!(function (t, n) {
"object" == typeof exports && "undefined" != typeof module
? n(exports)

View file

@ -1,132 +0,0 @@
/**
* Github Light theme for Prism.js
* Based on Github: https://github.com
* @author Katorly
*/
/* General */
pre[class*="language-"],
code[class*="language-"] {
color: #24292f;
font-size: 13px;
text-shadow: none;
font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
direction: ltr;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
line-height: 1.5;
-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-"]::selection,
code[class*="language-"]::selection,
pre[class*="language-"]::mozselection,
code[class*="language-"]::mozselection {
text-shadow: none;
background: #9fc6e9;
}
@media print {
pre[class*="language-"],
code[class*="language-"] {
text-shadow: none;
}
}
pre[class*="language-"] {
padding: 1em;
margin: 0.5em 0;
overflow: auto;
background: #f4f4f4;
}
:not(pre) > code[class*="language-"] {
padding: 0.1em 0.3em;
border-radius: 0.3em;
color: #24292f;
background: #eff1f3;
}
/* Line highlighting */
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;
}
/* Tokens */
.namespace {
opacity: 0.7;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #6e7781;
}
.token.punctuation {
color: #24292f;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #0550ae;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #0a3069;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #0550ae;
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #cf222e;
}
.token.function {
color: #8250df;
}
.token.regex,
.token.important,
.token.variable {
color: #0a3069;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

View file

@ -1,4 +0,0 @@
/* PrismJS 1.30.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+apacheconf+bash+c+cpp+editorconfig+git+latex+lua+python+systemd+typoscript+vim+yaml&plugins=line-numbers */
code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}
pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}

File diff suppressed because one or more lines are too long

56
public/styles/common.css Normal file
View file

@ -0,0 +1,56 @@
@font-face {
font-family: "Signifier";
src: url("/signifier/Signifier-Regular.ttf");
font-weight: normal;
font-style: normal;
}
html,
body {
font-family: "Signifier", serif;
overscroll-behavior: none;
margin: 0;
padding: 0;
height: 100%;
}
header,
footer {
padding: 20px;
}
a {
color: inherit;
}
li {
margin-bottom: 10px;
}
.graph-background {
background-image:
linear-gradient(to right, rgba(200, 200, 200, 0.4) 1px, transparent 1px),
linear-gradient(to bottom, rgba(200, 200, 200, 0.4) 1px, transparent 1px);
background-size: 3vw 3vw;
}
.terminal-cursor {
display: inline-block;
width: 10px;
height: 1em;
background-color: white;
border: 1px solid black;
vertical-align: text-top;
animation: blink 1s step-start infinite;
}
@keyframes blink {
50% {
background-color: transparent;
border-color: transparent;
}
}
.terminal-container {
font-family: "Courier New", monospace;
}

90
public/styles/graph.css Normal file
View file

@ -0,0 +1,90 @@
.graph {
height: 50vh;
width: 100%;
display: flex;
justify-content: center;
margin: 50px 0;
}
.graph div {
height: 100%;
width: 60%;
}
.slider {
display: flex;
align-items: center;
justify-content: space-between;
}
.slider label {
margin-right: 10px;
}
.slider input {
margin-left: 20px;
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 2px;
background: black;
cursor: pointer;
outline: none;
transform: translateY(-50%);
width: 150px;
}
.slider input::-webkit-slider-thumb {
-webkit-appearance: none;
width: 2px;
height: 15px;
background: black;
cursor: col-resize;
position: relative;
}
.slider input::-moz-range-thumb {
width: 2px;
height: 15px;
background: black;
cursor: col-resize;
position: relative;
}
.slider input::-webkit-slider-runnable-track,
.slider input::-moz-range-track {
width: 100%;
height: 2px;
background: black;
border: none;
}
.sliders {
display: flex;
justify-content: center;
}
ul {
list-style: none;
margin: 0;
}
.romer-table-container {
display: flex;
justify-content: center;
margin: 20px 0;
}
#romer-table {
text-align: center;
margin-top: 20px;
margin: 0;
font-size: 0.8em;
border-collapse: collapse;
}
#romer-table th,
#romer-table td {
border: 1px solid black;
text-align: center;
padding: 5px;
}

99
public/styles/index.css Normal file
View file

@ -0,0 +1,99 @@
html,
body {
display: flex;
flex-direction: column;
}
header,
footer {
font-size: 1.5em;
display: flex;
align-items: center;
}
header {
justify-content: space-between;
}
footer {
justify-content: space-between;
}
.main {
flex: 1;
display: flex;
}
.header-links a,
.footer-links a {
margin-left: 25px;
}
.greek-delta {
font-family: "Times New Roman", Times, serif;
font-size: 1.5em;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
.content {
display: flex;
justify-content: space-between;
width: 100%;
}
.posts,
.topics {
padding: 0 40px;
align-self: center;
}
.topics {
font-size: 3em;
}
.posts {
font-size: 2em;
text-align: right;
flex: 1;
}
a {
text-decoration: none;
}
.post {
margin-bottom: 25px;
}
.topic a {
position: relative;
display: inline-block;
color: inherit;
text-decoration: none;
margin-bottom: 25px;
transition: color 0.5s ease;
}
.topic a::after {
content: "";
height: 2px;
display: block;
margin-top: 4px;
background: currentColor;
width: 0;
right: 100%;
position: absolute;
transition:
width 0.5s ease,
right 0.5s ease;
}
.topic a:hover::after,
.topic a.active::after {
width: 100%;
right: 0;
}

63
public/styles/mdx.css Normal file
View file

@ -0,0 +1,63 @@
article h1, article h2, article h3,
.post-article h1, .post-article h2, .post-article h3 {
font-weight: normal;
position: relative;
}
article h1, .post-article h1 {
padding-left: 1.5em;
}
article h2, .post-article h2 {
padding-left: 2em;
}
article h3, .post-article h3 {
padding-left: 2.5em;
}
article h1::before, .post-article h1::before {
content: "#";
}
article h2::before, .post-article h2::before {
content: "##";
}
article h3::before, .post-article h3::before {
content: "###";
}
article h1::before, article h2::before, article h3::before,
.post-article h1::before, .post-article h2::before, .post-article h3::before {
position: absolute;
left: 0;
color: var(--topic-color, #000);
margin-right: 0.5em;
}
article img {
display: block;
margin: 2rem auto;
max-width: 100%;
height: auto;
}
article pre {
padding: 1rem;
overflow-x: auto;
}
/* Heading with date styling */
article h2.heading-with-date, article h3.heading-with-date {
display: flex;
justify-content: space-between;
align-items: center;
}
article h2.heading-with-date .date, article h3.heading-with-date .date {
font-size: 0.8em;
color: #000;
font-weight: normal;
margin-left: 1rem;
}

128
public/styles/post.css Normal file
View file

@ -0,0 +1,128 @@
html,
body {
font-family: "Signifier", serif;
margin: 0;
padding: 0;
height: 100%;
min-height: 100vh;
display: flex;
flex-direction: column;
}
header {
font-size: 1.5em;
display: flex;
align-items: center;
justify-content: space-between;
}
ul {
list-style: unset;
list-style-type: "- ";
}
li {
margin: 5px 0;
}
.main {
display: flex;
justify-content: center;
flex: 1;
}
.post-header {
padding: 0;
}
.post-container {
width: 80%;
}
.post-meta {
margin-left: 100px;
font-size: 1.3em;
}
h2 .post-meta {
float: right;
margin-left: 20px;
font-size: 1em;
}
.post-title {
font-weight: normal;
font-size: 2.2em;
margin: 50px 0;
width: 100%;
position: relative;
display: inline-block;
}
:not(pre) > code {
font-family: "Courier New", Courier, monospace;
padding: 2px 4px;
margin: 0 5px;
font-size: 0.95em;
white-space: nowrap;
border: 1px solid #e1e1e1;
}
code,
pre {
border-radius: 4px;
background: #f4f4f4 !important;
}
pre {
border: 1px solid #e1e1e1;
}
pre * {
background: #f4f4f4 !important;
}
.post-title::before {
content: "";
position: absolute;
background-color: var(--topic-color);
height: 30px;
width: 2px;
bottom: -10px;
left: -20px;
}
.post-title::after {
content: "";
position: absolute;
background-color: var(--topic-color);
width: 200px;
height: 2px;
bottom: -10px;
left: -20px;
}
.post-article {
font-size: 1.5em;
line-height: 1.5em;
padding-bottom: 50px;
}
.post-article h2 {
font-weight: normal;
}
.post-article h3 {
font-weight: normal;
}
.post-article a {
text-decoration: underline;
}
.language-python,
.language-py,
.language-cc,
.language-cpp {
font-size: 0.8em !important;
}