feat: Add more donation options
This commit is contained in:
parent
ad95fe796b
commit
3f1225a03a
20
.well-known/wallets/.coins
Normal file
20
.well-known/wallets/.coins
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"ADA": "Cardano (ADA)",
|
||||||
|
"ATOM": "Cosmos (ATOM)",
|
||||||
|
"AVAX": "Avalanche (AVAX)",
|
||||||
|
"BNB": "Binance Coin (BNB)",
|
||||||
|
"BTC": "Bitcoin (BTC)",
|
||||||
|
"CRO": "Crypto.com Coin (CRO)",
|
||||||
|
"DOT": "Polkadot (DOT)",
|
||||||
|
"ETH": "Ethereum (ETH)",
|
||||||
|
"HNS": "Handshake (HNS)",
|
||||||
|
"MATIC": "Polygon (MATIC)",
|
||||||
|
"SOL": "Solana (SOL)",
|
||||||
|
"XMR": "Monero (XMR)",
|
||||||
|
"XRP": "Ripple (XRP)",
|
||||||
|
"OSMO": "Osmosis (OSMO)",
|
||||||
|
"STARS": "Stargaze (STARS)",
|
||||||
|
"INJ": "Injective (INJ)",
|
||||||
|
"LIKE": "LikeCoin (LIKE)",
|
||||||
|
"SCRT": "Secret Network (SCRT)"
|
||||||
|
}
|
31
.well-known/wallets/.domains
Normal file
31
.well-known/wallets/.domains
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"ETH":"woodburn.au",
|
||||||
|
"HNS":"woodburn",
|
||||||
|
"SOL":"woodburn.sol",
|
||||||
|
"ADA": "$nathanwoodburn",
|
||||||
|
"MATIC": "woodburn.au",
|
||||||
|
"BNB": "woodburn.au",
|
||||||
|
"INJ": "woodburn.sol",
|
||||||
|
"ATOM": "woodburn_nathan.cosmos",
|
||||||
|
"OSMO": "woodburn_nathan.osmo",
|
||||||
|
"SCRT": "woodburn_nathan.secret",
|
||||||
|
"AKASH": "woodburn_nathan.akash",
|
||||||
|
"SIF": "woodburn_nathan.sif",
|
||||||
|
"SHENTU": "woodburn_nathan.shentu",
|
||||||
|
"IAA": "woodburn_nathan.iaa",
|
||||||
|
"REGEN": "woodburn_nathan.regen",
|
||||||
|
"PERSISTENCE": "woodburn_nathan.persistence",
|
||||||
|
"BOSTROM": "woodburn_nathan.bostrom",
|
||||||
|
"JUNO": "woodburn_nathan.juno",
|
||||||
|
"AXELAR": "woodburn_nathan.axelar",
|
||||||
|
"SOMM": "woodburn_nathan.somm",
|
||||||
|
"UMEE": "woodburn_nathan.umee",
|
||||||
|
"GRAVITY": "woodburn_nathan.gravity",
|
||||||
|
"STRIDE": "woodburn_nathan.stride",
|
||||||
|
"KAVA": "woodburn_nathan.kava",
|
||||||
|
"QUICK": "woodburn_nathan.quick",
|
||||||
|
"TERRA": "woodburn_nathan.terra",
|
||||||
|
"OMNIFLIX": "woodburn_nathan.omniflix",
|
||||||
|
"LIKE": "woodburn_nathan.like",
|
||||||
|
"CHIHUAHUA": "woodburn_nathan.chihuahua"
|
||||||
|
}
|
37
.well-known/wallets/.tokens
Normal file
37
.well-known/wallets/.tokens
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"symbol": "USDT",
|
||||||
|
"name": "USDT",
|
||||||
|
"chain": "ETH"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"symbol": "USDT",
|
||||||
|
"name": "USDT",
|
||||||
|
"chain": "SOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"symbol": "USDC",
|
||||||
|
"name": "USDC",
|
||||||
|
"chain": "ETH"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"symbol": "USDC",
|
||||||
|
"name": "USDC",
|
||||||
|
"chain": "SOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"symbol": "WDBRN",
|
||||||
|
"name": "Woodburn",
|
||||||
|
"chain": "SOL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"symbol": "DAI",
|
||||||
|
"name": "DAI Stablecoin",
|
||||||
|
"chain": "ETH"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"symbol": "RAY",
|
||||||
|
"name": "Raydium",
|
||||||
|
"chain": "SOL"
|
||||||
|
}
|
||||||
|
]
|
1
.well-known/wallets/ADA
Normal file
1
.well-known/wallets/ADA
Normal file
@ -0,0 +1 @@
|
|||||||
|
addr1qyudjff2lfuxjjjfz0y542drw4srxq2xxtgrq22vm8ymvwwagq028esaz4rsexct8zzsuds29e03eaykahlvhdx0k9es4gnk27
|
1
.well-known/wallets/AKASH
Normal file
1
.well-known/wallets/AKASH
Normal file
@ -0,0 +1 @@
|
|||||||
|
akash1ugraczuyfmxy8k38nps4fu7e5derryzxpk2n77
|
1
.well-known/wallets/ATOM
Normal file
1
.well-known/wallets/ATOM
Normal file
@ -0,0 +1 @@
|
|||||||
|
cosmos1ugraczuyfmxy8k38nps4fu7e5derryzxvd858y
|
1
.well-known/wallets/AVAX
Normal file
1
.well-known/wallets/AVAX
Normal file
@ -0,0 +1 @@
|
|||||||
|
0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e
|
1
.well-known/wallets/AXELAR
Normal file
1
.well-known/wallets/AXELAR
Normal file
@ -0,0 +1 @@
|
|||||||
|
axelar1ugraczuyfmxy8k38nps4fu7e5derryzxgr3uv9
|
1
.well-known/wallets/BNB
Normal file
1
.well-known/wallets/BNB
Normal file
@ -0,0 +1 @@
|
|||||||
|
0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e
|
1
.well-known/wallets/BOSTROM
Normal file
1
.well-known/wallets/BOSTROM
Normal file
@ -0,0 +1 @@
|
|||||||
|
bostrom1ugraczuyfmxy8k38nps4fu7e5derryzx07n8er
|
1
.well-known/wallets/CHIHUAHUA
Normal file
1
.well-known/wallets/CHIHUAHUA
Normal file
@ -0,0 +1 @@
|
|||||||
|
chihuahua1ugraczuyfmxy8k38nps4fu7e5derryzx0c26xx
|
1
.well-known/wallets/DOT
Normal file
1
.well-known/wallets/DOT
Normal file
@ -0,0 +1 @@
|
|||||||
|
13KSjM7rxFu7SxAuqcNZ76wyjhfuV4Kx8pWfqpFAykSQeEn3
|
1
.well-known/wallets/GRAVITY
Normal file
1
.well-known/wallets/GRAVITY
Normal file
@ -0,0 +1 @@
|
|||||||
|
gravity1ugraczuyfmxy8k38nps4fu7e5derryzxga4vzv
|
1
.well-known/wallets/IAA
Normal file
1
.well-known/wallets/IAA
Normal file
@ -0,0 +1 @@
|
|||||||
|
iaa1ugraczuyfmxy8k38nps4fu7e5derryzxe08994
|
1
.well-known/wallets/INJ
Normal file
1
.well-known/wallets/INJ
Normal file
@ -0,0 +1 @@
|
|||||||
|
inj1dj6t8xlvyw5jrjdzp5rphutageqtp5u7wflgv9
|
1
.well-known/wallets/JUNO
Normal file
1
.well-known/wallets/JUNO
Normal file
@ -0,0 +1 @@
|
|||||||
|
juno1ugraczuyfmxy8k38nps4fu7e5derryzx6ly0qc
|
1
.well-known/wallets/KAVA
Normal file
1
.well-known/wallets/KAVA
Normal file
@ -0,0 +1 @@
|
|||||||
|
kava1ugraczuyfmxy8k38nps4fu7e5derryzxscnf3r
|
1
.well-known/wallets/LIKE
Normal file
1
.well-known/wallets/LIKE
Normal file
@ -0,0 +1 @@
|
|||||||
|
like1ugraczuyfmxy8k38nps4fu7e5derryzxl3mkyl
|
1
.well-known/wallets/LTC
Normal file
1
.well-known/wallets/LTC
Normal file
@ -0,0 +1 @@
|
|||||||
|
ltc1qx79yxm2gwnsrch925343hg3zt3r085x725a0tw
|
1
.well-known/wallets/NEAR
Normal file
1
.well-known/wallets/NEAR
Normal file
@ -0,0 +1 @@
|
|||||||
|
3b06b5e91361739aed92707e888fbbd33f97b24a8a3f8fdd54a2c7e7fd7082a3
|
1
.well-known/wallets/OMNIFLIX
Normal file
1
.well-known/wallets/OMNIFLIX
Normal file
@ -0,0 +1 @@
|
|||||||
|
omniflix1ugraczuyfmxy8k38nps4fu7e5derryzx3nkds6
|
1
.well-known/wallets/OSMO
Normal file
1
.well-known/wallets/OSMO
Normal file
@ -0,0 +1 @@
|
|||||||
|
osmo1ugraczuyfmxy8k38nps4fu7e5derryzxyk5y3k
|
1
.well-known/wallets/PERSISTENCE
Normal file
1
.well-known/wallets/PERSISTENCE
Normal file
@ -0,0 +1 @@
|
|||||||
|
persistence1ugraczuyfmxy8k38nps4fu7e5derryzxzpp8fq
|
1
.well-known/wallets/QUICK
Normal file
1
.well-known/wallets/QUICK
Normal file
@ -0,0 +1 @@
|
|||||||
|
quick1ugraczuyfmxy8k38nps4fu7e5derryzx8fhx7k
|
1
.well-known/wallets/REGEN
Normal file
1
.well-known/wallets/REGEN
Normal file
@ -0,0 +1 @@
|
|||||||
|
regen1ugraczuyfmxy8k38nps4fu7e5derryzxn0vg3q
|
1
.well-known/wallets/SCRT
Normal file
1
.well-known/wallets/SCRT
Normal file
@ -0,0 +1 @@
|
|||||||
|
secret1ugraczuyfmxy8k38nps4fu7e5derryzxwgna6c
|
1
.well-known/wallets/SENT
Normal file
1
.well-known/wallets/SENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
sent1ugraczuyfmxy8k38nps4fu7e5derryzxhk3drt
|
1
.well-known/wallets/SHENTU
Normal file
1
.well-known/wallets/SHENTU
Normal file
@ -0,0 +1 @@
|
|||||||
|
shentu1ugraczuyfmxy8k38nps4fu7e5derryzxyerd4e
|
1
.well-known/wallets/SIF
Normal file
1
.well-known/wallets/SIF
Normal file
@ -0,0 +1 @@
|
|||||||
|
sif1ugraczuyfmxy8k38nps4fu7e5derryzxfsgzg0
|
1
.well-known/wallets/SOMM
Normal file
1
.well-known/wallets/SOMM
Normal file
@ -0,0 +1 @@
|
|||||||
|
somm1ugraczuyfmxy8k38nps4fu7e5derryzxq3gckw
|
1
.well-known/wallets/STARS
Normal file
1
.well-known/wallets/STARS
Normal file
@ -0,0 +1 @@
|
|||||||
|
stars1ugraczuyfmxy8k38nps4fu7e5derryzxc3sfv4
|
1
.well-known/wallets/STRIDE
Normal file
1
.well-known/wallets/STRIDE
Normal file
@ -0,0 +1 @@
|
|||||||
|
stride1ugraczuyfmxy8k38nps4fu7e5derryzx0x8gng
|
1
.well-known/wallets/TERRA
Normal file
1
.well-known/wallets/TERRA
Normal file
@ -0,0 +1 @@
|
|||||||
|
terra1ugraczuyfmxy8k38nps4fu7e5derryzx2fa59y
|
1
.well-known/wallets/UMEE
Normal file
1
.well-known/wallets/UMEE
Normal file
@ -0,0 +1 @@
|
|||||||
|
umee1ugraczuyfmxy8k38nps4fu7e5derryzx7m6trk
|
1
.well-known/wallets/XRP
Normal file
1
.well-known/wallets/XRP
Normal file
@ -0,0 +1 @@
|
|||||||
|
rKzdnYvwDyeki5VCgMwjuofjBjAbg3DJnB
|
110
server.py
110
server.py
@ -1,3 +1,4 @@
|
|||||||
|
import json
|
||||||
from flask import Flask, make_response, redirect, request, jsonify, render_template, send_from_directory
|
from flask import Flask, make_response, redirect, request, jsonify, render_template, send_from_directory
|
||||||
from flask_cors import CORS
|
from flask_cors import CORS
|
||||||
import os
|
import os
|
||||||
@ -83,8 +84,17 @@ def wallet(path):
|
|||||||
# Cookie should last 1 week
|
# Cookie should last 1 week
|
||||||
resp.set_cookie('HNS', address, max_age=604800)
|
resp.set_cookie('HNS', address, max_age=604800)
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
if path == ".domains":
|
||||||
|
return send_from_directory('.well-known/wallets', path, mimetype='application/json')
|
||||||
|
elif os.path.isfile('.well-known/wallets/' + path):
|
||||||
|
address = ''
|
||||||
|
with open('.well-known/wallets/' + path) as file:
|
||||||
|
address = file.read()
|
||||||
|
address = address.strip()
|
||||||
|
return make_response(address, 200, {'Content-Type': 'text/plain'})
|
||||||
|
|
||||||
return send_from_directory('.well-known/wallets', path, mimetype='text/plain')
|
return render_template('404.html'), 404
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -93,12 +103,17 @@ def wallet(path):
|
|||||||
def index():
|
def index():
|
||||||
global address
|
global address
|
||||||
global handshake_scripts
|
global handshake_scripts
|
||||||
git=requests.get('https://git.woodburn.au/api/v1/users/nathanwoodburn/activities/feeds?only-performed-by=true&limit=1&token=' + os.getenv('git_token'))
|
try:
|
||||||
git = git.json()
|
git=requests.get('https://git.woodburn.au/api/v1/users/nathanwoodburn/activities/feeds?only-performed-by=true&limit=1&token=' + os.getenv('git_token'))
|
||||||
git = git[0]
|
git = git.json()
|
||||||
repo_name=git['repo']['name']
|
git = git[0]
|
||||||
repo_name=repo_name.lower()
|
repo_name=git['repo']['name']
|
||||||
repo_description=git['repo']['description']
|
repo_name=repo_name.lower()
|
||||||
|
repo_description=git['repo']['description']
|
||||||
|
except:
|
||||||
|
repo_name = "nathanwoodburn.github.io"
|
||||||
|
repo_description = "Personal website"
|
||||||
|
git = {'repo': {'html_url': 'https://example.com', 'name': 'nathanwoodburn.github.io', 'description': 'Personal website'}}
|
||||||
custom = ""
|
custom = ""
|
||||||
|
|
||||||
# Check for downtime
|
# Check for downtime
|
||||||
@ -201,6 +216,87 @@ def now_old():
|
|||||||
return render_template('now/old.html', handshake_scripts=handshake_scripts,now_pages=html)
|
return render_template('now/old.html', handshake_scripts=handshake_scripts,now_pages=html)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/donate')
|
||||||
|
def donate():
|
||||||
|
global handshake_scripts
|
||||||
|
# If localhost, don't load handshake
|
||||||
|
if request.host == "localhost:5000" or request.host == "127.0.0.1:5000" or os.getenv('dev') == "true" or request.host == "test.nathan.woodburn.au":
|
||||||
|
handshake_scripts = ""
|
||||||
|
|
||||||
|
coinList = os.listdir('.well-known/wallets')
|
||||||
|
coinList = [file for file in coinList if file[0] != '.']
|
||||||
|
coinList.sort()
|
||||||
|
|
||||||
|
tokenList = []
|
||||||
|
|
||||||
|
with open('.well-known/wallets/.tokens') as file:
|
||||||
|
tokenList = file.read()
|
||||||
|
tokenList = json.loads(tokenList)
|
||||||
|
|
||||||
|
coinNames = {}
|
||||||
|
with open('.well-known/wallets/.coins') as file:
|
||||||
|
coinNames = file.read()
|
||||||
|
coinNames = json.loads(coinNames)
|
||||||
|
|
||||||
|
coins = ''
|
||||||
|
default_coins = ['btc', 'eth', 'hns','sol','bnb','xrp','ada']
|
||||||
|
|
||||||
|
|
||||||
|
for file in coinList:
|
||||||
|
if file in coinNames:
|
||||||
|
coins += f'<a class="dropdown-item" style="{"display:none;" if file.lower() not in default_coins else ""}" href="?c={file.lower()}">{coinNames[file]}</a>'
|
||||||
|
else:
|
||||||
|
coins += f'<a class="dropdown-item" style="{"display:none;" if file.lower() not in default_coins else ""}" href="?c={file.lower()}">{file}</a>'
|
||||||
|
|
||||||
|
for token in tokenList:
|
||||||
|
coins += f'<a class="dropdown-item" style="display:none;" href="?t={token["symbol"].lower()}&c={token["chain"].lower()}">{token["name"]} ({token["symbol"] + " on " if token["symbol"] != token["name"] else ""}{token["chain"]})</a>'
|
||||||
|
|
||||||
|
crypto = request.args.get('c')
|
||||||
|
if not crypto:
|
||||||
|
instructions = '<br>Donate with cryptocurrency:<br>Select a coin from the dropdown above.'
|
||||||
|
return render_template('donate.html', handshake_scripts=handshake_scripts, coins=coins,default_coins=default_coins, crypto=instructions)
|
||||||
|
crypto = crypto.upper()
|
||||||
|
|
||||||
|
token = request.args.get('t')
|
||||||
|
if token:
|
||||||
|
token = token.upper()
|
||||||
|
for t in tokenList:
|
||||||
|
if t['symbol'].upper() == token and t['chain'].upper() == crypto:
|
||||||
|
token = t
|
||||||
|
break
|
||||||
|
|
||||||
|
address = ''
|
||||||
|
domain = ''
|
||||||
|
cryptoHTML = ''
|
||||||
|
if os.path.isfile(f'.well-known/wallets/{crypto}'):
|
||||||
|
with open(f'.well-known/wallets/{crypto}') as file:
|
||||||
|
address = file.read()
|
||||||
|
if not token:
|
||||||
|
cryptoHTML += f'<br>Donate with {coinNames[crypto] if crypto in coinNames else crypto}:'
|
||||||
|
else:
|
||||||
|
cryptoHTML += f'<br>Donate with {token["name"]} {"("+token["symbol"]+") " if token["symbol"] != token["name"] else ""}on {crypto}:'
|
||||||
|
cryptoHTML += f'<code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-address" class="address" style="color: rgb(242,90,5);display: block;" data-bs-original-title="Click to copy">{address}</code>'
|
||||||
|
else:
|
||||||
|
cryptoHTML += f'<br>Invalid coin: {crypto}<br>'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if os.path.isfile(f'.well-known/wallets/.domains'):
|
||||||
|
# Get json of all domains
|
||||||
|
with open(f'.well-known/wallets/.domains') as file:
|
||||||
|
domains = file.read()
|
||||||
|
domains = json.loads(domains)
|
||||||
|
|
||||||
|
if crypto in domains:
|
||||||
|
domain = domains[crypto]
|
||||||
|
cryptoHTML += '<br>Or send to this domain on compatible wallets:<br>'
|
||||||
|
cryptoHTML += f'<code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-domain" class="address" style="color: rgb(242,90,5);display: block;" data-bs-original-title="Click to copy">{domain}</code>'
|
||||||
|
|
||||||
|
copyScript = '<script>document.getElementById("crypto-address").addEventListener("click", function() {navigator.clipboard.writeText(this.innerText);this.setAttribute("data-bs-original-title", "Copied!");});document.getElementById("crypto-domain").addEventListener("click", function() {navigator.clipboard.writeText(this.innerText);this.setAttribute("data-bs-original-title", "Copied!");});</script>'
|
||||||
|
cryptoHTML += copyScript
|
||||||
|
|
||||||
|
return render_template('donate.html', handshake_scripts=handshake_scripts, crypto=cryptoHTML, coins=coins,default_coins=default_coins)
|
||||||
|
|
||||||
@app.route('/<path:path>')
|
@app.route('/<path:path>')
|
||||||
def catch_all(path):
|
def catch_all(path):
|
||||||
global handshake_scripts
|
global handshake_scripts
|
||||||
|
@ -36,23 +36,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/fixes.min.css">
|
<link rel="stylesheet" href="/assets/css/fixes.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -33,23 +33,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
1
templates/assets/css/now.min.css
vendored
Normal file
1
templates/assets/css/now.min.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
body{background-color:#000!important}
|
192
templates/donate.html
Normal file
192
templates/donate.html
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html data-bs-theme="light" lang="en-au">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
||||||
|
<title>Nathan.Woodburn/</title>
|
||||||
|
<meta name="theme-color" content="#97009a">
|
||||||
|
<link rel="canonical" href="https://nathan.woodburn.au/donate">
|
||||||
|
<meta property="og:url" content="https://nathan.woodburn.au/donate">
|
||||||
|
<meta http-equiv="onion-location" content="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion">
|
||||||
|
<meta name="twitter:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||||
|
<meta name="description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||||
|
<meta property="og:title" content="Nathan.Woodburn/">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
<meta name="twitter:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||||
|
<meta property="og:image" content="https://nathan.woodburn.au/assets/img/profile.jpg">
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta name="twitter:title" content="Nathan.Woodburn/">
|
||||||
|
<meta property="og:description" content="G'day, this is my personal website. You can find out about me or check out some of my projects.">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/assets/img/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="180x180" href="/assets/img/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/assets/img/android-chrome-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="512x512" href="/assets/img/android-chrome-512x512.png">
|
||||||
|
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
|
||||||
|
<link rel="manifest" href="/manifest.json" crossorigin="use-credentials">
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic&display=swap">
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cabin:700&display=swap">
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Anonymous+Pro&display=swap">
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||||
|
<link rel="stylesheet" href="/assets/fonts/fontawesome-all.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/fonts/fontawesome5-overrides.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="page-top" data-bs-spy="scroll" data-bs-target="#mainNav" data-bs-offset="77">{{handshake_scripts | safe}}
|
||||||
|
<nav class="navbar navbar-expand-md fixed-top navbar-light" id="mainNav" style="background: var(--bs-navbar-hover-color);">
|
||||||
|
<div class="container-fluid"><a class="navbar-brand nathanwoodburn" href="/#">Nathan.Woodburn/</a><button data-bs-toggle="collapse" class="navbar-toggler navbar-toggler-right" data-bs-target="#navbarResponsive" type="button" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation" value="Menu"><i class="fa fa-bars"></i></button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||||
|
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||||
|
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<section class="text-center content-section" id="donate" style="background: #110033;">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-8 mx-auto">
|
||||||
|
<h2>Donate</h2>
|
||||||
|
<p style="margin-bottom: 10px;">Feel free to support me by donating</p>
|
||||||
|
<ul class="list-inline banner-social-buttons">
|
||||||
|
<li class="list-inline-item" style="margin-top: 15px;"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://paypal.me/nathanwoodburn" target="_blank" style="width: auto;"><i class="fab fa-paypal fa-fw"></i><span class="network-name"> Paypal</span></a></li>
|
||||||
|
<li class="list-inline-item" style="margin-top: 15px;"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://github.com/sponsors/Nathanwoodburn" target="_blank" style="width: auto;"><i class="fab fa-github fa-fw"></i><span class="network-name"> Github</span></a></li>
|
||||||
|
<li class="list-inline-item" style="margin-top: 15px;"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://donate.stripe.com/8wM6pv0VD08Xe408ww" target="_blank" style="width: auto;"><i class="fab fa-stripe-s fa-fw"></i><span class="network-name"> Stripe</span></a></li>
|
||||||
|
<li class="list-inline-item" style="margin-top: 15px;"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://revolut.me/nwoodburn" target="_blank" style="width: auto;"><span class="network-name"> Revolut</span></a></li>
|
||||||
|
</ul>
|
||||||
|
<h4>Crypto Options</h4><div class="dropdown">
|
||||||
|
<button class="btn btn-primary" aria-expanded="false" data-bs-toggle="dropdown" type="button" id="dropdownButton">Select Crypto</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-dark">
|
||||||
|
<input type="text" id="cryptoSearch" class="form-control" placeholder="Search for more cryptos..." autocomplete="off">
|
||||||
|
<div id="cryptoList">
|
||||||
|
{{coins|safe}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const dropdownButton = document.getElementById('dropdownButton');
|
||||||
|
const cryptoSearch = document.getElementById('cryptoSearch');
|
||||||
|
|
||||||
|
dropdownButton.addEventListener('click', function() {
|
||||||
|
setTimeout(() => cryptoSearch.focus(), 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
document.getElementById('cryptoSearch').addEventListener('input', function() {
|
||||||
|
const searchValue = this.value.toLowerCase();
|
||||||
|
const cryptoList = document.getElementById('cryptoList').getElementsByTagName('a');
|
||||||
|
|
||||||
|
if (searchValue === '') {
|
||||||
|
// Show default coins
|
||||||
|
const defaultCoins = {{default_coins|tojson}};
|
||||||
|
for (let i = 0; i < cryptoList.length; i++) {
|
||||||
|
const cryptoName = cryptoList[i].getAttribute('href').split('=')[1];
|
||||||
|
if (defaultCoins.includes(cryptoName)) {
|
||||||
|
cryptoList[i].style.display = '';
|
||||||
|
} else {
|
||||||
|
cryptoList[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Filter based on search input
|
||||||
|
for (let i = 0; i < cryptoList.length; i++) {
|
||||||
|
const cryptoName = cryptoList[i].textContent.toLowerCase();
|
||||||
|
if (cryptoName.indexOf(searchValue) > -1) {
|
||||||
|
cryptoList[i].style.display = '';
|
||||||
|
} else {
|
||||||
|
cryptoList[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
document.getElementById('cryptoSearch').addEventListener('keydown', function(event) {
|
||||||
|
if (event.key === 'Enter') {
|
||||||
|
event.preventDefault(); // Prevent form submission
|
||||||
|
// Get the first visible crypto and redirect to it
|
||||||
|
const cryptoList = document.getElementById('cryptoList').getElementsByTagName('a');
|
||||||
|
for (let i = 0; i < cryptoList.length; i++) {
|
||||||
|
if (cryptoList[i].style.display === '') {
|
||||||
|
window.location.href = cryptoList[i].getAttribute('href');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<p>{{crypto|safe}}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<footer style="background: #110033;">
|
||||||
|
<div class="container text-center">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<p>Verify me with this <a href="pgp" target="_blank">long lifetime Public Key</a> or this <a href="gitpgp" target="_blank">short term one for Github commits</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<p class="d-none d-print-inline-block d-sm-inline-block d-md-inline-block d-lg-inline-block d-xl-inline-block d-xxl-inline-block">This site is also available on<br><a href="https://learn.namebase.io/" target="_blank">Handshake</a> at <a href="https://nathan.woodburn">https://nathan.woodburn/</a><br><a href="https://www.torproject.org/" target="_blank">Tor</a> at <a href="http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion/">http://wdbrncwefot4hd7bdrz5rzb74mefay7zvrjn2vmkpdm44l7fwnih5ryd.onion/</a></p>
|
||||||
|
<p class="copyright">Copyright © Nathan.Woodburn/ 2024</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer><script>
|
||||||
|
function copyToClipboard(element) {
|
||||||
|
const textToCopy = element.textContent;
|
||||||
|
const textArea = document.createElement('textarea');
|
||||||
|
textArea.value = textToCopy;
|
||||||
|
document.body.appendChild(textArea);
|
||||||
|
textArea.select();
|
||||||
|
document.execCommand('copy');
|
||||||
|
document.body.removeChild(textArea);
|
||||||
|
}
|
||||||
|
|
||||||
|
const btc = document.getElementById('btc');
|
||||||
|
const eth = document.getElementById('eth');
|
||||||
|
const hns = document.getElementById('hns');
|
||||||
|
const sol = document.getElementById('sol');
|
||||||
|
const hnsdomain = document.getElementById('hns-domain');
|
||||||
|
const soldomain = document.getElementById('sol-domain');
|
||||||
|
const ethdomain = document.getElementById('eth-domain');
|
||||||
|
|
||||||
|
btc.addEventListener('click', () => {
|
||||||
|
copyToClipboard(btc);
|
||||||
|
});
|
||||||
|
eth.addEventListener('click', () => {
|
||||||
|
copyToClipboard(eth);
|
||||||
|
});
|
||||||
|
hns.addEventListener('click', () => {
|
||||||
|
copyToClipboard(hns);
|
||||||
|
});
|
||||||
|
sol.addEventListener('click', () => {
|
||||||
|
copyToClipboard(sol);
|
||||||
|
});
|
||||||
|
|
||||||
|
hnsdomain.addEventListener('click', () => {
|
||||||
|
copyToClipboard(hnsdomain);
|
||||||
|
});
|
||||||
|
soldomain.addEventListener('click', () => {
|
||||||
|
copyToClipboard(soldomain);
|
||||||
|
});
|
||||||
|
ethdomain.addEventListener('click', () => {
|
||||||
|
copyToClipboard(ethdomain);
|
||||||
|
});
|
||||||
|
</script>{{custom | safe}}
|
||||||
|
<script src="/assets/bootstrap/js/bootstrap.min.js"></script>
|
||||||
|
<script src="/assets/js/script.min.js"></script>
|
||||||
|
<script src="/assets/js/hacker.min.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -33,23 +33,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -47,23 +47,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/swiper.min.css">
|
<link rel="stylesheet" href="/assets/css/swiper.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -73,7 +56,7 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -231,7 +214,7 @@ Check them out here!</blockquote><img class="img-fluid" src="/assets/img/pfront.
|
|||||||
<li class="list-inline-item"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://github.com/sponsors/Nathanwoodburn" style="width: 170px;" target="_blank"><i class="fab fa-github fa-fw"></i><span class="network-name"> Github</span></a></li>
|
<li class="list-inline-item"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://github.com/sponsors/Nathanwoodburn" style="width: 170px;" target="_blank"><i class="fab fa-github fa-fw"></i><span class="network-name"> Github</span></a></li>
|
||||||
<li class="list-inline-item"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://donate.stripe.com/8wM6pv0VD08Xe408ww" style="width: 170px;" target="_blank"><i class="fab fa-stripe-s fa-fw"></i><span class="network-name"> Stripe</span></a></li>
|
<li class="list-inline-item"> <a class="btn btn-primary btn-lg btn-default" role="button" href="https://donate.stripe.com/8wM6pv0VD08Xe408ww" style="width: 170px;" target="_blank"><i class="fab fa-stripe-s fa-fw"></i><span class="network-name"> Stripe</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>HNS:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="hns" class="hns" style="color: rgb(242,90,5);" title="Click to copy">{{HNS}}</code><br>BTC:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="btc" class="btc" style="color: rgb(242,90,5);" title="Click to copy">bc1qhs94zzcw64qnwq4hvk056rwxwvgrkd7tq7d4xw</code><br>ETH:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="eth" class="eth" style="color: rgb(242,90,5);" title="Click to copy">0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e</code></p>
|
<p>HNS:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="hns-domain" class="hns" style="color: rgb(242,90,5);display: block;" title="Click to copy">nathan.woodburn</code><code data-bs-toggle="tooltip" data-bss-tooltip="" id="hns" class="hns" style="color: rgb(242,90,5);display: block;" title="Click to copy">{{HNS}}</code><br>BTC:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="btc" class="btc" style="color: rgb(242,90,5);display: block;" title="Click to copy">bc1qhs94zzcw64qnwq4hvk056rwxwvgrkd7tq7d4xw</code><br>SOL:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="sol-domain" class="sol" style="color: rgb(242,90,5);display: block;" title="Click to copy">woodburn.sol</code><code data-bs-toggle="tooltip" data-bss-tooltip="" id="sol" class="sol" style="color: rgb(242,90,5);display: block;" title="Click to copy">AJsPEEe6S7XSiVcdZKbeV8GRp1QuhFUsG8mLrqL4XgiU</code><br>ETH:<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="eth-domain" class="eth" style="color: rgb(242,90,5);display: block;" title="Click to copy">woodburn.au</code><code data-bs-toggle="tooltip" data-bss-tooltip="" id="eth" class="eth" style="color: rgb(242,90,5);display: block;" title="Click to copy">0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e</code><a class="btn btn-primary btn-default" role="button" href="/donate" style="width: 170px;">OTHER OPTIONS</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -264,6 +247,10 @@ Check them out here!</blockquote><img class="img-fluid" src="/assets/img/pfront.
|
|||||||
const btc = document.getElementById('btc');
|
const btc = document.getElementById('btc');
|
||||||
const eth = document.getElementById('eth');
|
const eth = document.getElementById('eth');
|
||||||
const hns = document.getElementById('hns');
|
const hns = document.getElementById('hns');
|
||||||
|
const sol = document.getElementById('sol');
|
||||||
|
const hnsdomain = document.getElementById('hns-domain');
|
||||||
|
const soldomain = document.getElementById('sol-domain');
|
||||||
|
const ethdomain = document.getElementById('eth-domain');
|
||||||
|
|
||||||
btc.addEventListener('click', () => {
|
btc.addEventListener('click', () => {
|
||||||
copyToClipboard(btc);
|
copyToClipboard(btc);
|
||||||
@ -274,6 +261,19 @@ Check them out here!</blockquote><img class="img-fluid" src="/assets/img/pfront.
|
|||||||
hns.addEventListener('click', () => {
|
hns.addEventListener('click', () => {
|
||||||
copyToClipboard(hns);
|
copyToClipboard(hns);
|
||||||
});
|
});
|
||||||
|
sol.addEventListener('click', () => {
|
||||||
|
copyToClipboard(sol);
|
||||||
|
});
|
||||||
|
|
||||||
|
hnsdomain.addEventListener('click', () => {
|
||||||
|
copyToClipboard(hnsdomain);
|
||||||
|
});
|
||||||
|
soldomain.addEventListener('click', () => {
|
||||||
|
copyToClipboard(soldomain);
|
||||||
|
});
|
||||||
|
ethdomain.addEventListener('click', () => {
|
||||||
|
copyToClipboard(ethdomain);
|
||||||
|
});
|
||||||
</script>{{custom | safe}}
|
</script>{{custom | safe}}
|
||||||
<script src="/assets/bootstrap/js/bootstrap.min.js"></script>
|
<script src="/assets/bootstrap/js/bootstrap.min.js"></script>
|
||||||
<script src="/assets/js/script.min.js"></script>
|
<script src="/assets/js/script.min.js"></script>
|
||||||
|
@ -37,23 +37,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/GridSystem-1.min.css">
|
<link rel="stylesheet" href="/assets/css/GridSystem-1.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -36,25 +36,9 @@ Find out what I've been up to in the last week">
|
|||||||
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
||||||
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/css/now.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -64,7 +48,7 @@ Find out what I've been up to in the last week">
|
|||||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,25 +36,9 @@ Find out what I've been up to in the last week">
|
|||||||
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
||||||
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/css/now.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -64,7 +48,7 @@ Find out what I've been up to in the last week">
|
|||||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,25 +36,9 @@ Find out what I've been up to in the last week">
|
|||||||
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
||||||
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/css/now.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -64,7 +48,7 @@ Find out what I've been up to in the last week">
|
|||||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,25 +36,9 @@ Find out what I've been up to in the last week">
|
|||||||
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
<link rel="stylesheet" href="/assets/fonts/font-awesome.min.css">
|
||||||
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
<link rel="stylesheet" href="/assets/fonts/ionicons.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
|
<link rel="stylesheet" href="/assets/css/now.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -64,7 +48,7 @@ Find out what I've been up to in the last week">
|
|||||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/">Home</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="projects">Projects</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/projects">Projects</a></li>
|
||||||
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
<li class="nav-item nav-link"><a class="nav-link" href="/now">Now</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,23 +33,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -34,23 +34,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/podcast.min.css">
|
<link rel="stylesheet" href="/assets/css/podcast.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -34,23 +34,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -34,23 +34,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/Footer-Dark-icons.min.css">
|
<link rel="stylesheet" href="/assets/css/Footer-Dark-icons.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/resume.min.css">
|
<link rel="stylesheet" href="/assets/css/resume.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -34,23 +34,6 @@
|
|||||||
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
<link rel="stylesheet" href="/assets/css/styles.min.css">
|
||||||
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
<link rel="stylesheet" href="/assets/css/profile.min.css">
|
||||||
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
<link rel="me" href="https://mastodon.woodburn.au/@nathanwoodburn" />
|
||||||
|
|
||||||
<!-- Matomo -->
|
|
||||||
<script>
|
|
||||||
var _paq = window._paq = window._paq || [];
|
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
||||||
_paq.push(['trackPageView']);
|
|
||||||
_paq.push(['enableLinkTracking']);
|
|
||||||
(function() {
|
|
||||||
var u="//analytics.woodburn.au/";
|
|
||||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
||||||
_paq.push(['setSiteId', '1']);
|
|
||||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
||||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<!-- End Matomo Code -->
|
|
||||||
|
|
||||||
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
<script async src="https://umami.woodburn.au/script.js" data-website-id="6a55028e-aad3-481c-9a37-3e096ff75589"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -6,6 +6,9 @@
|
|||||||
<url>
|
<url>
|
||||||
<loc>https://nathan.woodburn.au/now/24_02_25</loc>
|
<loc>https://nathan.woodburn.au/now/24_02_25</loc>
|
||||||
</url>
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://nathan.woodburn.au/now/24_04_14</loc>
|
||||||
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://nathan.woodburn.au/now/old</loc>
|
<loc>https://nathan.woodburn.au/now/old</loc>
|
||||||
</url>
|
</url>
|
||||||
@ -18,6 +21,9 @@
|
|||||||
<url>
|
<url>
|
||||||
<loc>https://nathan.woodburn.au/ascii</loc>
|
<loc>https://nathan.woodburn.au/ascii</loc>
|
||||||
</url>
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://nathan.woodburn.au/donate</loc>
|
||||||
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://nathan.woodburn.au/gitpgp</loc>
|
<loc>https://nathan.woodburn.au/gitpgp</loc>
|
||||||
</url>
|
</url>
|
||||||
|
Loading…
Reference in New Issue
Block a user