uhh it's been a while so ig a fuckton changed?

This commit is contained in:
Mira Kristipati 2023-06-19 12:27:53 -04:00
parent 29564d7891
commit ad2a150d68
34 changed files with 1224 additions and 116 deletions

6
.gitmodules vendored
View file

@ -4,3 +4,9 @@ url = git@github.com:ArgentumCation/terminal-css.git
[submodule "littlelink"]
path = littlelink
url = git@github.com:ArgentumCation/littlelink.git
[submodule "submodules/littlelink"]
path = submodules/littlelink
url = ssh://git@ssh.argentumcation.com:2552/mira/littlelink.git
[submodule "submodules/littlelink-extended"]
path = submodules/littlelink-extended
url = https://github.com/sethcottle/littlelink-extended/

@ -1 +0,0 @@
Subproject commit 0d65b55b253309e4571253cafb003698083da726

View file

@ -2,19 +2,30 @@
"name": "blog",
"type": "module",
"version": "0.0.1",
"watch": {
"build": {
"patterns": [
"src"
],
"extensions": "md,js,mdx,css,html,css",
"silent": true
}
},
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
"astro": "astro",
"watch": "pnpm npm-watch"
},
"dependencies": {
"@astrojs/mdx": "^0.18.1",
"accessible-astro-components": "^1.6.5",
"astro": "^2.0.18",
"astro-icon": "^0.8.0",
"highlight.js": "^11.7.0",
"highlightjs-line-numbers.js": "^2.8.0",
"npm-watch": "^0.11.0",
"sass": "^1.59.3"
}
}

314
pnpm-lock.yaml generated
View file

