initial
This commit is contained in:
1
assets/css/prism-sweetie.min.css
vendored
Normal file
1
assets/css/prism-sweetie.min.css
vendored
Normal 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
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
343
assets/css/tailwind.css
Normal 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);
|
||||||
|
}
|
||||||
181
assets/norgolith.svg
Normal file
181
assets/norgolith.svg
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="1280"
|
||||||
|
height="1280"
|
||||||
|
viewBox="0 0 338.66667 338.66666"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
xml:space="preserve"
|
||||||
|
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||||
|
sodipodi:docname="norgolith.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:zoom="0.51213161"
|
||||||
|
inkscape:cx="530.13717"
|
||||||
|
inkscape:cy="504.75307"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1009"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="-8"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false" /><defs
|
||||||
|
id="defs1"><inkscape:path-effect
|
||||||
|
effect="fillet_chamfer"
|
||||||
|
id="path-effect15"
|
||||||
|
is_visible="true"
|
||||||
|
lpeversion="1"
|
||||||
|
nodesatellites_param=""
|
||||||
|
radius="0"
|
||||||
|
unit="px"
|
||||||
|
method="auto"
|
||||||
|
mode="F"
|
||||||
|
chamfer_steps="1"
|
||||||
|
flexible="false"
|
||||||
|
use_knot_distance="true"
|
||||||
|
apply_no_radius="true"
|
||||||
|
apply_with_radius="true"
|
||||||
|
only_selected="false"
|
||||||
|
hide_knots="false" /><linearGradient
|
||||||
|
id="swatch10"
|
||||||
|
inkscape:swatch="solid"><stop
|
||||||
|
style="stop-color:#32b6be;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop13" /></linearGradient><linearGradient
|
||||||
|
id="SVGID_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="205.27161"
|
||||||
|
y1="136.063"
|
||||||
|
x2="800.72571"
|
||||||
|
y2="855.02252"
|
||||||
|
gradientTransform="matrix(1,0,0,-1,0,1024)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#33AAE6"
|
||||||
|
id="stop1" />
|
||||||
|
<stop
|
||||||
|
offset="0.9915"
|
||||||
|
style="stop-color:#4B3892"
|
||||||
|
id="stop2" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="SVGID_2_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="531.92999"
|
||||||
|
y1="357.42569"
|
||||||
|
x2="693.40002"
|
||||||
|
y2="357.42569"
|
||||||
|
gradientTransform="matrix(1,0,0,-1,0,1024)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#3D85C9"
|
||||||
|
id="stop3" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#4A4198"
|
||||||
|
id="stop4" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="SVGID_3_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="531.91998"
|
||||||
|
y1="288.905"
|
||||||
|
x2="944.48761"
|
||||||
|
y2="288.905"
|
||||||
|
gradientTransform="matrix(1,0,0,-1,0,1024)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#61C67C"
|
||||||
|
id="stop5" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#366794"
|
||||||
|
id="stop6" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="SVGID_4_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="843.47998"
|
||||||
|
y1="404.53009"
|
||||||
|
x2="969.75562"
|
||||||
|
y2="404.53009"
|
||||||
|
gradientTransform="matrix(1,0,0,-1,0,1024)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#2F6B7F"
|
||||||
|
id="stop7" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#325D87"
|
||||||
|
id="stop8" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="SVGID_5_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="513.32288"
|
||||||
|
y1="718.00439"
|
||||||
|
x2="900.78381"
|
||||||
|
y2="143.70779"
|
||||||
|
gradientTransform="matrix(1,0,0,-1,0,1024)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#3B7FC4"
|
||||||
|
id="stop9" />
|
||||||
|
<stop
|
||||||
|
offset="0.4665"
|
||||||
|
style="stop-color:#90B1DF"
|
||||||
|
id="stop10" />
|
||||||
|
<stop
|
||||||
|
offset="0.764"
|
||||||
|
style="stop-color:#7381C0"
|
||||||
|
id="stop11" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#5F5FAB"
|
||||||
|
id="stop12" />
|
||||||
|
</linearGradient></defs><g
|
||||||
|
inkscape:label="Capa 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"><g
|
||||||
|
id="g17"
|
||||||
|
transform="matrix(0.95818663,0,0,0.95818663,7.080397,7.080397)"><g
|
||||||
|
id="g1"
|
||||||
|
transform="matrix(1.189346,0,0,1.189346,10.198838,10.198838)"
|
||||||
|
style="fill:#425dae;fill-opacity:1"><path
|
||||||
|
fill="#000000"
|
||||||
|
d="M 219.6,48.1 C 196.7,25.2 166.2,12.6 133.8,12.6 101.4,12.6 71,25.2 48.1,48.1 25.2,71 12.6,101.5 12.6,133.9 c 0,32.4 12.6,62.9 35.5,85.8 22.9,22.9 53.4,35.5 85.8,35.5 32.4,0 62.9,-12.6 85.8,-35.5 22.9,-22.9 35.5,-53.4 35.5,-85.8 0,-32.4 -12.7,-62.9 -35.6,-85.8 z"
|
||||||
|
id="path1"
|
||||||
|
style="fill:#425dae;fill-opacity:1" /><path
|
||||||
|
fill="#000000"
|
||||||
|
d="M 133.8,0 C 59.9,0 0,59.9 0,133.8 c 0,73.9 59.9,133.8 133.8,133.8 73.9,0 133.8,-59.9 133.8,-133.8 C 267.6,59.9 207.8,0 133.8,0 Z m 0,260.1 C 64.1,260.1 7.5,203.6 7.5,133.8 7.5,64 64.1,7.6 133.8,7.6 c 69.7,0 126.3,56.5 126.3,126.3 0,69.8 -56.5,126.2 -126.3,126.2 z"
|
||||||
|
id="path2"
|
||||||
|
style="fill:#425dae;fill-opacity:1" /></g><g
|
||||||
|
id="g2"
|
||||||
|
transform="matrix(2.4193807,0,0,2.4193807,48.359493,48.359967)"
|
||||||
|
style="fill:#e6e6e6;fill-opacity:1"><g
|
||||||
|
id="g16"><path
|
||||||
|
d="m 46.355,96.716162 a 5.14,4.3759472 0 0 0 3.644,1.283839 5.14,4.3759472 0 0 0 3.645,-1.283839 l 23.129,-19.69091 a 5.127,4.3648797 0 0 0 1.512,-3.102325 v -6.967463 a 5.138,4.3742445 0 0 0 -3.184,-4.054136 5.144,4.3793526 0 0 0 -5.617,0.950961 L 50.816,79.741915 a 1.147,0.97650029 0 0 1 -1.633,0 L 30.52,63.822491 c -1.48,-1.260001 -3.684,-1.635447 -5.617,-0.953514 -1.933,0.681933 -3.184,2.270555 -3.184,4.053285 v 7.00407 a 5.1,4.3418931 0 0 0 1.512,3.102325 z"
|
||||||
|
id="path1-4"
|
||||||
|
style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.922688" /><path
|
||||||
|
d="M 46.355,2.7570265 33.742,16.125 c -0.965217,0.967485 -1.508728,2.277377 -1.512,3.644 v 31.027 c 0,1.38 0.535,2.672 1.512,3.645 l 12.613,12.617 c 0.966006,0.966822 2.280272,2.415079 3.646986,2.412968 1.36706,0.0024 2.675764,-1.4459 3.642014,-2.412968 L 66.257,54.44 c 0.970123,-0.96461 1.514494,-2.276934 1.512,-3.645 V 19.77 C 67.7651,18.403508 67.221664,17.093854 66.257,16.126 L 53.644,2.7530265 c -2.016047,-2.00746088 -5.276158,-2.00567208 -7.29,0.004 z"
|
||||||
|
id="path2-2"
|
||||||
|
style="fill:#e6e6e6;fill-opacity:1"
|
||||||
|
sodipodi:nodetypes="cccsccccccccccc" /></g></g></g></g><style
|
||||||
|
type="text/css"
|
||||||
|
id="style1">
|
||||||
|
.st0{fill:none;}
|
||||||
|
.st1{fill:url(#SVGID_1_);}
|
||||||
|
.st2{fill:url(#SVGID_2_);}
|
||||||
|
.st3{fill:url(#SVGID_3_);}
|
||||||
|
.st4{fill:url(#SVGID_4_);}
|
||||||
|
.st5{fill:url(#SVGID_5_);}
|
||||||
|
</style></svg>
|
||||||
|
After Width: | Height: | Size: 6.3 KiB |
110
assets/style.css
Normal file
110
assets/style.css
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
/* Default fonts */
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inter";
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
font-weight: 100 900;
|
||||||
|
src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2) format('woff2-variations');
|
||||||
|
unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "JetBrains Mono";
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
font-weight: 100 800;
|
||||||
|
src: url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono:vf@latest/latin-wght-normal.woff2) format('woff2-variations');
|
||||||
|
unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "JetBrains Mono Italic";
|
||||||
|
font-style: italic;
|
||||||
|
font-display: swap;
|
||||||
|
font-weight: 100 800;
|
||||||
|
src: url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono:vf@latest/latin-wght-italic.woff2) format('woff2-variations');
|
||||||
|
unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Styling */
|
||||||
|
*, *:before, *:after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
color: white;
|
||||||
|
background-color: #202030;
|
||||||
|
width: auto;
|
||||||
|
height: 100%;
|
||||||
|
font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inline verbatim `` */
|
||||||
|
code {
|
||||||
|
font-family: "JetBrains Mono", monospace;
|
||||||
|
background-color: #303040;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 0px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PrismJS specific css */
|
||||||
|
pre[class*="language-"],
|
||||||
|
code[class*="language-"] {
|
||||||
|
text-shadow: unset !important;
|
||||||
|
font-family: "JetBrains Mono", monospace !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PrismJS line-numbers plugin */
|
||||||
|
pre[class*="language-"].line-numbers {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 3.4em;
|
||||||
|
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; /* works for line-numbers below 1000 lines */
|
||||||
|
/* 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: 0.8em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Norgolith landing page styling */
|
||||||
|
#desc > a,
|
||||||
|
#discord-link > a,
|
||||||
|
#github-pages > a,
|
||||||
|
#github-issues > a {
|
||||||
|
color: var(--color-blue-400);
|
||||||
|
}
|
||||||
|
#desc > a:hover,
|
||||||
|
#discord-link > a:hover,
|
||||||
|
#github-pages > a:hover,
|
||||||
|
#github-issues > a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
271
categories/blog/index.html
Normal file
271
categories/blog/index.html
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: blog - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/blog" />
|
||||||
|
<meta property="og:description" content="Posts on category blog" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/blog" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: blog - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in blog</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "blog"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/nix/">Why Nixos is the Coolest Operating System</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 22, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
253
categories/homelab/index.html
Normal file
253
categories/homelab/index.html
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: homelab - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/homelab" />
|
||||||
|
<meta property="og:description" content="Posts on category homelab" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/homelab" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: homelab - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in homelab</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "homelab"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
332
categories/index.html
Normal file
332
categories/index.html
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Categories - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories" />
|
||||||
|
<meta property="og:description" content="Posts categories" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Categories - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Categories</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the categories used in posts.</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/blog">blog</a>
|
||||||
|
<span class="text-grey">(3 posts)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/homelab">homelab</a>
|
||||||
|
<span class="text-grey">(1 post)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/linux">linux</a>
|
||||||
|
<span class="text-grey">(2 posts)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/neorg">neorg</a>
|
||||||
|
<span class="text-grey">(1 post)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/nix">nix</a>
|
||||||
|
<span class="text-grey">(1 post)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/nvim">nvim</a>
|
||||||
|
<span class="text-grey">(1 post)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/voidarc">voidarc</a>
|
||||||
|
<span class="text-grey">(2 posts)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="font-mono text-lg no-underline! hover:underline! hover:decoration-dashed" href="/categories/webdev">webdev</a>
|
||||||
|
<span class="text-grey">(2 posts)</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
262
categories/linux/index.html
Normal file
262
categories/linux/index.html
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: linux - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/linux" />
|
||||||
|
<meta property="og:description" content="Posts on category linux" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/linux" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: linux - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in linux</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "linux"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/nix/">Why Nixos is the Coolest Operating System</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 22, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
253
categories/neorg/index.html
Normal file
253
categories/neorg/index.html
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: neorg - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/neorg" />
|
||||||
|
<meta property="og:description" content="Posts on category neorg" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/neorg" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: neorg - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in neorg</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "neorg"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
253
categories/nix/index.html
Normal file
253
categories/nix/index.html
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: nix - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/nix" />
|
||||||
|
<meta property="og:description" content="Posts on category nix" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/nix" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: nix - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in nix</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "nix"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/nix/">Why Nixos is the Coolest Operating System</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 22, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
253
categories/nvim/index.html
Normal file
253
categories/nvim/index.html
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: nvim - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/nvim" />
|
||||||
|
<meta property="og:description" content="Posts on category nvim" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/nvim" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: nvim - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in nvim</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "nvim"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
262
categories/voidarc/index.html
Normal file
262
categories/voidarc/index.html
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: voidarc - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/voidarc" />
|
||||||
|
<meta property="og:description" content="Posts on category voidarc" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/voidarc" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: voidarc - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in voidarc</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "voidarc"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
262
categories/webdev/index.html
Normal file
262
categories/webdev/index.html
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Category: webdev - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/categories/webdev" />
|
||||||
|
<meta property="og:description" content="Posts on category webdev" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/categories/webdev" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Category: webdev - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Posts in webdev</h1>
|
||||||
|
<p class="text-sm text-text/70"><i>All the posts with the category "webdev"</i></p>
|
||||||
|
<ul class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b]">
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex flex-col md:flex-row space-x-4">
|
||||||
|
<a class="font-mono text-lg w-fit no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a>
|
||||||
|
<time class="text-grey text-sm italic"> on <strong>March 21, 2026</strong></time>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
304
index.html
Normal file
304
index.html
Normal file
@@ -0,0 +1,304 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="description" content="Voidarc Docs and some other stuff" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="author" content="Adumh00man" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="keywords" content="meta" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/" />
|
||||||
|
<meta property="og:description" content="Voidarc Docs and some other stuff" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://blog.voidarc.co.uk/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://blog.voidarc.co.uk/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Home - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="https://blog.voidarc.co.uk/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<h1 id="Voidarc" >Voidarc</h1> <p >Home page for Voidarc Documentation (or whatever excuse for a blog this is). I just wanted to do this for fun idk. Seems interesting for A-level.</p><p >If you can read this, server02 hasn't crashed (yet) :)</p><p >Email always open: admin@voidarc.co.uk (if my mailserver is up, which is sometimes)</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>Recent posts</h2>
|
||||||
|
|
||||||
|
<div class="bg-surface p-4 mt-4 border-2 border-base-alt rounded-xl shadow-lg">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<h3 class="mt-0! text-text-alt"><a class="no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/nix/">Why Nixos is the Coolest Operating System</a></h3>
|
||||||
|
<span class="text-sm text-grey italic">I really like Nix</span>
|
||||||
|
<time class="text-dark-grey dark:text-grey" datetime="2026-03-22T19:35:56+00:00">March 22, 2026, By Adumh00man</time>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The Nixos Philosophy Nix is the all in one solution to every problem you could have with Linux. It p…
|
||||||
|
</p>
|
||||||
|
<a class="no-underline! text-dark-grey font-semibold" href="https://blog.voidarc.co.uk/posts/nix/">Read more …</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-surface p-4 mt-4 border-2 border-base-alt rounded-xl shadow-lg">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<h3 class="mt-0! text-text-alt"><a class="no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a></h3>
|
||||||
|
<span class="text-sm text-grey italic">Haha war of the worlds reference</span>
|
||||||
|
<time class="text-dark-grey dark:text-grey" datetime="2026-03-21T19:08:28+00:00">March 21, 2026, By Adumh00man</time>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Some Backstory Linux is not hard to learn. Some say it is, but they're wrong. If one can be afraid o…
|
||||||
|
</p>
|
||||||
|
<a class="no-underline! text-dark-grey font-semibold" href="https://blog.voidarc.co.uk/posts/homelab/">Read more …</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-surface p-4 mt-4 border-2 border-base-alt rounded-xl shadow-lg">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<h3 class="mt-0! text-text-alt"><a class="no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a></h3>
|
||||||
|
<span class="text-sm text-grey italic">How to make a blog using Norg and some random project from github</span>
|
||||||
|
<time class="text-dark-grey dark:text-grey" datetime="2026-03-21T11:39:17+00:00">March 21, 2026, By Adumh00man</time>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Nonsense Preamble Neorg is a markdown Language that is Org mode but with some different shit in it. …
|
||||||
|
</p>
|
||||||
|
<a class="no-underline! text-dark-grey font-semibold" href="https://blog.voidarc.co.uk/posts/site/">Read more …</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
330
posts/homelab/index.html
Normal file
330
posts/homelab/index.html
Normal file
File diff suppressed because one or more lines are too long
295
posts/index.html
Normal file
295
posts/index.html
Normal file
@@ -0,0 +1,295 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="generator" content="Norgolith" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="author" content="user01" />
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="keywords" content="meta" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:title" content="Posts - Voidarc" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://blog.voidarc.co.uk/posts/" />
|
||||||
|
<meta property="og:description" content="Posts on Voidarc" />
|
||||||
|
<meta property="og:site_name" content="voidarc" />
|
||||||
|
<meta property="og:locale" content="en-US" />
|
||||||
|
<link rel="canonical" href="https://blog.voidarc.co.uk/posts/" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://blog.voidarc.co.uk/assets/css/prism-sweetie.min.css" />
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("alpine:init", () => {
|
||||||
|
Alpine.data("menu", () => ({
|
||||||
|
currentPage: window.location.pathname,
|
||||||
|
|
||||||
|
openMobile: false,
|
||||||
|
|
||||||
|
toggleMobile() {
|
||||||
|
this.openMobile = !this.openMobile;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("toc", () => ({
|
||||||
|
open: false,
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.open = !this.open;
|
||||||
|
document.querySelector("#toc-toggle-icon").classList.toggle("rotate-90");
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
Alpine.data("theme", () => ({
|
||||||
|
// Defaults to dark theme
|
||||||
|
current: "dark",
|
||||||
|
|
||||||
|
init() {
|
||||||
|
const storedTheme = localStorage.getItem("theme");
|
||||||
|
if (storedTheme === "dark") {
|
||||||
|
this.current = "dark";
|
||||||
|
} else if (storedTheme === "light") {
|
||||||
|
this.current = "light";
|
||||||
|
} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||||
|
this.current = "dark";
|
||||||
|
}
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
if (this.current === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.current = this.current === "dark" ? "light" : "dark";
|
||||||
|
document.documentElement.classList.toggle("dark", this.current === "dark");
|
||||||
|
localStorage.setItem("theme", this.current);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.9.0/mermaid.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.28.1/tabler-icons.min.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://blog.voidarc.co.uk/assets/css/styles.min.css" />
|
||||||
|
|
||||||
|
<link rel="icon" href=/assets/norgolith.svg />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Posts - Voidarc</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="transition-colors duration-150 ease-linear">
|
||||||
|
<header class="relative shadow-sm">
|
||||||
|
<nav x-data="menu" class="container mx-auto px-4 md:px-0 font-mono">
|
||||||
|
<div class="flex items-center justify-between h-16">
|
||||||
|
<!-- Logo and dark mode -->
|
||||||
|
<div x-data="theme" class="flex items-center shrink-0 space-x-2">
|
||||||
|
<a href="https://blog.voidarc.co.uk/" class="flex items-center space-x-2">
|
||||||
|
<!-- <img src="https://blog.voidarc.co.uk/assets/norgolith.svg" alt="Norgolith Logo" class="h-8 w-8"> -->
|
||||||
|
<span class="text-lg md:text-xl font-bold text-magenta">Voidarc</span>
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
@click="toggle()"
|
||||||
|
type="button"
|
||||||
|
class="rounded-lg flex items-center"
|
||||||
|
:aria-label="current === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
:class="current === 'dark' ? 'ti-sun hover:text-yellow' : 'ti-moon hover:text-blue'"
|
||||||
|
class="ti text-xl md:text-2xl text-grey transition-colors duration-200 ease-in-out"
|
||||||
|
></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Desktop Menu -->
|
||||||
|
<div class="hidden md:flex md:items-center md:space-x-8">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-magenta!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu Button -->
|
||||||
|
<div class="md:hidden">
|
||||||
|
<button @click="toggleMobile" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-dark-grey hover:text-text-alt focus:outline-none" aria-controls="mobile-menu" aria-expanded="false">
|
||||||
|
<span class="sr-only">Open main menu</span>
|
||||||
|
<!-- Hamburger Icon -->
|
||||||
|
<svg x-show="!openMobile" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Close Icon -->
|
||||||
|
<svg x-show="openMobile" class="h-5 w-5 text-red" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Menu -->
|
||||||
|
<div
|
||||||
|
x-show="openMobile"
|
||||||
|
x-transition:enter="transition ease-out duration-300"
|
||||||
|
x-transition:enter-start="opacity-0"
|
||||||
|
x-transition:enter-end="opacity-100"
|
||||||
|
x-transition:leave="transition ease-in duration-300"
|
||||||
|
x-transition:leave-start="opacity-100"
|
||||||
|
x-transition:leave-end="opacity-0"
|
||||||
|
@click.outside="openMobile = false"
|
||||||
|
class="md:hidden"
|
||||||
|
id="mobile-menu"
|
||||||
|
>
|
||||||
|
<div class="flex flex-row items-center justify-between pt-2 pb-4">
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/posts') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/posts"
|
||||||
|
>Posts</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
:class="{ 'text-blue!': currentPage.startsWith('/categories') }"
|
||||||
|
class="text-text-alt hover:text-blue px-3 py-2 rounded-md text-sm font-medium"
|
||||||
|
href="https://blog.voidarc.co.uk/categories"
|
||||||
|
>Tags</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="container mx-auto min-h-screen pt-8 px-4 md:px-0">
|
||||||
|
|
||||||
|
<h1 class="text-center">Posts</h1>
|
||||||
|
<div class="mt-6 pt-6 border-t border-t-base-alt dark:border-t-[#39394b] break-keep">
|
||||||
|
|
||||||
|
<div class="bg-surface p-4 mt-4 border-2 border-base-alt rounded-xl shadow-lg">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<h3 class="mt-0! text-text-alt"><a class="no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/nix/">Why Nixos is the Coolest Operating System</a></h3>
|
||||||
|
<time class="text-dark-grey dark:text-grey" datetime="2026-03-22T19:35:56+00:00">March 22, 2026</time>
|
||||||
|
<span class="text-sm text-grey italic">I really like Nix</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The Nixos Philosophy Nix is the all in one solution to every problem you could have with Linux. It prides itself on being a fully declarative way to install and manage system packages, and It (mostly) achieves those goals. Before trying to involve oneself in such matters, though, an important distin…
|
||||||
|
</p>
|
||||||
|
<a class="no-underline! text-dark-grey font-semibold" href="https://blog.voidarc.co.uk/posts/nix/">Read more …</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-surface p-4 mt-4 border-2 border-base-alt rounded-xl shadow-lg">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<h3 class="mt-0! text-text-alt"><a class="no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/homelab/">How I fell in with Linux</a></h3>
|
||||||
|
<time class="text-dark-grey dark:text-grey" datetime="2026-03-21T19:08:28+00:00">March 21, 2026</time>
|
||||||
|
<span class="text-sm text-grey italic">Haha war of the worlds reference</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Some Backstory Linux is not hard to learn. Some say it is, but they're wrong. If one can be afraid of a terminal, then I must be the bravest man alive. But, I digress. I began many moons ago, when I was still young, innocent, and didn't know what nix was (what precious days). I began tinkering with …
|
||||||
|
</p>
|
||||||
|
<a class="no-underline! text-dark-grey font-semibold" href="https://blog.voidarc.co.uk/posts/homelab/">Read more …</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bg-surface p-4 mt-4 border-2 border-base-alt rounded-xl shadow-lg">
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<h3 class="mt-0! text-text-alt"><a class="no-underline! hover:underline! hover:decoration-dashed" href="https://blog.voidarc.co.uk/posts/site/">Making a Blog Using a Niche Markdown Language</a></h3>
|
||||||
|
<time class="text-dark-grey dark:text-grey" datetime="2026-03-21T11:39:17+00:00">March 21, 2026</time>
|
||||||
|
<span class="text-sm text-grey italic">How to make a blog using Norg and some random project from github</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Nonsense Preamble Neorg is a markdown Language that is Org mode but with some different shit in it. It is supposed to be a replacement, but since I never really used Org mode in the first place, that doesn't really apply. However, after using it for a whole 10 seconds, I decided I could never go bac…
|
||||||
|
</p>
|
||||||
|
<a class="no-underline! text-dark-grey font-semibold" href="https://blog.voidarc.co.uk/posts/site/">Read more …</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="mt-8 py-4 px-6 w-full font-mono">
|
||||||
|
<div
|
||||||
|
class="flex flex-col md:flex-row justify-between md:items-center font-medium text-xs md:text-sm text-text-alt space-y-4 md:space-y-0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>Copyright © 2026
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="text-blue hover:underline">Adumh00man</a
|
||||||
|
>.
|
||||||
|
|
||||||
|
|
||||||
|
<br class="md:hidden" /> Licensed under MIT.
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<div class="flex flex-inline">
|
||||||
|
|
||||||
|
<div class="mr-4 md:mr-6 lg:mr-8 last:mr-0">
|
||||||
|
<a
|
||||||
|
href="https://git.voidarc.co.uk/voidarc"
|
||||||
|
class="hover:text-blue"
|
||||||
|
>
|
||||||
|
<span>Git</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
319
posts/nix/index.html
Normal file
319
posts/nix/index.html
Normal file
File diff suppressed because one or more lines are too long
346
posts/site/index.html
Normal file
346
posts/site/index.html
Normal file
File diff suppressed because one or more lines are too long
53
rss.xml
Normal file
53
rss.xml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>voidarc</title>
|
||||||
|
<link>https://blog.voidarc.co.uk</link>
|
||||||
|
<description>Latest posts</description>
|
||||||
|
<generator>Norgolith</generator>
|
||||||
|
<language>en-US</language>
|
||||||
|
<lastBuildDate>Mon, 23 Mar 2026 21:55:51 +0000</lastBuildDate>
|
||||||
|
<ttl>60</ttl>
|
||||||
|
<atom:link href="https://blog.voidarc.co.uk/rss.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
<image>
|
||||||
|
<url>https://blog.voidarc.co.uk/assets/favicon.png</url>
|
||||||
|
<title>voidarc</title>
|
||||||
|
<link>https://blog.voidarc.co.uk</link>
|
||||||
|
<width>144</width>
|
||||||
|
<height>144</height>
|
||||||
|
</image>
|
||||||
|
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Why Nixos is the Coolest Operating System</title>
|
||||||
|
<link>https://blog.voidarc.co.uk/posts/nix/</link>
|
||||||
|
<guid>https://blog.voidarc.co.uk/posts/nix/</guid>
|
||||||
|
<description>I really like Nix</description>
|
||||||
|
<author>Adumh00man</author>
|
||||||
|
<pubDate>Sun, 22 Mar 2026 19:35:56 +0000</pubDate>
|
||||||
|
<category>linux</category><category>blog</category><category>nix</category>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Making a Blog Using a Niche Markdown Language</title>
|
||||||
|
<link>https://blog.voidarc.co.uk/posts/site/</link>
|
||||||
|
<guid>https://blog.voidarc.co.uk/posts/site/</guid>
|
||||||
|
<description>How to make a blog using Norg and some random project from github</description>
|
||||||
|
<author>Adumh00man</author>
|
||||||
|
<pubDate>Sat, 21 Mar 2026 11:39:17 +0000</pubDate>
|
||||||
|
<category>blog</category><category>neorg</category><category>nvim</category><category>voidarc</category><category>webdev</category>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>How I fell in with Linux</title>
|
||||||
|
<link>https://blog.voidarc.co.uk/posts/homelab/</link>
|
||||||
|
<guid>https://blog.voidarc.co.uk/posts/homelab/</guid>
|
||||||
|
<description>Haha war of the worlds reference</description>
|
||||||
|
<author>Adumh00man</author>
|
||||||
|
<pubDate>Sat, 21 Mar 2026 19:08:28 +0000</pubDate>
|
||||||
|
<category>blog</category><category>voidarc</category><category>homelab</category><category>linux</category><category>webdev</category>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
Reference in New Issue
Block a user