site

personal website, served at mordaunt.dev/site
Log | Files | Refs

commit 4ed4447c5b3650d4286b155e9c1fb968e85028fd
parent cea5f195622f70d19b48d29d2629eab2bc656e24
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date:   Fri, 11 Jul 2025 11:40:10 -0300

site: add content

Diffstat:
M.gitignore | 1+
Aarchetypes/default.md | 5+++++
Aassets/css/custom.css | 216+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/about.md | 22++++++++++++++++++++++
Acontent/contact.html | 25+++++++++++++++++++++++++
Acontent/pay-with-bitcoin.html | 37+++++++++++++++++++++++++++++++++++++
Ahugo.toml | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Astatic/images/self.jpg | 0
8 files changed, 411 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1 +1,2 @@ .DS_Store +.hugo_build.lock diff --git a/archetypes/default.md b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/assets/css/custom.css b/assets/css/custom.css @@ -0,0 +1,216 @@ +.custom-icon { + height: 2em; /* Match Font Awesome's fa-2x */ + width: auto; /* Maintain aspect ratio */ + vertical-align: text-bottom; /* Align nicely with inline icons */ + display: inline-block; + fill: currentColor; /* If the SVG supports currentColor */ +} + +.custom-icon-dark, .custom-icon-light { + display: none; +} + +.colorscheme-dark .custom-icon-dark{ + display: inline-block; +} + +.colorscheme-light .custom-icon-dark { + display: none; +} + +.colorscheme-light .custom-icon-light { + display: inline-block; +} + +.colorscheme-dark .custom-icon-light { + display: none; +} + +.contact-page { + margin: 0 auto; + max-width: 400px; +} + +.contact-form { + display: flex; + flex-direction: column; + font-size: 2rem; + gap: 1.5rem; + width: 100%; + max-width: 400px; + margin: 0 auto; +} + +.contact-form label { + font-weight: bold; +} + +.contact-form input, +.contact-form textarea, +.contact-form button { + padding: 0.5rem; + border: 1px solid #ccc; + border-radius: 4px; +} + +.contact-form textarea { + min-height: 7.5em; + resize: vertical; +} + +.contact-form button { + background-color: #007bff; + color: white; + border: none; + cursor: pointer; +} + +.contact-form button:hover { + background-color: #0056b3; +} + +.btc-card { + max-width: 400px; + margin: 2rem auto; + padding: 1.5rem; + border-radius: 16px; + background: #f9fafb; + border: 1px solid #e0e0e0; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06); + transition: box-shadow 0.3s ease, transform 0.3s ease; + font-family: system-ui, sans-serif; + text-align: center; + color: #111; +} + +.btc-card:hover { + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); + transform: translateY(-4px); +} + +.btc-header { + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + margin-bottom: 1rem; +} + +.btc-icon { + color: #f7931a; /* Bitcoin orange */ +} + +.btc-card h2 { + margin: 0; + font-size: 1.25rem; + color: #333; +} + +.btc-qr { + width: 200px; + height: 200px; + margin: 1rem auto; + border-radius: 8px; + padding: 4px; + border: 1px solid #ccc; + background: white; +} + +.btc-address { + margin: 0; + font-family: monospace; + padding: 0.75rem; + border-radius: 4px; + word-break: break-all; + font-size: 0.95rem; + background: #eef2f7; + color: #1a1a1a; + border: 1px solid #d0d7de; +} + +.btc-card p.btc-note { + color: #666; + text-align: inherit; +} + +.btc-address-row { + margin: 0; + display: flex; + align-items: stretch; + justify-content: center; + gap: 0.5rem; + flex-wrap: wrap; + flex-direction: horizontal; +} + +.btc-copy-icon { + all: unset; + border-radius: 4px; + width: 4rem; + cursor: pointer; + transition: + background-color 0.2s ease, + color 0.2s ease, + transform 0.05s ease, + box-shadow 0.3s ease; + color: #555; + border: 1px solid #d0d7de; +} + +.btc-copy-icon:hover { + background-color: #f0f0f0; + color: #000; +} + +.btc-copy-icon:active { + transform: scale(0.95); /* Pressed-in effect */ +} + +.btc-copy-icon.glow { + box-shadow: 0 0 0 3px rgba(247, 147, 26, 0.4), + 0 0 10px rgba(247, 147, 26, 0.7); + background-color: #fff5e6; /* light bitcoin orange background */ + color: #f7931a; +} + +.colorscheme-dark .btc-card { + background: #1e1e1e; + border: 1px solid #333; + color: #eee; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6); +} + +.colorscheme-dark .btc-card:hover { + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7); +} + +.colorscheme-dark .btc-card h2 { + color: #f5f5f5; +} + +.colorscheme-dark .btc-qr { + border: 1px solid #444; + background: #2a2a2a; +} + +.colorscheme-dark .btc-address { + background: #2a2a2a; + color: #f5f5f5; + border: 1px solid #444; +} + +.colorscheme-dark .btc-card p.btc-note { + color: #aaa; +} + +.colorscheme-dark .btc-copy-icon { + background: #2a2a2a; + color: #f5f5f5; + border: 1px solid #444; +} + +.colorscheme-dark .btc-copy-icon:hover { + background-color: #333; + color: #fff; +} +} diff --git a/content/about.md b/content/about.md @@ -0,0 +1,22 @@ + ++++ +title = "About" +description = "Jack Mordaunt" +date = "2025-07-10" +author = "Jack Mordaunt" ++++ + +I’m Jack, an Australian developer living abroad, building lean, native software in Odin and Go. + +I care deeply about software that’s organically made and designed to be robust, efficient and promote self-sovereignty. + +I have a particular interest in long-term software built to last decades. + +I believe this is best achieved by having a small dependency tree and re-using modular libraries written in C where possible, which is the lowest-common denominator and what drives my interest in Odin: a C alternative built for the joy of programming. + +That being said, my main expertise is in Go having programmed with it professionally since 2021. Along my journey I have touched a myriad of other languages: Rust, Zig, C++, Python, Ruby, C#, Objective-C, Javascript, Elixir and more. + +I'm a versatile developer but I prefer to work on client-side software and I'm intrigued by unorthodox tech stacks. + +[Get in contact](/contact) + diff --git a/content/contact.html b/content/contact.html @@ -0,0 +1,25 @@ +--- +--- + +<div class="contact-page"> + <h2>Get in touch</h2> + + <form action="https://api.web3forms.com/submit" method="POST" class="contact-form"> + + <!-- Replace with your Access Key --> + <input type="hidden" name="access_key" value="1fabf5eb-b95f-48d4-a01e-458e11d53846"> + + <!-- Form Inputs. Each input must have a name="" attribute --> + <input type="text" name="name" placeholder="Name" required> + <input type="email" name="email" placeholder="info@example.com" required> + <textarea name="message" placeholder="Hello!" required></textarea> + + <!-- Honeypot Spam Protection --> + <input type="checkbox" name="botcheck" class="hidden" style="display: none;"> + + <!-- Custom Confirmation / Success Page --> + <input type="hidden" name="redirect" value="/about"> + + <button type="submit">Submit</button> + </form> +</div diff --git a/content/pay-with-bitcoin.html b/content/pay-with-bitcoin.html @@ -0,0 +1,37 @@ +--- +--- + +<script> + function copyAddress() { + const text = document.getElementById("btc-address").textContent; + + navigator.clipboard.writeText(text).then(() => { + console.log("Address copied!"); + }).catch(err => { + console.error("Copy failed:", err); + }); + } +</script> + + +<iframe src="https://github.com/sponsors/JackMordaunt/card" title="Sponsor JackMordaunt" height="225" width="600" style="border: 0;"></iframe> +<div class="btc-card"> + <div class="btc-header"> + <i class="btc-icon fa-brands fa-bitcoin fa-3x"></i> + </div> + + <img + src="https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh" + alt="Bitcoin Address QR Code" + class="btc-qr" + > + + <div class="btc-address-row"> + <p class="btc-address" id="btc-address">bc1q6px9f0tl3r8qf5l304g2plyae5fgvw6yetzvcu</p> + <button class="btc-copy-icon" onclick="copyAddress()"> + <i class="fa-solid fa-copy"></i> + </button> + </div> + <p class="btc-note">Scan or copy the address to send Bitcoin</p> +</div> + diff --git a/hugo.toml b/hugo.toml @@ -0,0 +1,105 @@ +baseurl = "http://jackmordaunt.com/" +title = "Jack Mordaunt" +theme = "hugo-coder" +languagecode = "en" +defaultcontentlanguage = "en" + +[pagination] +pagerSize = 20 + +[services] +# [services.disqus] +# shortname = "yourdiscussshortname" + +[markup.highlight] +style = "github-dark" + + + + + + + + + +# TODO: replace the theme submodule with a subtree instead to support local modifications +# TODO: add a ci build that publishes on pushes to main + + + + + + + + +[params] + author = "Jack Mordaunt" + info = "Coffee developer, software brewer." + description = "Coffee developer, software brewer." + keywords = "blog,developer,personal,software,robust,performance,sovereign" + avatarurl = "images/self.jpg" + gravatar = "gravatar@sovereignlife.anonaddy.com" + + faviconSVG = "/img/favicon.svg" + favicon_32 = "/img/favicon-32x32.png" + favicon_16 = "/img/favicon-16x16.png" + + since = 2025 + + enableTwemoji = true + + colorScheme = "auto" + hidecolorschemetoggle = false + + customCSS = ["css/custom.css"] + # customSCSS = ["scss/custom.scss"] + # customJS = ["js/custom.js"] + +[taxonomies] + category = "categories" + series = "series" + tag = "tags" + author = "authors" + +# Social links +[[params.social]] + name = "Github" + icon = "fa-brands fa-github fa-2x" + weight = 1 + url = "https://github.com/jackmordaunt" +[[params.social]] + name = "Sourcehut" + icon = "fa-1x" + # Hack because sourcehut icon not in fa. Light & Dark are swapped based on theme. + srclight = "https://sourcehut.org/sourcehut.svg" + srcdark = "https://sourcehut.org/sourcehut-white.svg" + weight = 2 + url = "https://git.sr.ht/~jackmordaunt" +[[params.social]] + name = "Public Keys" + icon = "fa-solid fa-key fa-2x" + weight = 3 + url = "https://meta.sr.ht/~jackmordaunt.pgp" +[[params.social]] + name = "Bitcoin" + icon = "fa-brands fa-bitcoin fa-2x" + weight = 4 + url = "pay-with-bitcoin/" + +# Menu links +# [[menu.main]] +# name = "Blog" +# weight = 1 +# url = "posts/" +[[menu.main]] + name = "About" + weight = 2 + url = "about/" +[[menu.main]] + name = "Contact" + weight = 3 + url = "contact/" +[[menu.main]] + name = "Pay" + weight = 4 + url = "pay-with-bitcoin/" diff --git a/static/images/self.jpg b/static/images/self.jpg Binary files differ.