@ -4,17 +4,21 @@ specifiers:
'@astrojs/mdx': ^0.18.1
accessible-astro-components: ^1.6.5
astro: ^2.0.18
astro-icon: ^0.8.0
highlight.js: ^11.7.0
highlightjs-line-numbers.js: ^2.8.0
npm-watch: ^0.11.0
sass: ^1.59.3
watch: ^1.0.2
dependencies:
'@astrojs/mdx': 0.18.1_astro@2.1.2
accessible-astro-components: 1.6.5
astro: 2.1.2_sass@1.59.3
astro-icon: 0.8.0
highlight.js: 11.7.0
highlightjs-line-numbers.js: 2.8.0
npm-watch: 0.11.0
sass: 1.59.3
watch: 1.0.2
packages:
@ -710,6 +714,11 @@ packages:
picomatch: 2.3.1
dev: false
/@trysound/sax/0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
dev: false
/@types/acorn/4.0.6:
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
dependencies:
@ -821,6 +830,10 @@ packages:
resolution: {integrity: sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA==}
dev: false
/abbrev/1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
dev: false
/accessible-astro-components/1.6.5:
resolution: {integrity: sha512-LmwIO/KJ7Sdq/P9H39SUcjWbuwAoZRW4UoEjMLeGN4TmvRa/HnT8zjXqg4emY9CqCLAnAas1Cx/Ts3PFROyyUA==}
dev: false
@ -897,6 +910,14 @@ packages:
hasBin: true
dev: false
/astro-icon/0.8.0:
resolution: {integrity: sha512-sCzhZcl46BIyLJVg89hq5J4uQABn2psmGvK4cUaxib+M/kBI3TrPy1w3g2O5h/WcrTHLVN9LyxjgkD4lEJJFpw==}
dependencies:
node-fetch: 3.3.1
resolve-pkg: 2.0.0
svgo: 2.8.0
dev: false
/astro/2.1.2_sass@1.59.3:
resolution: {integrity: sha512-qxBIPHfFJhwNOxI2E96XrGrUM6lGkDRkDY8iqEJNFWPGP+t5yY5SWb8H+OdYUGopexy1GGjoY7SYQCzFBkt7iw==}
engines: {node: '>=16.12.0', npm: '>=6.14.0'}
@ -975,6 +996,10 @@ packages:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
dev: false
/balanced-match/1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: false
/base64-js/1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
dev: false
@ -992,6 +1017,10 @@ packages:
readable-stream: 3.6.2
dev: false
/boolbase/1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: false
/boxen/6.2.1:
resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -1006,6 +1035,13 @@ packages:
wrap-ansi: 8.1.0
dev: false
/brace-expansion/1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
dev: false
/braces/3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@ -1156,10 +1192,19 @@ packages:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
dev: false
/commander/7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
dev: false
/common-ancestor-path/1.0.1:
resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
dev: false
/concat-map/0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: false
/convert-source-map/1.9.0:
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
dev: false
@ -1178,6 +1223,53 @@ packages:
which: 2.0.2
dev: false
/css-select/4.3.0:
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 4.3.1
domutils: 2.8.0
nth-check: 2.1.1
dev: false
/css-tree/1.1.3:
resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
engines: {node: '>=8.0.0'}
dependencies:
mdn-data: 2.0.14
source-map: 0.6.1
dev: false
/css-what/6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
dev: false
/csso/4.2.0:
resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
engines: {node: '>=8.0.0'}
dependencies:
css-tree: 1.1.3
dev: false
/data-uri-to-buffer/4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
dev: false
/debug/3.2.7_supports-color@5.5.0:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.2
supports-color: 5.5.0
dev: false
/debug/4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@ -1230,6 +1322,33 @@ packages:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: false
/dom-serializer/1.4.1:
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
dependencies:
domelementtype: 2.3.0
domhandler: 4.3.1
entities: 2.2.0
dev: false
/domelementtype/2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
dev: false
/domhandler/4.3.1:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
dev: false
/domutils/2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
dependencies:
dom-serializer: 1.4.1
domelementtype: 2.3.0
domhandler: 4.3.1
dev: false
/dset/3.1.2:
resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==}
engines: {node: '>=4'}
@ -1258,6 +1377,10 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: false
/entities/2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
dev: false
/es-module-lexer/1.2.0:
resolution: {integrity: sha512-2BMfqBDeVCcOlLaL1ZAfp+D868SczNpKArrTM3dhpd7dK/OVlogzY15qpUngt+LMTq5UC/csb9vVQAgupucSbA==}
dev: false
@ -1361,6 +1484,12 @@ packages:
engines: {node: '>=0.8.x'}
dev: false
/exec-sh/0.2.2:
resolution: {integrity: sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==}
dependencies:
merge: 1.2.1
dev: false
/execa/6.1.0:
resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -1410,6 +1539,14 @@ packages:
format: 0.2.2
dev: false
/fetch-blob/3.2.0:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
dependencies:
node-domexception: 1.0.0
web-streams-polyfill: 3.2.1
dev: false
/fill-range/7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@ -1445,6 +1582,13 @@ packages:
engines: {node: '>=0.4.x'}
dev: false
/formdata-polyfill/4.0.10:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
dependencies:
fetch-blob: 3.2.0
dev: false
/fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@ -1634,10 +1778,6 @@ packages:
engines: {node: '>=12.0.0'}
dev: false
/highlightjs-line-numbers.js/2.8.0:
resolution: {integrity: sha512-TEf1gw0c8mb8nan0QwliqS7obT4cpUd9hzsGzsZLweteNnWea/VIqy5/aQqsa5wnz9lnvmtAkS1ZtDTjB/goYQ==}
dev: false
/html-escaper/3.0.3:
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
dev: false
@ -1655,6 +1795,10 @@ packages:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
dev: false
/ignore-by-default/1.0.1:
resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
dev: false
/image-size/1.0.2:
resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==}
engines: {node: '>=14.0.0'}
@ -2098,10 +2242,18 @@ packages:
'@types/mdast': 3.0.10
dev: false
/mdn-data/2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
dev: false
/merge-stream/2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: false
/merge/1.2.1:
resolution: {integrity: sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==}
dev: false
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@ -2472,6 +2624,16 @@ packages:
engines: {node: '>=12'}
dev: false
/minimatch/3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
dev: false
/minimist/1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: false
/mri/1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@ -2493,10 +2655,48 @@ packages:
'@types/nlcst': 1.0.0
dev: false
/node-domexception/1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
dev: false
/node-fetch/3.3.1:
resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
data-uri-to-buffer: 4.0.1
fetch-blob: 3.2.0
formdata-polyfill: 4.0.10
dev: false
/node-releases/2.0.10:
resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
dev: false
/nodemon/2.0.22:
resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==}
engines: {node: '>=8.10.0'}
hasBin: true
dependencies:
chokidar: 3.5.3
debug: 3.2.7_supports-color@5.5.0
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
semver: 5.7.1
simple-update-notifier: 1.1.0
supports-color: 5.5.0
touch: 3.1.0
undefsafe: 2.0.5
dev: false
/nopt/1.0.10:
resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
hasBin: true
dependencies:
abbrev: 1.1.1
dev: false
/normalize-path/3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
@ -2509,6 +2709,20 @@ packages:
path-key: 4.0.0
dev: false
/npm-watch/0.11.0:
resolution: {integrity: sha512-wAOd0moNX2kSA2FNvt8+7ORwYaJpQ1ZoWjUYdb1bBCxq4nkWuU0IiJa9VpVxrj5Ks+FGXQd62OC/Bjk0aSr+dg==}
hasBin: true
dependencies:
nodemon: 2.0.22
through2: 4.0.2
dev: false
/nth-check/2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
dev: false
/onetime/5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
@ -2709,6 +2923,10 @@ packages:
resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==}
dev: false
/pstree.remy/1.1.8:
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
dev: false
/queue-microtask/1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: false
@ -2826,6 +3044,18 @@ packages:
unist-util-visit: 4.1.2
dev: false
/resolve-from/5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
dev: false
/resolve-pkg/2.0.0:
resolution: {integrity: sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==}
engines: {node: '>=8'}
dependencies:
resolve-from: 5.0.0
dev: false
/resolve/1.22.1:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
@ -2936,11 +3166,21 @@ packages:
kind-of: 6.0.3
dev: false
/semver/5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
hasBin: true
dev: false
/semver/6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
dev: false
/semver/7.0.0:
resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
hasBin: true
dev: false
/semver/7.3.8:
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
engines: {node: '>=10'}
@ -2977,6 +3217,13 @@ packages:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: false
/simple-update-notifier/1.1.0:
resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==}
engines: {node: '>=8.10.0'}
dependencies:
semver: 7.0.0
dev: false
/sisteransi/1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
dev: false
@ -2991,6 +3238,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
/source-map/0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
dev: false
/source-map/0.7.4:
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
engines: {node: '>= 8'}
@ -3004,6 +3256,11 @@ packages:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: false
/stable/0.1.8:
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
dev: false
/streamsearch/1.1.0:
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
engines: {node: '>=10.0.0'}
@ -3111,6 +3368,20 @@ packages:
engines: {node: '>= 0.4'}
dev: false
/svgo/2.8.0:
resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
engines: {node: '>=10.13.0'}
hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 4.3.0
css-tree: 1.1.3
csso: 4.2.0
picocolors: 1.0.0
stable: 0.1.8
dev: false
/synckit/0.8.5:
resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==}
engines: {node: ^14.18.0 || >=16.0.0}
@ -3119,6 +3390,12 @@ packages:
tslib: 2.5.0
dev: false
/through2/4.0.2:
resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
dependencies:
readable-stream: 3.6.2
dev: false
/tiny-glob/0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies:
@ -3138,6 +3415,13 @@ packages:
is-number: 7.0.0
dev: false
/touch/3.1.0:
resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==}
hasBin: true
dependencies:
nopt: 1.0.10
dev: false
/trim-lines/3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
dev: false
@ -3177,6 +3461,10 @@ packages:
hasBin: true
dev: false
/undefsafe/2.0.5:
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
dev: false
/undici/5.20.0:
resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==}
engines: {node: '>=12.18'}
@ -3418,6 +3706,15 @@ packages:
resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==}
dev: false
/watch/1.0.2:
resolution: {integrity: sha512-1u+Z5n9Jc1E2c7qDO8SinPoZuHj7FgbgU1olSFoyaklduDvvtX7GMMtlE6OC9FTXq4KvNAOfj6Zu4vI1e9bAKA==}
engines: {node: '>=0.1.95'}
hasBin: true
dependencies:
exec-sh: 0.2.2
minimist: 1.2.8
dev: false
/wcwidth/1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
dependencies:
@ -3428,6 +3725,11 @@ packages:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
dev: false
/web-streams-polyfill/3.2.1:
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
engines: {node: '>= 8'}
dev: false
/which-pm-runs/1.1.0:
resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==}
engines: {node: '>=4'}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

