Files
cacto 2036e909ea Вёрстка резюме и карточек проектов в теме Matrix/cacto
Резюме: ASCII-кактус, glitch-заголовок, таймлайн опыта, скилл-теги, контакты.
Проекты: карточки-терминалы (home_automatization, cactoz.su) со ссылками на git.cactoz.su.
Canvas-дождь на цифровых/катакана символах, пиксельный SVG-кактус как лого/favicon.
2026-07-26 20:47:21 +05:00

40 lines
1.5 KiB
JavaScript

const projects = [
{
name: 'home_automatization',
title: 'Home Automation Platform',
description:
'Микросервисная платформа умного дома на Go и Laravel. Первая зона — гроубокс (полив, свет, климат), дальше — весь дом.',
tags: ['Go', 'Laravel', 'Docker', 'RabbitMQ', 'ClickHouse', 'gRPC', 'MQTT'],
url: 'https://git.cactoz.su/cacto/home_automatization',
},
{
name: 'cactoz.su',
title: 'cactoz.su — этот сайт',
description:
'Личный сайт-визитка: резюме, проекты и мультиплеерный клон BattleCity. Тема — Матрица.',
tags: ['HTML/CSS/JS', 'C++', 'uWebSockets', 'Quintus.js', 'nginx', 'Docker'],
url: 'https://git.cactoz.su/cacto/cactoz.su',
},
];
const list = document.getElementById('project-list');
if (list) {
list.innerHTML = projects
.map(
(p) => `
<li class="project-card">
<div class="project-card__bar"><span></span>${p.name}/README.md</div>
<div class="project-card__body">
<h3 class="project-card__title">${p.title}</h3>
<p class="project-card__desc">${p.description}</p>
<ul class="tag-list">
${p.tags.map((t) => `<li class="tag">${t}</li>`).join('')}
</ul>
<a class="project-card__link" href="${p.url}" target="_blank" rel="noopener">${p.url.replace('https://', '')}</a>
</div>
</li>`
)
.join('');
}