- services.nextcloud with PostgreSQL, hostName nextcloud.tadix.dev - nginx vhost with ACME for nextcloud.tadix.dev - Homepage PROJECTS section now fetches repos from Forgejo API - Added nextcloud link to footer
69 lines
2 KiB
HTML
69 lines
2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Lucas Tadeu</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>Lucas Tadeu</h1>
|
|
<p class="dim">tadeu(1) — personal page</p>
|
|
</header>
|
|
|
|
<hr>
|
|
|
|
<section>
|
|
<h2>ABOUT</h2>
|
|
<p>Bioprocess engineer and biotechnologist working as a process analyst.<br>
|
|
Interested in systems, automation, and open source.</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>PROJECTS</h2>
|
|
<div id="git-projects"><p class="dim">— loading —</p></div>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>WRITING</h2>
|
|
<p class="dim">— nothing here yet —</p>
|
|
</section>
|
|
|
|
<hr>
|
|
|
|
<footer>
|
|
<a href="mailto:ltadeu6@pm.me">email</a>
|
|
<a href="https://github.com/ltadeu6">github</a>
|
|
<a href="https://git.tadix.dev">git</a>
|
|
<a href="https://jupyter.tadix.dev">jupyter</a>
|
|
<a href="https://nextcloud.tadix.dev">nextcloud</a>
|
|
</footer>
|
|
|
|
<script>
|
|
(async () => {
|
|
const el = document.getElementById('git-projects');
|
|
try {
|
|
const res = await fetch('https://git.tadix.dev/api/v1/users/ltadeu6/repos?sort=updated&limit=50');
|
|
if (!res.ok) throw new Error(res.status);
|
|
const repos = await res.json();
|
|
const visible = repos.filter(r => !r.archived && !r.fork && !r.empty);
|
|
if (!visible.length) {
|
|
el.innerHTML = '<p class="dim">— no public repositories —</p>';
|
|
return;
|
|
}
|
|
el.innerHTML = visible.map(r => {
|
|
const desc = r.description ? `<span class="dim"> — ${r.description}</span>` : '';
|
|
const live = r.website ? `<a href="${r.website}">live</a> · ` : '';
|
|
return `<p>
|
|
<a href="${r.html_url}">${r.name}</a>${desc}
|
|
<br><span class="dim">${live}<a href="${r.html_url}">source</a></span>
|
|
</p>`;
|
|
}).join('');
|
|
} catch {
|
|
el.innerHTML = '<p class="dim">— could not load repositories —</p>';
|
|
}
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|