Compare commits

..

21 commits

Author SHA1 Message Date
Ayo
1dbd3d662c 1.3.78 2026-05-31 18:48:18 +02:00
Ayo
199f3d1429 fix: links to legacy blog 2026-05-31 18:47:57 +02:00
Ayo
74a3a71090 1.3.77 2026-05-31 18:41:01 +02:00
Ayo
7966746711 feat(pgp): copy & download buttons 2026-05-31 18:40:50 +02:00
Ayo
7e0380a324 1.3.76 2026-05-31 17:04:22 +02:00
Ayo
7921721425 feat(pgp): concise description 2026-05-31 17:04:11 +02:00
Ayo
5fa6e68b37 1.3.75 2026-05-31 17:00:38 +02:00
Ayo
a71eb0f975 feat: add 'encryption' purpose for pgp key 2026-05-31 16:28:29 +02:00
Ayo
087403f70f 1.3.74 2026-05-31 13:11:35 +02:00
Ayo
25a83048d5 feat: remove chat link 2026-05-31 13:11:09 +02:00
Ayo
8f09af3829 1.3.73 2026-05-31 10:08:15 +02:00
Ayo
7ff435d619 feat(pgp): concise desc 2026-05-31 10:07:15 +02:00
Ayo
9d21f0282b 1.3.72 2026-05-31 08:42:01 +02:00
Ayo
5cc77e537b fix(pgp): meta descriptions 2026-05-31 08:41:42 +02:00
Ayo
05dd11db99 chore: patch, build, deploy script shortcut 2026-05-31 08:37:36 +02:00
Ayo
2e4cf74810 1.3.71 2026-05-31 08:34:50 +02:00
Ayo
5140c1fe55 feat(pgp): add title and description 2026-05-31 08:34:37 +02:00
Ayo
d9abb4bd53 1.3.70 2026-05-31 02:46:28 +02:00
Ayo
5104dc3176 feat: indicate pgp key expiry date 2026-05-31 02:44:33 +02:00
Ayo
5d2802aca7 feat: copy-able public key 2026-05-31 02:40:12 +02:00
Ayo
f0bb8f9272 feat: pgp key download link 2026-05-31 02:21:03 +02:00
6 changed files with 106 additions and 27 deletions

View file

