Add thanks & donations

This commit is contained in:
JP Hastings-Spital 2023-07-21 10:55:46 +01:00
parent 1dd017ebe5
commit 8df1a5fb3c
7 changed files with 358 additions and 13 deletions

View file

@ -0,0 +1,6 @@
---
title: Oops!
emoji: 😰
---
Something went wrong while trying to register your donation. If you weren't using the form on the [thanks page](../thanks/) then please try there, otherwise please [reach out to me by email](../standing-invitation/).

View file

@ -0,0 +1,12 @@
---
title: Thank you!
emoji: 🙇‍♂️
---
Thank you so much! It makes me _enormously_ happy that you're appreciating my work, and doubly so that you're willing to share what you have with others on my behalf.
Money can set up some very strange incentives in humans, but donating to a charity, supporting a person who inspires you, investing in your community, and so many other acts of openness bring us closer together — for me, the entire point of all this.
If you'd like to tell me about the person, group or cause that you contrinuted to on my behalf I'd [love to hear about it](../standing-invitation/)!
_By the way, the counter on the [thanks page](../thanks/) can take a few minutes to update!_

14
content/thanks.md Normal file
View file

@ -0,0 +1,14 @@
---
title: Saying thank you
emoji: 💞
---
Human connection is really important to me and, in that way and others, on this site and elsewhere, I try to act to leave the world better off than when I arrived.
It's extremely nice to know when I've achieved that, but it means _even more_ to me when people "pay it forward". If you've appreciated anything on this site, or anything else I've done or made, you'd humble me by sharing your time, effort, money, privilege, or kindness with anyone you feel deserves it.
Though money is the least of the valuable things I mentioned above, it can make a real difference in many places. If my efforts inspire you to donate money to any cause you feel is worthy, you can register that donation below to let me know.
---
{{< donations >}}

View file

@ -1,5 +1,5 @@
<div class="h-card vcard">
<a href="https://byjp.me" rel="me" class="u-uid u-url"><img class="profile u-photo " src="profile-512.jpg" /></a>
<a href="https://byjp.me" rel="me" class="u-uid u-url"><img class="profile u-photo" src="profile-512.jpg" alt="A photo of me smiling, with short brown hair, a beard and glasses." /></a>
Hello! I'm <em class="p-name fn always-accented">JP Hastings-Spital</em>, a <span class="p-category category">maker</span>, <span class="p-category category">software engineer</span>, <span class="p-category category">swing dancer</span>, and all-round <span class="p-category category">miriscient chap</span> living in <span class="adr p-adr h-adr"><span class="p-locality locality">London</span>, <span class="p-country-name country-name">UK</span></span>. <span class="h-card">I'm a <span clas="p-job-title">principal engineer</a> at <a href="https://deliveroo.engineering/" target="_blank" class="p-org u-url" rel="noopener">Deliveroo</a></span>.
</div>

View file

