118 lines
3.7 KiB
HTML
118 lines
3.7 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta
|
|
name="title"
|
|
content="d3m0k1d - DevOps Engineer & InfoSec Student | Go Backend Developer"
|
|
/>
|
|
<meta
|
|
name="keywords"
|
|
content="DevOps, InfoSec, Backend Developer, Go, Linux, Security, Portfolio, Programming, Personal Website, Personal blog, DSTU, Don State Technical Unversity, Unix"
|
|
/>
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Person",
|
|
"name": "d3m0k1d",
|
|
"url": "https://d3m0k1d.ru",
|
|
"jobTitle": "DevOps Engineer",
|
|
"description": "DevOps Engineer, InfoSec student at DSTU, and Go backend developer",
|
|
"alumniOf": {
|
|
"@type": "EducationalOrganization",
|
|
"name": "Don State Technical University"
|
|
},
|
|
"knowsAbout": [
|
|
"DevOps",
|
|
"Information Security",
|
|
"Backend Development",
|
|
"Go",
|
|
"Linux",
|
|
"Infrastructure Automation"
|
|
],
|
|
"sameAs": ["https://github.com/d3m0k1d"]
|
|
}
|
|
</script>
|
|
<link rel="canonical" href="https://d3m0k1d.ru" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
|
|
<meta name="author" content="d3m0k1d" />
|
|
<meta name="robots" content="index, follow" />
|
|
<title>d3m0k1d - DevOps Engineer & InfoSec Student</title>
|
|
|
|
<style>
|
|
#initial-loader {
|
|
position: fixed;
|
|
inset: 0;
|
|
background: #000;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 9999;
|
|
font-family: monospace;
|
|
}
|
|
|
|
#initial-loader .spinner {
|
|
width: 48px;
|
|
height: 48px;
|
|
border: 3px solid rgba(255, 255, 255, 0.1);
|
|
border-top-color: hsl(270, 73%, 63%);
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
#initial-loader .text {
|
|
margin-top: 16px;
|
|
color: #666;
|
|
font-size: 14px;
|
|
}
|
|
|
|
#initial-loader .cursor {
|
|
color: hsl(270, 73%, 63%);
|
|
animation: blink 1s infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@keyframes blink {
|
|
0%,
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
51%,
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
/* Скрываем loader когда React готов */
|
|
body.loaded #initial-loader {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transition: opacity 0.3s ease-out;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<!-- Initial loader -->
|
|
<div id="initial-loader">
|
|
<div class="spinner"></div>
|
|
<div class="text">
|
|
<span class="cursor">$</span> loading<span class="cursor"
|
|
>_</span
|
|
>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|