1
public/links/images/icons Symbolic link
View file

@ -0,0 +1 @@
../../../submodules/littlelink/images/icons

View file

@ -0,0 +1 @@
../../../submodules/littlelink-extended/images/icons-extended

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

23
public/themes.json Normal file
View file

@ -0,0 +1,23 @@
{
"lunar_witch": "Lunar Witch",
"gruvbox_dark": "Gruvbox Dark",
"ubuntu": "Ubuntu",
"nord": "Nord",
"Catppuccin_Mocha": "Catppuccin Mocha",
"silk_dark": "Silk Dark",
"github": "Github",
"Borland": "Borland",
"C64": "C64",
"Wild_Cherry": "Wild Cherry",
"Synthwave": "Synthwave",
"Bluloco_Zsh_Light": "Blueloco Zsh Light",
"Adventure_Time": "Adventure Time",
"Symphonic": "Symphonic",
"Atom":"Atom",
"Ayu_Dark": "Ayu Dark",
"Catppuccin_Latte": "Catppuccin Latte",
"Everforest_Dark":"Everforest Dark",
"Everforest_Light":"Everforest Light",
"Dracula": "Dracula",
"callmangler": "CallMangler"
}

View file

@ -2,7 +2,8 @@
// Import the global.css file here so that it is included on
// all pages through the use of the <BaseHead /> component.
import "../styles/global.css";
import "../styles/terminal-css/lunar-witch.css";
import "../styles/links/normalize.css";
import "../styles/terminal-css/main.css";
//import "../styles/terminal-css/base16-lunar-witch.css";
const { title, description } = Astro.props;
---

View file