@ -1,7 +1,7 @@
{
"name": "@ayco/personal-website",
"type": "module",
"version": "1.3.69",
"version": "1.3.78",
"private": true,
"scripts": {
"astro": "astro",
@ -15,6 +15,7 @@
"check": "npm run format && npm run lint",
"deploy": "eval $(grep '^HOST' .env) && scp -r dist ayo@$HOST:~/ayco.io-flask",
"patch:build:deploy": "npm version patch && npm run build && npm run deploy",
"pbd": "npm run patch:build:deploy",
"build:preview": "npm run build && astro preview",
"build:deploy": "npm run build && npm run deploy",
"copy:dist": "npm run build && cp -R dist ../ayco.io-flask/",

View file

@ -45,7 +45,7 @@ const year = new Date().getFullYear()
<p>
Copyright &#169; 2022-{year}
<a href="/">Ayo Ayco</a>. This website <a
href="https://ayos.blog/stopped-tracking-on-my-sites"
href="https://v1.ayos.blog/stopped-tracking-on-my-sites"
>does not track users</a
>. See the <a href="https://git.ayo.run/ayo/ayco.io-astro">source code.</a>
</p>

View file

@ -36,8 +36,9 @@ import Footer from '../components/Footer.astro'
<p>
In my spare time, I find it fun building <a href="/showcase">projects</a>,
running self-hosted services at <a href="https://ayo.run">ayo.run</a>, and
volunteering to <a href="https://ayos.blog/why-fediverse/" target="_blank"
>Fediverse</a
volunteering to <a
href="https://v1.ayos.blog/why-fediverse/"
target="_blank">Fediverse</a
> projects like <a href="https://elk.zone">elk.zone</a>,
<a href="https://m.webtoo.ls/public/local">webtoo.ls</a>, and <a
href="https://m.webtoo.ls/@vitest">vitest's fedi presence</a
@ -53,14 +54,8 @@ import Footer from '../components/Footer.astro'
<p>My inbox is open to everyone.</p>
<ul>
<li>
✉️ Email me: <a href="mailto:ayo@ayco.io">ayo@ayco.io</a> &middot; <a
href="/pgp">PGP key</a
>
</li>
<li>
💬 Let's chat: <a href="https://chat.ayo.run/join/7IKG-h3nW-pD1H"
>chat.ayo.run</a
>
✉️ Email me: <a href="mailto:ayo@ayco.io">ayo@ayco.io</a> &middot
<small> (<a href="/pgp">PGP key</a>)</small>
</li>
<li>
💬 Signal: <a

View file

@ -41,15 +41,6 @@ const avatarSize = 150
<span class="now-label">now</span>
<span class="status">{now.title}</span>
</a>
<a
href="https://chat.ayo.run/join/7IKG-h3nW-pD1H"
class="chat-link action"
>
<status-indicator id="chat-link" pulse status="positive">
Chat
</status-indicator>
</a>
</div>
</div>
</section>

View file

@ -1,12 +1,26 @@
---
import Layout from '../layouts/Layout.astro'
import Footer from '../components/Footer.astro'
const title = 'PGP public key'
const description =
'Use to verify my digital signature or to encrypt messages intended only for me.'
---
<Layout title="About" description="About Ayo Ayco and how to contact">
<Layout title={"Ayo's " + title} description={description}>
<main>
<code
><pre>
<h1>My {title}</h1>
<p>{description}</p>
<div class="key-block" role="region" aria-labelledby="public-key">
<div class="btn-wrapper">
<button class="copy-btn btn" aria-label="Copy key to clipboard"
>Copy</button
>
<a href="/publickey.asc" class="btn">Download</a>
</div>
<pre
id="public-key"><code>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEahs0NhYJKwYBBAHaRw8BAQdAV2CfblniKxklPgW9eYt2gBl0jMHLwtjrQaY+
@ -20,14 +34,91 @@ AAoJEGXmv2QVKTxlMSQBAP5ta1kUFp3HAYwcun8qmoiVq1dEJSN1LnI7HlX4ucTl
AP0YLC768PFTBm9CM5T1BE0xjJ7s4dZSrVoI4n8RSe1nCA==
=MTsv
-----END PGP PUBLIC KEY BLOCK-----
</pre></code
>
</code></pre>
</div>
<p>Expiry Date: 2027-05-30</p>
<p>
Fingerprint: <code
>17F1 3D5E 8FF7 372B 1354 5C38 65E6 BF64 1529 3C65</code>
</p>
<p></p>
</main>
<Footer />
</Layout>
<script>
/* Clipboard copy logic */
document.querySelector('.copy-btn').addEventListener('click', async () => {
const keyText = document.querySelector('#public-key code').innerText.trim()
try {
await navigator.clipboard.writeText(keyText)
const btn = document.querySelector('.copy-btn')
const original = btn.textContent
btn.textContent = 'Copied!'
setTimeout(() => {
btn.textContent = original
}, 2000)
} catch (err) {
console.error('Copy failed', err)
alert('Unable to copy the key. Please copy it manually.')
}
})
</script>
<style>
code {
font-size: var(--font-size-sm);
}
.key-block {
position: relative;
background: #272822;
color: #f8f8f2;
font-family: monospace;
font-size: 0.9rem;
line-height: 1.4;
padding: 1rem 1rem 1rem 1.5rem;
border-radius: 4px;
overflow-x: auto;
white-space: pre-wrap;
word-wrap: break-word;
margin: 1em 0;
}
.key-block code {
display: block;
}
/* buttons */
.btn-wrapper {
position: absolute;
top: 0.5rem;
right: 0.5rem;
}
.btn {
display: inline-block;
position: relative;
background: var(--color-brand-blue-1);
color: #fff;
border: none;
border-radius: 4px;
padding: 0.3rem 0.6rem;
font-size: 0.8rem;
cursor: pointer;
opacity: 0.9;
transition: opacity 0.2s;
text-decoration: none;
}
.btn:hover,
.btn:focus {
opacity: 1;
}
.btn:focus {
outline: 2px solid #0056b3;
outline-offset: 2px;
}
</style>

View file

@ -11,7 +11,8 @@ import Card from '../components/Card.astro'
<main>
<h1><span class="text-gradient">Hobby Projects</span></h1>
<p>
See more of my previous projects at <a href="https://ayos.blog">my blog</a
See more of my previous projects at <a
href="https://v1.ayos.blog/projects">my blog</a
>.
</p>
<ul>