@ -0,0 +1,199 @@
{{ $donations := getJSON "https://api.val.town/v1/run/byjp.donations" }}
<p>Friends have donated <strong>£{{ $donations.totalGBP }}</strong> (across {{ $donations.currencyCount }} currencies) to worthy causes in thanks. Thank <em>you</em>!</em></p>
<style>
.donate input[type=number] {
width:75px;
text-align: right;
}
.donate input[type=number]::-webkit-inner-spin-button,
.donate input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.donate label {
display: none;
}
.donate .select {
width: 75px;
}
</style>
<form class="donate" method="POST" action="https://byjp-registerDonation.express.val.run" style="text-align: center;">
<label for="amount">Donation amount</label>
<input type="number" name="amount" min="0.001" step="any" value="1.00" size="5"/>
<label for="currency">Donation currency</label>
<div class="select">
<select name="currency">
<option value="AED">AED</option>
<option value="AFN">AFN</option>
<option value="ALL">ALL</option>
<option value="AMD">AMD</option>
<option value="ANG">ANG</option>
<option value="AOA">AOA</option>
<option value="ARS">ARS</option>
<option value="AUD">AUD</option>
<option value="AWG">AWG</option>
<option value="AZN">AZN</option>
<option value="BAM">BAM</option>
<option value="BBD">BBD</option>
<option value="BDT">BDT</option>
<option value="BGN">BGN</option>
<option value="BHD">BHD</option>
<option value="BIF">BIF</option>
<option value="BMD">BMD</option>
<option value="BND">BND</option>
<option value="BOB">BOB</option>
<option value="BRL">BRL</option>
<option value="BSD">BSD</option>
<option value="BTC">BTC</option>
<option value="BTN">BTN</option>
<option value="BWP">BWP</option>
<option value="BYN">BYN</option>
<option value="BZD">BZD</option>
<option value="CAD">CAD</option>
<option value="CDF">CDF</option>
<option value="CHF">CHF</option>
<option value="CLF">CLF</option>
<option value="CLP">CLP</option>
<option value="CNH">CNH</option>
<option value="CNY">CNY</option>
<option value="COP">COP</option>
<option value="CRC">CRC</option>
<option value="CUC">CUC</option>
<option value="CUP">CUP</option>
<option value="CVE">CVE</option>
<option value="CZK">CZK</option>
<option value="DJF">DJF</option>
<option value="DKK">DKK</option>
<option value="DOP">DOP</option>
<option value="DZD">DZD</option>
<option value="EGP">EGP</option>
<option value="ERN">ERN</option>
<option value="ETB">ETB</option>
<option value="EUR">EUR</option>
<option value="FJD">FJD</option>
<option value="FKP">FKP</option>
<option value="GBP" selected>GBP</option>
<option value="GEL">GEL</option>
<option value="GGP">GGP</option>
<option value="GHS">GHS</option>
<option value="GIP">GIP</option>
<option value="GMD">GMD</option>
<option value="GNF">GNF</option>
<option value="GTQ">GTQ</option>
<option value="GYD">GYD</option>
<option value="HKD">HKD</option>
<option value="HNL">HNL</option>
<option value="HRK">HRK</option>
<option value="HTG">HTG</option>
<option value="HUF">HUF</option>
<option value="IDR">IDR</option>
<option value="ILS">ILS</option>
<option value="IMP">IMP</option>
<option value="INR">INR</option>
<option value="IQD">IQD</option>
<option value="IRR">IRR</option>
<option value="ISK">ISK</option>
<option value="JEP">JEP</option>
<option value="JMD">JMD</option>
<option value="JOD">JOD</option>
<option value="JPY">JPY</option>
<option value="KES">KES</option>
<option value="KGS">KGS</option>
<option value="KHR">KHR</option>
<option value="KMF">KMF</option>
<option value="KPW">KPW</option>
<option value="KRW">KRW</option>
<option value="KWD">KWD</option>
<option value="KYD">KYD</option>
<option value="KZT">KZT</option>
<option value="LAK">LAK</option>
<option value="LBP">LBP</option>
<option value="LKR">LKR</option>
<option value="LRD">LRD</option>
<option value="LSL">LSL</option>
<option value="LYD">LYD</option>
<option value="MAD">MAD</option>
<option value="MDL">MDL</option>
<option value="MGA">MGA</option>
<option value="MKD">MKD</option>
<option value="MMK">MMK</option>
<option value="MNT">MNT</option>
<option value="MOP">MOP</option>
<option value="MRU">MRU</option>
<option value="MUR">MUR</option>
<option value="MVR">MVR</option>
<option value="MWK">MWK</option>
<option value="MXN">MXN</option>
<option value="MYR">MYR</option>
<option value="MZN">MZN</option>
<option value="NAD">NAD</option>
<option value="NGN">NGN</option>
<option value="NIO">NIO</option>
<option value="NOK">NOK</option>
<option value="NPR">NPR</option>
<option value="NZD">NZD</option>
<option value="OMR">OMR</option>
<option value="PAB">PAB</option>
<option value="PEN">PEN</option>
<option value="PGK">PGK</option>
<option value="PHP">PHP</option>
<option value="PKR">PKR</option>
<option value="PLN">PLN</option>
<option value="PYG">PYG</option>
<option value="QAR">QAR</option>
<option value="RON">RON</option>
<option value="RSD">RSD</option>
<option value="RUB">RUB</option>
<option value="RWF">RWF</option>
<option value="SAR">SAR</option>
<option value="SBD">SBD</option>
<option value="SCR">SCR</option>
<option value="SDG">SDG</option>
<option value="SEK">SEK</option>
<option value="SGD">SGD</option>
<option value="SHP">SHP</option>
<option value="SLL">SLL</option>
<option value="SOS">SOS</option>
<option value="SRD">SRD</option>
<option value="SSP">SSP</option>
<option value="STD">STD</option>
<option value="STN">STN</option>
<option value="SVC">SVC</option>
<option value="SYP">SYP</option>
<option value="SZL">SZL</option>
<option value="THB">THB</option>
<option value="TJS">TJS</option>
<option value="TMT">TMT</option>
<option value="TND">TND</option>
<option value="TOP">TOP</option>
<option value="TRY">TRY</option>
<option value="TTD">TTD</option>
<option value="TWD">TWD</option>
<option value="TZS">TZS</option>
<option value="UAH">UAH</option>
<option value="UGX">UGX</option>
<option value="USD">USD</option>
<option value="UYU">UYU</option>
<option value="UZS">UZS</option>
<option value="VES">VES</option>
<option value="VND">VND</option>
<option value="VUV">VUV</option>
<option value="WST">WST</option>
<option value="XAF">XAF</option>
<option value="XAG">XAG</option>
<option value="XAU">XAU</option>
<option value="XCD">XCD</option>
<option value="XDR">XDR</option>
<option value="XOF">XOF</option>
<option value="XPD">XPD</option>
<option value="XPF">XPF</option>
<option value="XPT">XPT</option>
<option value="YER">YER</option>
<option value="ZAR">ZAR</option>
<option value="ZMW">ZMW</option>
<option value="ZWL">ZWL</option>
</select>
<span class="focus"></span>
</div>
<input type="submit" value="I donated" />
</form>