@ -1,63 +1,66 @@
---
export interface Props {
title: string;
body: string;
href: string;
title: string;
date: Date;
author: string;
url: string;
}
const { href, title, body } = Astro.props;
const { url, date, title, author } = Astro.props;
---
<li class="link-card">
<a href={href}>
<h2>
{title}
<span>&rarr;</span>
</h2>
<p>
{body}
</p>
</a>
</li>
<a href={url}>
<div class="terminal-card">
<header>
{title}
<span>&rarr;</span>
</header>
<strong style="strong:hover">{author}</strong>
<p>
{date.toLocaleDateString()}
</p>
</div>
</a>
<style>
.link-card {
list-style: none;
display: flex;
padding: 0.25rem;
background-color: white;
background-image: none;
background-size: 400%;
border-radius: 0.6rem;
background-position: 100%;
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}
.link-card {
list-style: none;
display: flex;
padding: 0.25rem;
background-color: white;
background-image: none;
background-size: 400%;
border-radius: 0.6rem;
background-position: 100%;
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
0 2px 4px -2px rgba(0, 0, 0, 0.1);
}
.link-card > a {
width: 100%;
text-decoration: none;
line-height: 1.4;
padding: 1rem 1.3rem;
border-radius: 0.35rem;
color: #111;
background-color: white;
opacity: 0.8;
}
h2 {
margin: 0;
font-size: 1.25rem;
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
p {
margin-top: 0.5rem;
margin-bottom: 0;
color: #444;
}
.link-card:is(:hover, :focus-within) {
background-position: 0;
background-image: var(--accent-gradient);
}
.link-card:is(:hover, :focus-within) h2 {
color: rgb(var(--accent));
}
.link-card > a {
width: 100%;
text-decoration: none;
line-height: 1.4;
padding: 1rem 1.3rem;
border-radius: 0.35rem;
color: #111;
background-color: white;
opacity: 0.8;
}
h2 {
margin: 0;
font-size: 1.25rem;
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
p {
margin-top: 0.5rem;
margin-bottom: 0;
color: #444;
}
.link-card:is(:hover, :focus-within) {
background-position: 0;
background-image: var(--accent-gradient);
}
.link-card:is(:hover, :focus-within) h2 {
color: rgb(var(--accent));
}
</style>

View file

@ -1,11 +1,80 @@
---
import { log } from "astro/dist/core/logger/core";
const today = new Date();
let themeObj = await import("../../public/themes.json");
let themes = new Map(
Object.entries(themeObj).sort((a, b) =>
a[0].localeCompare(b[0], "en", { sensitivity: "base" })
)
);
themes.delete("default");
---
<footer>
This work &copy; {today.getFullYear()} by <a href="https://argentumcation.com"
>ArgentumCation (Mira Velturu)</a
> is licensed under <a
href="http://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a
>
<script is:inline>
function switchTheme(theme) {
window.localStorage.setItem("theme", theme);
let htmlNode = document.getElementsByTagName("html")[0];
let currentTheme = htmlNode.classList[0];
//let theme = elem.selectedOptions[0].id;
console.log(
`CurrentTheme: ${currentTheme}, Theme:${JSON.stringify(theme)}`
);
htmlNode.classList.replace(currentTheme, theme);
document.getElementById(theme).setAttribute("selected", true);
}
</script>
<script is:inline>
document.addEventListener("DOMContentLoaded", () =>
document.getElementById(theme)?.setAttribute("selected", "true")
);
</script>
<div class="h-card" style="display:inline">
This work &copy; {today.getFullYear()} by
<a href="https://argentumcation.com/links" rel="author">
<span class="p-nickname">ArgentumCation</span>
(<span class="p-name">Mira Velturu</span>)
</a>
<div hidden="">
<span class="p-honorific-suffix">Kendo 3-Kyu</span>
<img style="float:left; margin-right:4px" src="https://argentumcation.com/links/images/mira.jpg" alt="photo of Mira" class="u-photo"/>
<a class="u-email" href="mailto:mira@ミラ.コム">mira@ミラ.コム</a>
<div class="h-adr">
<span class="p-street-address">10520 Chapel Hill Rd.</span>
<span class="p-post-office-box">Box 382</span>
<span class="p-locality">Morrisville</span>,
<span class="p-region">NC</span>,
<span class="p-postal-code">27560</span>
<span class="p-country-name">USA</span>
</div>
<span class="dt-bday">20XX-04-02</span>
<div>
<span class="u-key"><!-- TODO --></span>
</div>
<span class="p-gender-identity">Who even knows anymore? (She/They)</span>
<span class="u-sound"><!-- Yes I know the spec says sound file but fuck you -->miɹʌ</span>
</div>
is licensed under
<a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" rel="license">CC BY-NC-SA 4.0</a>
</div>
<form style="display:inline-flex">
<div class="form-group" style="display:inline-flex">
<!-- <label for="theme">Theme</label> -->
<select
style="width:8em"
id="theme"
title="theme"
onchange="switchTheme(this.selectedOptions[0].id);"
>
{
Array.from(themes).map(([themeID, themeName]) => {
return <option id={themeID}>{themeName}</option>;
})
}
</select>
</div>
</form>
</footer>

View file

@ -1,15 +1,17 @@
<div class="terminal-nav">
<header class="terminal-logo">
<div class="logo terminal-prompt"><a href="https://argentumcation.com" class="no-style">ArgentumCation</a></div>
</header>
<nav class="terminal-menu">
<ul>
<li>
<a class="menu-item" href="https://links.argentumcation.com">Links</a>
</li>
<li>
<a class="menu-item" href="https://argentumcation.com/posts">Posts</a>
</li>
</ul>
</nav>
<header class="terminal-logo">
<div class="logo terminal-prompt">
<a href="/" class="no-style" rel="home">ArgentumCation</a>
</div>
</header>
<nav class="terminal-menu">
<ul>
<li>
<a class="menu-item" href="/links">Links</a>
</li>
<li>
<a class="menu-item" href="/posts">Posts</a>
</li>
</ul>
</nav>
</div>

View file

@ -5,12 +5,21 @@ import BaseHead from "../components/BaseHead.astro";
const { title } = Astro.props;
---
<!DOCTYPE html>
<script is:inline>
const theme = (() => {
if (typeof localStorage !== "undefined" && localStorage.getItem("theme")) {
return localStorage.getItem("theme");
}
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
return "lunar-witch";
}
return "Bluloco-Zsh-Light";
})();
window.localStorage.setItem("theme", theme);
document.documentElement.classList.add(theme);
</script>
<html lang="en">
<BaseHead
title={title}
description="I don't know what I'm doing here either"
/>
<BaseHead title={title} />
<body class="container">
<Header />
<main>

View file

@ -8,6 +8,19 @@ const {
} = Astro.props;
---
<script is:inline>
const theme = (() => {
if (typeof localStorage !== "undefined" && localStorage.getItem("theme")) {
return localStorage.getItem("theme");
}
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
return "lunar-witch";
}
return "Bluloco-Zsh-Light";
})();
window.localStorage.setItem("theme", theme);
document.documentElement.classList.add(theme);
</script>
<html lang="en">
<head>
<BaseHead title={title} description={description} />

