Files
cactoz.su/frontend/projects.html
T
cacto d4655bda2b Правки по аудиту сайта: og-теги, честный whoami, prerender, переименование игры
- og:title/description/image + canonical + twitter:card в index.html,
  нарисован assets/og.png (1200x630, тема сайта). CSP не трогали — картинка
  того же происхождения.
- Переписан текст «обо мне» и формулировка про текущую работу в
  Уралэнергоаква (убраны двусмысленности "неофициально возглавлял" и
  "продолжаю искать"), Go убран из title/skills-тега как отдельная
  "изучаю" пометка — теперь просто в стеке, раз есть реальный Go-код в
  home_automatization.
- resume.js/projects.js больше не перерисовывают контент через JS при
  языке по умолчанию (ru) — index.html/projects.html содержат готовый
  серверный HTML, JS перерисовывает только при переключении на EN. Раньше
  весь текст резюме подгружался пустым в #resume-root, curl без JS ничего
  не видел.
- Добавлены кнопка «скачать резюме (PDF)» и ссылка на git.cactoz.su в
  первый экран резюме.
- home_automatization на /projects честно помечен «в разработке» вместо
  описания как готового продукта.
- Игра переименована из BattleCity (товарный знак Namco) в ./tanks,
  убрана из основного меню во все страницы — ссылка теперь только в
  подвале страницы whoami.
2026-08-10 20:40:03 +05:00

86 lines
4.2 KiB
HTML

<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ls projects/ — cacto</title>
<meta name="description" content="Проекты Гаммеля Дмитрия: home automation platform и этот сайт." />
<link rel="canonical" href="https://cactoz.su/projects" />
<link rel="icon" type="image/svg+xml" href="/assets/cactus-logo.svg" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="/css/theme.css" />
<link rel="stylesheet" href="/css/projects.css" />
</head>
<body>
<canvas id="matrix-rain"></canvas>
<header class="site-header">
<div class="site-header__inner">
<a href="/" class="logo" aria-label="cacto — на главную">
<img src="/assets/cactus-logo.svg" width="20" height="20" alt="" />
cacto<span class="cursor">_</span>
</a>
<ul class="nav-links">
<li><a href="/">whoami</a></li>
<li><a href="/projects" aria-current="page">ls projects/</a></li>
<li><button id="lang-toggle" class="lang-btn" type="button">EN</button></li>
</ul>
</div>
</header>
<div class="container">
<!--
Статика ниже — серверный RU-рендер того же содержимого, что генерирует
frontend/js/projects.js (DATA.ru). projects.js не перерисовывает при
lang=ru — только при переключении на EN. При правке текста меняйте оба
места: DATA.ru в projects.js и разметку ниже.
-->
<main>
<section>
<h1 id="projects-heading" class="page-heading">ls projects/</h1>
<p id="projects-subheading" class="page-subheading">Пара вещей, которые я собрал сам, от идеи до продакшена.</p>
<ul id="project-list" class="project-grid">
<li class="project-card">
<div class="project-card__header">
<div class="project-card__name"><span class="project-card__perms">drwxr-xr-x</span> home_automatization</div>
<a href="https://git.cactoz.su/cacto/home_automatization" target="_blank" rel="noopener">открыть →</a>
</div>
<p class="project-card__desc">В разработке: архитектура и ТЗ готовы, микросервисы на Go и Laravel собираются. Первая зона — гроубокс (полив, свет, климат), дальше — весь дом.</p>
<ul class="tag-list">
<li class="tag">в разработке</li>
<li class="tag">Go</li>
<li class="tag">Laravel</li>
<li class="tag">Docker</li>
<li class="tag">RabbitMQ</li>
<li class="tag">ClickHouse</li>
<li class="tag">gRPC</li>
<li class="tag">MQTT</li>
</ul>
</li>
<li class="project-card">
<div class="project-card__header">
<div class="project-card__name"><span class="project-card__perms">drwxr-xr-x</span> cactoz.su</div>
<a href="https://git.cactoz.su/cacto/cactoz.su" target="_blank" rel="noopener">открыть →</a>
</div>
<p class="project-card__desc">Личный сайт-визитка: резюме, проекты и мультиплеерная мини-игра про танки. Тема — Матрица.</p>
<ul class="tag-list">
<li class="tag">HTML/CSS/JS</li>
<li class="tag">C++</li>
<li class="tag">uWebSockets</li>
<li class="tag">Quintus.js</li>
<li class="tag">nginx</li>
<li class="tag">Docker</li>
</ul>
</li>
</ul>
</section>
</main>
</div>
<script type="module" src="/js/matrix-rain.js"></script>
<script type="module" src="/js/projects.js"></script>
</body>
</html>