36 lines
1.7 KiB
PHP
36 lines
1.7 KiB
PHP
<?php
|
|
$title = 'Projects';
|
|
$description = "He who calls his work done has mistaken the horizon for a wall.";
|
|
$data = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/assets/data/projects.json'), true);
|
|
$projects = $data['projects'] ?? [];
|
|
include $_SERVER['DOCUMENT_ROOT'] . '/includes/head.php';
|
|
?>
|
|
<body class="bg-[#0a0a0a] text-white min-h-screen">
|
|
<?php include $_SERVER['DOCUMENT_ROOT'] . '/includes/nav.php'; ?>
|
|
|
|
<main class="pt-16">
|
|
<div class="max-w-3xl mx-auto px-4 sm:px-6 py-12">
|
|
<h1 class="text-2xl font-semibold mb-6">Projects</h1>
|
|
<p class="text-neutral-300 text-lg mb-12 text-center">He who mistakes completion for mastery has learned only the shape of his own ignorance.</p>
|
|
|
|
<div class="space-y-6">
|
|
<?php foreach ($projects as $project): ?>
|
|
<a href="<?= htmlspecialchars($project['url']) ?>" class="group block border border-[#1c1c1c] hover:border-[#333] bg-[#060606] hover:bg-[#0d0d0d] transition-colors p-6">
|
|
<div class="flex items-start justify-between gap-4">
|
|
<div>
|
|
<h2 class="text-sm font-semibold mb-1 group-hover:text-[#e6dfd8] transition-colors"><?= htmlspecialchars($project['title']) ?></h2>
|
|
<?php if (!empty($project['note'])): ?>
|
|
<p class="text-neutral-400 text-base leading-relaxed"><?= htmlspecialchars($project['note']) ?></p>
|
|
<?php endif; ?>
|
|
</div>
|
|
<span class="text-neutral-400 text-base shrink-0 mt-1"><?= htmlspecialchars(parse_url($project['url'], PHP_URL_HOST)) ?></span>
|
|
</div>
|
|
</a>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
|
|
</body>
|
|
</html>
|