View file

@ -8,6 +8,19 @@ const {
} = Astro.props;
---
<script is:inline>
const theme = (() => {
if (typeof localStorage !== "undefined" && localStorage.getItem("theme")) {
return localStorage.getItem("theme");
}
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
return "lunar-witch";
}
return "Bluloco-Zsh-Light";
})();
window.localStorage.setItem("theme", theme);
document.documentElement.classList.add(theme);
</script>
<html lang="en">
<head>
<BaseHead title={title} description={description} />
@ -23,11 +36,11 @@ const {
</style>
</head>
<body>
<Header />
<main>
<article>
<div class="article-head">
<h1 class="title">{title}</h1>
<p>POOt</p>POOT
<em>Written by: {author}</em>
</div>
<div class="article-body">

View file

@ -4,7 +4,19 @@ import Header from "../components/Header.astro";
import Footer from "../components/Footer.astro";
---
<!DOCTYPE html>
<script is:inline>
const theme = (() => {
if (typeof localStorage !== "undefined" && localStorage.getItem("theme")) {
return localStorage.getItem("theme");
}
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
return "lunar-witch";
}
return "Bluloco-Zsh-Light";
})();
window.localStorage.setItem("theme", theme);
document.documentElement.classList.add(theme);
</script>
<html lang="en">
<head>
<BaseHead title="ArgentumCation" />

518
src/pages/links.astro Normal file
View file

