Domain migration of fosterhangdaan.com

All services have been moved to `hangdaan.com`
This commit is contained in:
Foster Hangdaan 2025-01-20 09:27:21 -05:00
parent 4454cc0f6e
commit 1168edf1f7
Signed by: foster
GPG key ID: E48D7F49A852F112
15 changed files with 63 additions and 57 deletions

View file

@ -4,11 +4,11 @@
* About * About
This is the source code of [[https://www.fosterhangdaan.com]]. It is made with a static site generator called [[https://lume.land/][Lume]]. This is the source code of [[https://www.foster.hangdaan.com][foster.hangdaan.com]]. It is made with a static site generator called [[https://lume.land/][Lume]].
* Repository * Repository
In case you have received this code from another source, the repository can be found online at [[https://code.fosterhangdaan.com/foster/website]]. In case you have received this code from another source, the repository can be found online at [[https://code.hangdaan.com/foster/website]].
* Getting Started * Getting Started
@ -46,7 +46,7 @@ Sources for assets used in the site:
* My Contact Information * My Contact Information
- Email: [[mailto:foster@hangdaan.email][foster@hangdaan.email]] - Email: [[mailto:foster@hangdaan.email][foster@hangdaan.email]]
- GPG Public Key: [[https://minio.fosterhangdaan.com/public/foster-pubkey.asc][DBD3 8E38 4B9E 1F4F 19F9 5BAE E48D 7F49 A852 F112]] - GPG Public Key: [[https://s3.hangdaan.com/public/foster-pubkey.asc][DBD3 8E38 4B9E 1F4F 19F9 5BAE E48D 7F49 A852 F112]]
* License * License

View file

@ -6,7 +6,7 @@ import feed from "lume/plugins/feed.ts";
import code_highlight from "lume/plugins/code_highlight.ts"; import code_highlight from "lume/plugins/code_highlight.ts";
import toc from "lume-markdown-plugins/toc.ts"; import toc from "lume-markdown-plugins/toc.ts";
import footnotes from "lume-markdown-plugins/footnotes.ts"; import footnotes from "lume-markdown-plugins/footnotes.ts";
import kroki from "https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/mod.ts"; import kroki from "https://code.hangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/mod.ts";
import lang_typescript from "npm:highlight.js/lib/languages/typescript"; import lang_typescript from "npm:highlight.js/lib/languages/typescript";
import lang_javascript from "npm:highlight.js/lib/languages/javascript"; import lang_javascript from "npm:highlight.js/lib/languages/javascript";
@ -14,7 +14,7 @@ import lang_bash from "npm:highlight.js/lib/languages/bash";
const site = lume({ const site = lume({
src: "./src", src: "./src",
location: new URL("https://www.fosterhangdaan.com/"), location: new URL("https://www.foster.hangdaan.com/"),
}); });
site.ignore("README.md", "README.org", "LICENSE.txt", "LICENSE.md"); site.ignore("README.md", "README.org", "LICENSE.txt", "LICENSE.md");
@ -76,7 +76,7 @@ site.use(toc({
})); }));
site.use(footnotes()); site.use(footnotes());
site.use(kroki({ site.use(kroki({
server: "https://kroki.fosterhangdaan.com", server: "https://kroki.hangdaan.com",
})); }));
site.process([".html"], (pages) => { site.process([".html"], (pages) => {

View file

@ -8,9 +8,9 @@
] ]
}, },
"tasks": { "tasks": {
"build": "deno run --allow-write='.' --allow-read='.' --allow-net='deno.land,cdn.deno.land,esm.sh,0.0.0.0:3000,jsr.io,lumeland.github.io,code.fosterhangdaan.com' --allow-import=code.fosterhangdaan.com,deno.land,jsr.io --allow-sys=networkInterfaces --deny-env lume.ts", "build": "deno run --allow-write='.' --allow-read='.' --allow-net='deno.land,cdn.deno.land,esm.sh,0.0.0.0:3000,jsr.io,lumeland.github.io,code.hangdaan.com' --allow-import=code.hangdaan.com,deno.land,jsr.io --allow-sys=networkInterfaces --deny-env lume.ts",
"check": "deno fmt --check && deno lint && deno check --allow-import=code.fosterhangdaan.com,deno.land,jsr.io .", "check": "deno fmt --check && deno lint && deno check --allow-import=code.hangdaan.com,deno.land,jsr.io .",
"serve": "deno run --allow-write='.' --allow-read='.' --allow-net='deno.land,cdn.deno.land,esm.sh,0.0.0.0:3000,jsr.io,lumeland.github.io,code.fosterhangdaan.com' --allow-import=code.fosterhangdaan.com,deno.land,jsr.io --allow-sys=networkInterfaces --deny-env lume.ts -s", "serve": "deno run --allow-write='.' --allow-read='.' --allow-net='deno.land,cdn.deno.land,esm.sh,0.0.0.0:3000,jsr.io,lumeland.github.io,code.hangdaan.com' --allow-import=code.hangdaan.com,deno.land,jsr.io --allow-sys=networkInterfaces --deny-env lume.ts -s",
"deploy": "rsync -avh --progress --delete ./_site/ podman:/srv/www/fosterhangdaan.com/" "deploy": "rsync -avh --progress --delete ./_site/ podman:/srv/www/fosterhangdaan.com/"
}, },
"imports": { "imports": {

3
deno.lock generated
View file

@ -1078,6 +1078,9 @@
"https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/deps.ts": "9fbdd3352d05215ae61afe70c52f42f16d068a81bf694f8df053a6a1e7221299", "https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/deps.ts": "9fbdd3352d05215ae61afe70c52f42f16d068a81bf694f8df053a6a1e7221299",
"https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/mod.ts": "195d60f71ec5bb3eb3aa95008a559dca0635e031d6c113be4646bc07697d3c32", "https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/mod.ts": "195d60f71ec5bb3eb3aa95008a559dca0635e031d6c113be4646bc07697d3c32",
"https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/resources/diagrams.json": "a1ca8c52b7f5a8d5335d3872ba0c0d2a4b32ef120efd8819557787a4232b649f", "https://code.fosterhangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/resources/diagrams.json": "a1ca8c52b7f5a8d5335d3872ba0c0d2a4b32ef120efd8819557787a4232b649f",
"https://code.hangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/deps.ts": "9fbdd3352d05215ae61afe70c52f42f16d068a81bf694f8df053a6a1e7221299",
"https://code.hangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/mod.ts": "195d60f71ec5bb3eb3aa95008a559dca0635e031d6c113be4646bc07697d3c32",
"https://code.hangdaan.com/foster/lume-plugin-kroki/raw/tag/v1.0.1/resources/diagrams.json": "a1ca8c52b7f5a8d5335d3872ba0c0d2a4b32ef120efd8819557787a4232b649f",
"https://deno.land/std@0.170.0/_util/asserts.ts": "d0844e9b62510f89ce1f9878b046f6a57bf88f208a10304aab50efcb48365272", "https://deno.land/std@0.170.0/_util/asserts.ts": "d0844e9b62510f89ce1f9878b046f6a57bf88f208a10304aab50efcb48365272",
"https://deno.land/std@0.170.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934", "https://deno.land/std@0.170.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934",
"https://deno.land/std@0.170.0/encoding/base64.ts": "8605e018e49211efc767686f6f687827d7f5fd5217163e981d8d693105640d7a", "https://deno.land/std@0.170.0/encoding/base64.ts": "8605e018e49211efc767686f6f687827d7f5fd5217163e981d8d693105640d7a",

View file

@ -8,12 +8,12 @@ export default function ({ comp }: Lume.Data) {
{comp.separator()} {comp.separator()}
<div className="social-links"> <div className="social-links">
<a <a
href="https://code.fosterhangdaan.com/foster" href="https://code.hangdaan.com/foster"
title="Forgejo" title="Forgejo"
rel="me" rel="me"
> >
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/simple-icons/13.9.0/forgejo.svg" src="https://s3.hangdaan.com/public/images/icons/simple-icons/13.9.0/forgejo.svg"
className="icon" className="icon"
style={iconStyle} style={iconStyle}
alt="forgejo" alt="forgejo"
@ -21,46 +21,49 @@ export default function ({ comp }: Lume.Data) {
</a> </a>
<a href="mailto:foster@hangdaan.email" title="eMail"> <a href="mailto:foster@hangdaan.email" title="eMail">
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/filled/mail.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/filled/mail.svg"
className="icon" className="icon"
style={iconStyle} style={iconStyle}
alt="e-mail" alt="e-mail"
/> />
</a> </a>
<a <a
href="https://lemmy.fosterhangdaan.com/u/foster" href="https://lemmy.hangdaan.com/u/foster"
title="Lemmy" title="Lemmy"
rel="me" rel="me"
> >
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/simple-icons/13.9.0/lemmy.svg" src="https://s3.hangdaan.com/public/images/icons/simple-icons/13.9.0/lemmy.svg"
className="icon" className="icon"
style={iconStyle} style={iconStyle}
alt="lemmy icon" alt="lemmy icon"
/> />
</a> </a>
<a href="https://pay.fosterhangdaan.com" title="Donate"> <a href="https://pay.hangdaan.com" title="Donate">
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/heart-dollar.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/heart-dollar.svg"
className="icon" className="icon"
style={iconStyle} style={iconStyle}
alt="donate" alt="donate"
/> />
</a> </a>
<a href="https://www.fosterhangdaan.com/blog/feed.rss" title="RSS Feed"> <a
href="https://www.foster.hangdaan.com/blog/feed.rss"
title="RSS Feed"
>
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/rss.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/rss.svg"
className="icon" className="icon"
style={iconStyle} style={iconStyle}
alt="rss" alt="rss"
/> />
</a> </a>
<a <a
href="https://www.fosterhangdaan.com/blog/feed.json" href="https://www.foster.hangdaan.com/blog/feed.json"
title="JSON Feed" title="JSON Feed"
> >
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/braces.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/braces.svg"
className="icon" className="icon"
style={iconStyle} style={iconStyle}
alt="json feed" alt="json feed"
@ -69,8 +72,8 @@ export default function ({ comp }: Lume.Data) {
</div> </div>
<p>Copyright &copy; 2023 Foster Hangdaan</p> <p>Copyright &copy; 2023 Foster Hangdaan</p>
<div className="meta"> <div className="meta">
<a href="https://code.fosterhangdaan.com/foster/website">Source</a> <a href="https://code.hangdaan.com/foster/website">Source</a>
<a href="https://code.fosterhangdaan.com/foster/website/src/branch/trunk/LICENSE.txt"> <a href="https://code.hangdaan.com/foster/website/src/branch/trunk/LICENSE.txt">
License License
</a> </a>
</div> </div>

View file

@ -4,7 +4,7 @@ const items = [
path: "/", path: "/",
icon: { icon: {
src: src:
"https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/home.svg", "https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/home.svg",
alt: "home icon", alt: "home icon",
}, },
}, },
@ -13,7 +13,7 @@ const items = [
path: "/blog", path: "/blog",
icon: { icon: {
src: src:
"https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/news.svg", "https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/news.svg",
alt: "blog icon", alt: "blog icon",
}, },
}, },
@ -22,7 +22,7 @@ const items = [
path: "/resume", path: "/resume",
icon: { icon: {
src: src:
"https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/file-cv.svg", "https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/file-cv.svg",
alt: "resume icon", alt: "resume icon",
}, },
}, },
@ -31,7 +31,7 @@ const items = [
path: "/contact", path: "/contact",
icon: { icon: {
src: src:
"https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/address-book.svg", "https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/address-book.svg",
alt: "address book icon", alt: "address book icon",
}, },
}, },

View file

@ -4,7 +4,7 @@ export default function () {
<span className="outer-outline" /> <span className="outer-outline" />
<span> <span>
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/diamonds.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/diamonds.svg"
className="icon" className="icon"
style={{ filter: "var(--filter-black)" }} style={{ filter: "var(--filter-black)" }}
alt="" alt=""

View file

@ -58,7 +58,7 @@ export default function (
<img <img
alt="email icon" alt="email icon"
className="icon" className="icon"
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/mail.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/mail.svg"
/> />
Email reply Email reply
</a> </a>

View file

@ -163,13 +163,13 @@ blockquote {
left: calc(-0.75rem - 1.5rem); left: calc(-0.75rem - 1.5rem);
filter: var(--filter-bg); filter: var(--filter-bg);
content: ""; content: "";
background-image: url("https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/quote.svg"); background-image: url("https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/quote.svg");
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
background-size: contain !important; background-size: contain !important;
} }
&.info { &.info {
&::before { &::before {
background-image: url("https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/info-circle.svg"); background-image: url("https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/info-circle.svg");
} }
& { & {
color: var(--color-blue); color: var(--color-blue);
@ -178,7 +178,7 @@ blockquote {
} }
&.success { &.success {
&::before { &::before {
background-image: url("https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/check.svg"); background-image: url("https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/check.svg");
} }
& { & {
color: var(--color-success); color: var(--color-success);
@ -187,7 +187,7 @@ blockquote {
} }
&.warning { &.warning {
&::before { &::before {
background-image: url("https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/alert-triangle.svg"); background-image: url("https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/alert-triangle.svg");
} }
& { & {
color: var(--color-warn); color: var(--color-warn);
@ -196,7 +196,7 @@ blockquote {
} }
&.danger { &.danger {
&::before { &::before {
background-image: url("https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/circle-x.svg"); background-image: url("https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/circle-x.svg");
} }
& { & {
color: var(--color-error); color: var(--color-error);

View file

@ -1,6 +1,6 @@
/* Tokyo Night styles for highlight.js */ /* Tokyo Night styles for highlight.js */
@import "https://minio.fosterhangdaan.com/public/releases/js/highlightjs/11.10.0/styles/tokyo-night-dark.css"; @import "https://s3.hangdaan.com/public/releases/js/highlightjs/11.10.0/styles/tokyo-night-dark.css";
@import "https://minio.fosterhangdaan.com/public/releases/js/highlightjs/11.10.0/styles/tokyo-night-light.css" @import "https://s3.hangdaan.com/public/releases/js/highlightjs/11.10.0/styles/tokyo-night-light.css"
(prefers-color-scheme: light); (prefers-color-scheme: light);
/* Tokyo night color palette */ /* Tokyo night color palette */

View file

@ -1,9 +1,9 @@
@font-face { @font-face {
font-family: "Mona Sans"; font-family: "Mona Sans";
src: src:
url("https://minio.fosterhangdaan.com/public/fonts/mona-sans/1.0.1/MonaSans%5Bslnt,wdth,wght%5D.woff2") url("https://s3.hangdaan.com/public/fonts/mona-sans/1.0.1/MonaSans%5Bslnt,wdth,wght%5D.woff2")
format("woff2 supports variations"), format("woff2 supports variations"),
url("https://minio.fosterhangdaan.com/public/fonts/mona-sans/1.0.1/MonaSans%5Bslnt,wdth,wght%5D.woff2") url("https://s3.hangdaan.com/public/fonts/mona-sans/1.0.1/MonaSans%5Bslnt,wdth,wght%5D.woff2")
format("woff2-variations"); format("woff2-variations");
font-weight: 200 900; font-weight: 200 900;
font-stretch: 75% 125%; font-stretch: 75% 125%;
@ -13,9 +13,9 @@
@font-face { @font-face {
font-family: "Hubot Sans"; font-family: "Hubot Sans";
src: src:
url("https://minio.fosterhangdaan.com/public/fonts/hubot-sans/1.0.1/HubotSans%5Bslnt,wdth,wght%5D.woff2") url("https://s3.hangdaan.com/public/fonts/hubot-sans/1.0.1/HubotSans%5Bslnt,wdth,wght%5D.woff2")
format("woff2 supports variations"), format("woff2 supports variations"),
url("https://minio.fosterhangdaan.com/public/fonts/hubot-sans/1.0.1/HubotSans%5Bslnt,wdth,wght%5D.woff2") url("https://s3.hangdaan.com/public/fonts/hubot-sans/1.0.1/HubotSans%5Bslnt,wdth,wght%5D.woff2")
format("woff2-variations"); format("woff2-variations");
font-weight: 200 900; font-weight: 200 900;
font-stretch: 75% 125%; font-stretch: 75% 125%;
@ -25,9 +25,9 @@
@font-face { @font-face {
font-family: "Monaspace Neon"; font-family: "Monaspace Neon";
src: src:
url("https://minio.fosterhangdaan.com/public/fonts/monaspace/1.101/MonaspaceNeonVarVF%5Bwght,wdth,slnt%5D.woff2") url("https://s3.hangdaan.com/public/fonts/monaspace/1.101/MonaspaceNeonVarVF%5Bwght,wdth,slnt%5D.woff2")
format("woff2 supports variations"), format("woff2 supports variations"),
url("https://minio.fosterhangdaan.com/public/fonts/monaspace/1.101/MonaspaceNeonVarVF%5Bwght,wdth,slnt%5D.woff2") url("https://s3.hangdaan.com/public/fonts/monaspace/1.101/MonaspaceNeonVarVF%5Bwght,wdth,slnt%5D.woff2")
format("woff2-variations"); format("woff2-variations");
font-weight: 200 800; font-weight: 200 800;
font-stretch: 100% 125%; font-stretch: 100% 125%;
@ -37,9 +37,9 @@
@font-face { @font-face {
font-family: "Monaspace Radon"; font-family: "Monaspace Radon";
src: src:
url("https://minio.fosterhangdaan.com/public/fonts/monaspace/1.101/MonaspaceRadonVarVF%5Bwght,wdth,slnt%5D.woff2") url("https://s3.hangdaan.com/public/fonts/monaspace/1.101/MonaspaceRadonVarVF%5Bwght,wdth,slnt%5D.woff2")
format("woff2 supports variations"), format("woff2 supports variations"),
url("https://minio.fosterhangdaan.com/public/fonts/monaspace/1.101/MonaspaceRadonVarVF%5Bwght,wdth,slnt%5D.woff2") url("https://s3.hangdaan.com/public/fonts/monaspace/1.101/MonaspaceRadonVarVF%5Bwght,wdth,slnt%5D.woff2")
format("woff2-variations"); format("woff2-variations");
font-weight: 200 800; font-weight: 200 800;
font-stretch: 100% 125%; font-stretch: 100% 125%;
@ -49,9 +49,9 @@
@font-face { @font-face {
font-family: "Monaspace Xenon"; font-family: "Monaspace Xenon";
src: src:
url("https://minio.fosterhangdaan.com/public/fonts/monaspace/1.101/MonaspaceXenonVarVF%5Bwght,wdth,slnt%5D.woff2") url("https://s3.hangdaan.com/public/fonts/monaspace/1.101/MonaspaceXenonVarVF%5Bwght,wdth,slnt%5D.woff2")
format("woff2 supports variations"), format("woff2 supports variations"),
url("https://minio.fosterhangdaan.com/public/fonts/monaspace/1.101/MonaspaceXenonVarVF%5Bwght,wdth,slnt%5D.woff2") url("https://s3.hangdaan.com/public/fonts/monaspace/1.101/MonaspaceXenonVarVF%5Bwght,wdth,slnt%5D.woff2")
format("woff2-variations"); format("woff2-variations");
font-weight: 200 800; font-weight: 200 800;
font-stretch: 100% 125%; font-stretch: 100% 125%;

View file

@ -9,7 +9,7 @@ export default function ({ nav, comp }: Lume.Data) {
return ( return (
<div className="no-posts"> <div className="no-posts">
<img <img
src="https://minio.fosterhangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/coffee.svg" src="https://s3.hangdaan.com/public/images/icons/tabler-icons/3.14.0/outline/coffee.svg"
className="icon" className="icon"
alt="" alt=""
/> />

View file

@ -61,7 +61,7 @@ list? Well, Tokyo Night is that colour palette. This website uses the Night
variant for its dark theme and the Light variant for its light theme. variant for its dark theme and the Light variant for its light theme.
I also created an **unofficial** I also created an **unofficial**
[Tokyo Night organization](https://code.fosterhangdaan.com/tokyo-night) to serve [Tokyo Night organization](https://code.hangdaan.com/tokyo-night) to serve
as a hub where one can find the ports made by others as well as ports made by as a hub where one can find the ports made by others as well as ports made by
myself. You can find a good amount of resources in that organization if you plan myself. You can find a good amount of resources in that organization if you plan
on using Tokyo Night in a project. on using Tokyo Night in a project.

View file

@ -20,7 +20,7 @@ if you are unfamiliar with this process.
> {.warning} > {.warning}
You can download my [GPG](https://gnupg.org/) public key here: You can download my [GPG](https://gnupg.org/) public key here:
[Foster Hangdaan's Public Key](https://minio.fosterhangdaan.com/public/foster-pubkey.asc){download}. [Foster Hangdaan's Public Key](https://s3.hangdaan.com/public/foster-pubkey.asc){download}.
The key's fingerprint should match the one below: The key's fingerprint should match the one below:
```txt ```txt

View file

@ -6,7 +6,7 @@ export default function (data: Lume.Data) {
<p> <p>
I am a software developer, open-source enthusiast, and lover of pizza. I am a software developer, open-source enthusiast, and lover of pizza.
You'll most likely find me within{" "} You'll most likely find me within{" "}
<a href="https://code.fosterhangdaan.com">my lab</a>{" "} <a href="https://code.hangdaan.com">my lab</a>{" "}
tinkering with my inventions and the latest JavaScript frameworks. Other tinkering with my inventions and the latest JavaScript frameworks. Other
times, I help in the battle for an open web and for user privacy by times, I help in the battle for an open web and for user privacy by
contributing in the development of free and open-source software. contributing in the development of free and open-source software.
@ -21,7 +21,7 @@ export default function (data: Lume.Data) {
</p> </p>
<ul> <ul>
<li> <li>
<a href="https://code.fosterhangdaan.com/foster/vimm-dl"> <a href="https://code.hangdaan.com/foster/vimm-dl">
Vimm DL Vimm DL
</a>{" "} </a>{" "}
&mdash; A secure command-line tool to automate game downloads from &mdash; A secure command-line tool to automate game downloads from
@ -29,31 +29,31 @@ export default function (data: Lume.Data) {
<a href="https://vimm.net/vault">Vimm's Vault</a>. <a href="https://vimm.net/vault">Vimm's Vault</a>.
</li> </li>
<li> <li>
<a href="https://code.fosterhangdaan.com/foster/ipme">IpMe</a>{" "} <a href="https://code.hangdaan.com/foster/ipme">IpMe</a>{" "}
&mdash; A self-hostable API for obtaining your public IP address. &mdash; A self-hostable API for obtaining your public IP address.
</li> </li>
<li> <li>
<a href="https://code.fosterhangdaan.com/foster/grub-themes"> <a href="https://code.hangdaan.com/foster/grub-themes">
GRUB Themes GRUB Themes
</a>{" "} </a>{" "}
&mdash; Collection of themes for the <strong>GR</strong>and{" "} &mdash; Collection of themes for the <strong>GR</strong>and{" "}
<strong>U</strong>nified <strong>B</strong>ootloader. <strong>U</strong>nified <strong>B</strong>ootloader.
</li> </li>
<li> <li>
<a href="https://code.fosterhangdaan.com/foster/bitcoin-core-container"> <a href="https://code.hangdaan.com/foster/bitcoin-core-container">
Bitcoin Core Container Bitcoin Core Container
</a>{" "} </a>{" "}
&mdash; A containerized Bitcoin node. &mdash; A containerized Bitcoin node.
</li> </li>
<li> <li>
<a href="https://code.fosterhangdaan.com/foster/website"> <a href="https://code.hangdaan.com/foster/website">
This website This website
</a>{" "} </a>{" "}
&mdash; My personal website &amp; blog. &mdash; My personal website &amp; blog.
</li> </li>
</ul> </ul>
<p> <p>
<a href="https://code.fosterhangdaan.com/foster?tab=repositories&fork=0&mirror=0&sort=alphabetically"> <a href="https://code.hangdaan.com/foster?tab=repositories&fork=0&mirror=0&sort=alphabetically">
View all projects View all projects
</a> </a>
</p> </p>
@ -110,12 +110,12 @@ export default function (data: Lume.Data) {
<tbody> <tbody>
<tr> <tr>
<td>BTC (Bitcoin)</td> <td>BTC (Bitcoin)</td>
<td>btcnode.fosterhangdaan.com</td> <td>btcnode.hangdaan.com</td>
<td>8333</td> <td>8333</td>
</tr> </tr>
<tr> <tr>
<td>XMR (Monero)</td> <td>XMR (Monero)</td>
<td>xmrnode.fosterhangdaan.com</td> <td>xmrnode.hangdaan.com</td>
<td>18080</td> <td>18080</td>
</tr> </tr>
</tbody> </tbody>