View file

@ -46,16 +46,6 @@ body {
background-color: $light-background;
color: $light-color;
}
[data-theme=dark] & {
background-color: $dark-background;
color: $dark-color;
}
[data-theme=light] & {
background-color: $light-background;
color: $light-color;
}
}
*[data-emoji] {
@ -628,3 +618,127 @@ a[href^="#fn:"] {
margin-bottom: 0;
}
}
input {
border: 1px solid $light-color-secondary;
background-color: $light-background;
color: $light-color;
@media (prefers-color-scheme: dark) {
border: 1px solid $dark-color-secondary;
background-color: $dark-background;
color: $dark-color;
}
@media (prefers-color-scheme: light) {
border: 1px solid $light-color-secondary;
background-color: $light-background;
color: $light-color;
}
}
input[type="submit"] {
border-color: var(--accent);
color: var(--accent);
&:hover {
background-color: var(--accent);
color: $light-color;
}
}
select {
// A reset of styles, including removing the default dropdown arrow
appearance: none;
background-color: transparent;
border: none;
padding: 0 1em 0 0;
margin: 2px 2px 2.5px;
width: 100%;
font-family: inherit;
font-size: inherit;
cursor: inherit;
line-height: inherit;
color: $light-color;
@media (prefers-color-scheme: dark) {
color: $dark-color;
}
@media (prefers-color-scheme: light) {
color: $light-color;
}
// Stack above custom arrow
z-index: 1;
// Remove dropdown arrow in IE10 & IE11
// @link https://www.filamentgroup.com/lab/select-css.html
&::-ms-expand {
display: none;
}
// Remove focus outline, will add on alternate element
outline: none;
}
.select {
display: inline-grid;
grid-template-areas: "select";
align-items: center;
position: relative;
padding: 0 0.3em 0 0;
select,
&::after {
grid-area: select;
}
border: 1px solid $light-color-secondary;
@media (prefers-color-scheme: dark) {
border: 1px solid $dark-color-secondary;
}
@media (prefers-color-scheme: light) {
border: 1px solid $light-color-secondary;
}
font-size: inherit;
cursor: pointer;
line-height: 1.0;
background-color: $light-background;
@media (prefers-color-scheme: dark) {
background-color: $dark-background;
}
@media (prefers-color-scheme: light) {
background-color: $light-background;
}
// Custom arrow
&:not(.select--multiple)::after {
content: "";
justify-self: end;
width: 0.64em;
height: 0.4em;
background-color: $light-color-secondary;
@media (prefers-color-scheme: dark) {
background-color: $dark-color-secondary;
}
@media (prefers-color-scheme: light) {
background-color: $light-color-secondary;
}
clip-path: polygon(100% 0%, 0 0%, 50% 100%);
}
}
// Interim solution until :focus-within has better support
select:focus + .focus {
position: absolute;
top: -1px;
left: -1px;
right: -1px;
bottom: -1px;
border: 2px solid var(--accent);
border-radius: inherit;
}

View file

@ -24,7 +24,7 @@
{{ $options := (dict "targetPath" "main.css" "outputStyle" "compressed" "enableSourceMap" true) }}
{{ $style := resources.Get "scss/main.scss" | resources.ToCSS $options | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
<link rel="stylesheet" href="{{ $style.RelPermalink | absURL }}">
{{ range $val := $.Site.Params.customCSS }}
{{ if gt (len $val) 0 }}