@ -0,0 +1,518 @@
---
import "../styles/links/normalize.css";
import "../styles/links/skeleton-dark.css";
import "../styles/terminal.css";
import "../styles/links/brands.css";
import "../styles/links/brands-extended.css";
import "../styles/links/brands-custom.css";
import "../styles/terminal-css/main.css";
import "../styles/links/global.css";
import Footer from "../components/Footer.astro";
let description =
"I don't know who you are or how you found this, but while you're here, feel free to add me everywhere";
---
<script is:inline>
const theme = (() => {
if (typeof localStorage !== "undefined" && localStorage.getItem("theme")) {
return localStorage.getItem("theme");
}
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
return "lunar-witch";
}
return "Bluloco-Zsh-Light";
})();
window.localStorage.setItem("theme", theme);
document.documentElement.classList.add(theme);
document.getElementById(theme)?.setAttribute("selected", "true");
</script>
<html lang="en">
<head>
<!-- Page Information
-->
<meta charset="utf-8" />
<title>ArgentumCation / Mira</title>
<meta name="description" content={description} />
<meta name="author" content="ArgentumCation" />
<!-- Mobile Specific Metas
-->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- CSS
-->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
/>
<!-- TODO: Favicon
-->
<link rel="icon" type="image/png" href="/links/images/avatar.png" />
<script>
window.onload = () => {
Array.from(document.getElementsByClassName("button")).map((el) => {
let magic = 400;
if (
el.innerText.length *
(Number(window.getComputedStyle(el).fontSize.slice(0, -2)) +
Number(
window.getComputedStyle(el).letterSpacing.slice(0, -2)
)) >
magic
) {
el.style.fontSize = `${magic / el.innerText.length}px`;
}
});
};
</script>
</head>
<body>
<!-- Primary Page Layout
-->
<div class="container">
<!-- <div class="row"> -->
<div class="column" style="margin-top: 5%">
<!-- Your Image Here -->
<img
src="/links/images/mira.jpg"
class="avatar"
srcset="/links/images/mira.jpg 2x"
alt="Despite everything, it's still me"
/>
<!-- Title -->
<h1 class="logo">
ArgentumCation<br /><br /><sub>she/they</sub><br /><br /><br />
</h1>
<!-- Short Bio -->
<p>
{description}
</p>
<div class="grid">
<!-- Blog -->
<a
class="button button-microblog"
href="/"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/blog.svg"
alt="Blog Logo"
/>Blog</a
>
<br />
<!-- GitHub -->
<a
class="button button-github"
href="https://github.com/ArgentumCation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/github.svg"
alt="GitHub Logo"
/>ArgentumCation</a
>
<br />
<!-- Gitea -->
<a
class="button button-gitea"
href="https://gitea.argentumcation.com/mira"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/gitea.svg"
alt="Gitea Logo"
/>mira</a
>
<br />
<!-- Matrix -->
<a
class="button button-matrix"
href="https://matrix.to/#/@argentumcation:cybre.space"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/matrix.svg"
alt="Matrix Logo"
/>@argentumcation:cybre.space</a
>
<br />
<!-- Twitter -->
<a
class="button button-twit"
href="https://twitter.com/ArgentumCation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/twitter.svg"
alt="Twitter Logo"
/>@ArgentumCation</a
>
<br />
<!-- Instagram -->
<a
class="button button-instagram"
href="https://www.instagram.com/argentumcation/"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/instagram.svg"
alt="Instagram Logo"
/>@ArgentumCation</a
>
<br />
<!-- YouTube -->
<a
class="button button-yt"
href="https://www.youtube.com/@ArgentumCation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/youtube.svg"
alt="YouTube Logo"
/>ArgentumCation</a
>
<br />
<!-- Discord -->
<a
class="button button-discord"
href="http://discord.com/users/215902078747410433"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/discord.svg"
alt="Discord Logo"
/>argentumcation</a
>
<br />
<!-- Twitch -->
<a
class="button button-twitch"
href="https://www.twitch.tv/argentumcation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/twitch.svg"
alt="Twitch Logo"
/>ArgentumCation</a
>
<br />
<!-- Spotify -->
<!-- <a class="button button-spotify" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/spotify.svg" alt="Spotify Logo">Listen on Spotify</a>
<br> -->
<!-- YouTube Music -->
<!-- <a class="button button-yt" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/youtube-music.svg" alt="YouTube Music Logo">Listen on YouTube Music</a>
<br> -->
<!-- Apple Music -->
<!-- <a class="button button-apple-music" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/apple-music.svg" alt="Apple Music Logo">Listen on Apple Music</a>
<br> -->
<!-- Substack -->
<!-- <a class="button button-substack" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/substack.svg" alt="Substack Logo">Subscribe on Substack</a>
<br> -->
<!-- Reddit -->
<a
class="button button-reddit"
href="https://reddit.com/u/ArgentumCation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/reddit.svg"
alt="Reddit Logo"
/>/u/ArgentumCation</a
>
<br />
<!-- Mastodon -->
<a
class="button button-mastodon"
href="https://tech.lgbt/@argentumcation"
target="_blank"
rel="me noopener"
>
<img
class="icon"
src="/links/images/icons/mastodon.svg"
alt="Mastodon Logo"
/>@ArgentumCation@tech.lgbt</a
>
<br />
<!-- TikTok -->
<a
class="button button-tiktok"
href="tiktok.com/@argentumcation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/tiktok.svg"
alt="TikTok Logo"
/>@ArgentumCation</a
>
<br />
<!-- Email -->
<a
class="button button-default"
href="mailto:argentumcation(at)argentumcation.com"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/email.svg"
alt="Email Icon"
/>argentumcation<i class="fa-light fa-at"></i>argentumcation.com</a
>
<br />
<!-- SoundCloud -->
<a
class="button button-soundcloud"
href="https://soundcloud.com/argentumcation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/soundcloud.svg"
alt="SoundCloud Logo"
/>ArgentumCation</a
>
<br />
<!-- Telegram -->
<!-- <a class="button button-telegram" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/telegram.svg" alt="Telegram Logo">Telegram</a>
<br> -->
<!-- Tumblr -->
<a
class="button button-tumb"
href="argentumcation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/tumblr.svg"
alt="Tumblr Logo"
/>argentumcation.tumblr.com</a
>
<br />
<!-- Steam -->
<a
class="button button-steam"
href="https://steamcommunity.com/id/argentumcation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/steam.svg"
alt="Steam Logo"
/>ArgentumCation</a
>
<br />
<!-- PayPal-->
<!-- <a class="button button-paypal" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/paypal.svg" alt="PayPal Logo">PayPal</a>
<br> -->
<!-- Bandcamp -->
<a
class="button button-bandcamp"
href="https://argentumcation.bandcamp.com/"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/bandcamp.svg"
alt="Bandcamp Logo"
/>ArgentumCation</a
>
<br />
<!-- Patreon -->
<!-- <a class="button button-patreon" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/patreon.svg" alt="Patreon Logo">Patreon</a>
<br> -->
<!-- Apple App Store -->
<!-- <a class="button button-appstore" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/appstore.svg" alt="Apple App Store Logo">Apple App Store</a>
<br> -->
<!-- Google Play Store -->
<!-- <a class="button button-playstore" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/playstore.svg" alt="Google Play Store Logo">Google Play Store</a>
<br> -->
<!-- Venmo -->
<!-- <a class="button button-venmo" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/venmo.svg" alt="Venmo Logo">Venmo</a>
<br> -->
<!-- Cash App BTC -->
<a
class="button button-bitcoin"
href="bitcoin:1NzncEg3C2Q72vbArCMU4wN2yPTnx5GU2h"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="images/icons/cash-app-btc.svg"
alt="Cash App Logo"
/>Bitcoin</a
>
<br />
<a
class="button button-ethereum"
href="ethereum:0xAdb87d93BAFda19ef168891d76c944879E06a7bd"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="images/icons/ethereum.svg"
alt="Cash App Logo"
/>Ethereum</a
>
<br />
<!-- OnlyFans -->
<!-- <a class="button button-onlyfans" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/onlyfans.svg" alt="Only Fans Logo">OnlyFans (18+)</a>
<br> -->
<!-- Web -->
<!-- <a class="button button-web" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/web.svg" alt="Web Logo">Website</a>
<br> -->
<!-- Buy Me a Coffee -->
<!-- <a class="button button-coffee" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/coffee.svg" alt="Buy Me a Coffee">Buy Me a Coffee</a>
<br> -->
<!-- Ko-fi -->
<!-- <a class="button button-ko-fi" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/ko-fi.svg" alt="Ko-fi">Ko-fi</a>
<br> -->
<!-- VRChat -->
<!-- <a class="button button-vrchat" href="#" target="_blank" rel="noopener">
<img class="icon" src="/links/images/icons/vrchat.svg" alt="VRChat Logo">VRChat</a>
<br> -->
<!-- Itch.io -->
<a
class="button button-itchio"
href="https://argentumcation.itch.io/"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons-extended/itchio.svg"
alt="Itch.io Logo"
/>ArgentumCation</a
>
<br />
<!-- MAL -->
<a
class="button button-myanimelist"
href="https://myanimelist.net/profile/ArgentumCation"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons-extended/myanimelist.svg"
alt="MAL Logo"
/>ArgentumCation</a
>
<br />
<!-- ArgenumCation PGP -->
<a
class="button button-pgp"
href="http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xdd8583a510deb949714ed847430c50ca90f98bbe"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/gpg.svg"
alt="GPG Logo"
/>ArgentumCation PGP Key</a
>
<br />
<!-- Mira Velturu PGP -->
<a
class="button button-pgp"
href="keyserver.ubuntu.com/pks/lookup?op=get&search=0x6a10df52e755e8174cd5c4c18ed045d80561353b"
target="_blank"
rel="noopener"
>
<img
class="icon"
src="/links/images/icons/gpg.svg"
alt="GPG Logo"
/>Mira Velturu PGP Key</a
>
<br />
<br />
</div>
<Footer />
</div>
</div>
<!-- End Document
-->
</body>
</html>

View file

@ -1,26 +1,32 @@
---
import BlogLayout from "../layouts/BlogLayout.astro";
import { Card } from "accessible-astro-components";
const posts = await Astro.glob("../pages/posts/**/*.mdx");
import Card from "../components/Card.astro";
const mdx_posts = await Astro.glob("../pages/posts/**/*.mdx");
const md_posts = await Astro.glob("../pages/posts/**/*.md");
const posts = mdx_posts.concat(md_posts);
---
<BlogLayout title="Blog">
<BlogLayout title="Posts">
<section>
<div class="container">
<ul>
{
posts.map((post) => (
<li>
<Card
url={"/posts/" + post.frontmatter.slug}
img={post.frontmatter.image}
title={post.frontmatter.title}
footer={post.frontmatter.author}
>
{post.frontmatter.description}
</Card>
</li>
))
posts
.sort(
(b, a) =>
new Date(a.frontmatter.pubDate).getTime() -
new Date(b.frontmatter.pubDate).getTime()
)
.map((post) => (
<li>
<Card
url={"/posts/" + post.frontmatter.slug}
title={post.frontmatter.title}
author={post.frontmatter.author}
date={new Date(post.frontmatter.pubDate)}
/>
</li>
))
}
</ul>
</div>

55
src/pages/posts/btrfs.md Normal file
View file

@ -0,0 +1,55 @@
---
title: "Lightning Talks: BTRFS"
author: "ArgentumCation"
layout: ../../layouts/Layout.astro
pubDate: "14 Apr, 2023"
slug: "btrfs"
tags: linux, btrfs
---
---
## Crash Course to Filesystems
- your OS needs a way to yeet files somewhere
- NTFS - the windows one
- HFS - the apple one
----
## BTRFS vs ZFS and LVM
- %%TODO: talk about PV, LV, VG%%
- Please don't use LVM in this day and age
- ZFS is a lot more mature than BTRFS and is probably the safer option, but the main caveats are that it can use hella ram space and doesn't have support for using disks of different sizes together
- On the other hand BTRFS is kinda dogshit if you want to do Raid 5/6, and doesn't let you do tiered storage (e.g. no SSD cache or ramdisk cache)
----
## Migrating your existing system
- Lucky you, EXT4 and NTFS can be converted to BTRFS in-place
- (Whether or not you should trust converting NTFS to BTRFS is another story)
- ### EXT4
- Grab a live USB and boot into it if this is a partition you can't unmount while booted (eg `/`, `/home`)
- make a goddamn backup cause fucking with partitions is just asking for accidental data loss
- okay now time to clean your filesystem
- `# e2fsck -fvy /dev/sdx`
- you'll also want to clear up some space before attempting this
- `# btrfs-convert -p -L --uuid copy -O compress /dev/sdx` to do the actual conversion
- if you're low on space add `-n`
- if you don't have an FS label on this partition, you can add a label after `-L`
- if something went wrong do `# btrfs-convert -r /dev/sdx`
- Now let's mount it with `# mount /dev/sdx /mnt/<mount point>`
- for example if this is your root partition, mount it to `/mnt`
- if it worked, run `# btrfs subvolume delete /mnt/<mount point>/ext2_saved` to yeet reversal data and save some space
- Now let's move everything into subvolumes to make backups and stuff easier
- cd over to where you mounted and run
- `# btrfs subvol create @<subvol name>`
- if you have `/home` on the same partition as root make a `@home` subvolume too.
- so for a root partition do `@`,
- `# mv * @<subvol name>`
- you want to do this in a bottom up way, ie move `/home/*` to `/@home` before you move `/` to `@`
-
-----
- btrbk
- in place conversion
- subvol layout
- dual Linux boot
- dual boot with windows
- automated package manager snapshots
- Swapfiles
- zfs comparison

View file

@ -0,0 +1,11 @@
---
title: "Lightning Talks: Welcome to the New Extreme"
author: "ArgentumCation"
layout: ../../layouts/Layout.astro
pubDate: "14 Apr, 2023"
slug: "modern-unix"
draft: true
---
- fcp
- ugrep
- rg

View file

@ -0,0 +1,8 @@
---
title: "Lightning Talks: Self Hosting with Docker-Compose and Cloudflare"
author: "ArgentumCation"
layout: ../../layouts/Layout.astro
pubDate: "14 Apr, 2023"
slug: "self-hosting"
draft: true
---

View file

@ -1,17 +1,19 @@
@import "https://unpkg.com/terminal.css@0.7.2/dist/terminal.min.css";
:root {
/* Terminal Colors */
--background-color: var(--base00, var(--background));
--font-color: var(--base05, var(--foreground));
--invert-font-color: var(--base00, var(--background));
--primary-color: var(--base0D, var(--cyan));
--secondary-color: var(--base0D, var(--cyan));
--invert-font-color: var(--base01, var(--black));
--primary-color: var(--base0C, var(--cyan));
--secondary-color: var(--base0C, var(--cyan));
--tertiary-color: var(--base0B, var(--green));
--error-color: var(--base08, var(--red));
--progress-bar-background: var(--base04, var(--blue));
--progress-bar-fill: var(--base02, var(--cyan));
--code-bg-color: var(--base00, var(--background));
--global-font-color: var(--font-color);
--page-width: 65em;
/* Astro Config */
--astro-code-color-text: var(--base05, --foreground);
--astro-code-color-background: var(--base00, --background);
@ -39,10 +41,12 @@ pre code.hljs {
code.hljs {
padding: 3px 5px;
font-weight: normal;
color: var(--base05, var(--foreground));
}
.hljs {
color: var(--base05, var(--foreground));
color: var(--base01, var(--foreground));
background: var(--base00, var(--background));
}
@ -55,12 +59,12 @@ code.hljs {
/* purposely do not highlight these things */
.hljs-formula,
.hljs-params,
.hljs-property {
}
.hljs-property {}
/* base03 - var(--base03,) - Comments, Invisibles, Line Highlighting */
.hljs-comment {
color: var(--base03, var(--bright-black));
background-color: var(--base00, var(--black));
color: var(--base03, var(--bright-white));
}
/* base04 - var(--base04,) - Dark Foreground (Used for status bars) */
@ -121,7 +125,8 @@ code.hljs {
/* base0C - Support, Regular Expressions, Escape Characters, Markup Quotes */
.hljs-built_in,
.hljs-doctag, /* guessing */
.hljs-doctag,
/* guessing */
.hljs-quote,
.hljs-keyword.hljs-atrule,
.hljs-regexp {
@ -148,6 +153,7 @@ code.hljs {
.hljs-keyword {
color: var(--base0E, var(--magenta));
}
.hljs-emphasis {
color: var(--base0E, var(--magenta));
font-style: italic;
@ -172,11 +178,14 @@ code.hljs {
code {
background-color: var(--base03, var(--bright-black));
color: var(--base07, var(--bright-white));
font-weight: bold;
}
footer {
padding-bottom: 1em;
}
.astro-code {
background-color: unset;
padding: 0.5rem;
@ -186,13 +195,37 @@ main {
min-height: 85vh;
}
li:has(.card)::after {
li:has(.terminal-card)::after {
content: unset;
}
.terminal-card:hover {
color: var(--primary-color);
}
.terminal-card {
padding: 1em;
}
.terminal-card header {
margin: -1em -1em 1em -1em;
}
.button.button-microblog {
background-color: var(--primary-color);
}
select {
background-color: var(--background-color);
color: var(--font-color);
margin: 0 1ex;
border-color: var(--primary-color);
}
ol {
list-style-type: decimal;
}
ol ol {
list-style-type: lower-alpha;
}
@ -220,6 +253,7 @@ ol ol ol ol ol ol ol {
ol ol ol ol ol ol ol ol {
list-style-type: cjk-earthly-branch;
}
ol ol ol ol ol ol ol ol ol {
list-style-type: cjk-heavenly-stem;
}

View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/brands-custom.css

View file

@ -0,0 +1 @@
../../../submodules/littlelink-extended/css/brands-extended.css

1
src/styles/links/brands.css Symbolic link
View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/brands.css

1
src/styles/links/global.css Symbolic link
View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/global.css

1
src/styles/links/normalize.css vendored Symbolic link
View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/normalize.css

View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/skeleton-auto.css

View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/skeleton-dark.css

View file

@ -0,0 +1 @@
../../../submodules/littlelink/css/skeleton-light.css

1
src/styles/terminal.css Normal file
View file

@ -0,0 +1 @@
@import "https://unpkg.com/terminal.css@0.7.2/dist/terminal.min.css";

1
submodules/littlelink Submodule

@ -0,0 +1 @@
Subproject commit bf39aaba0acd6e9e57e7b3b62c595aa02291e9ed

@ -0,0 +1 @@
Subproject commit fd2f597182e2fc9e5e872b4a798848c013a23d76