init
This commit is contained in:
commit
c34f7c83f0
40
about/index.html
Normal file
40
about/index.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil - about</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<!--[if IE]>
|
||||
<script src="../oneko-ie6.js"></script>
|
||||
<![endif]-->
|
||||
<!--[if !IE]><!-->
|
||||
<script src="/oneko.js"></script>
|
||||
<!--<![endif]-->
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="https://tanyesil.com/contact">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="title">About tanyesil.com</h1>
|
||||
<p class="intro">im studying Architecture in METU but i have always
|
||||
been a huge nerd! this website is a collection of my projects
|
||||
spread across many computers that were never inteded to be servers
|
||||
</p>
|
||||
<p class="intro"> btc address = {bc1qzufuwhqqgcza5tmut4p578wdu0fwl624knlrtr}; monero address = {49BfmCuhCJWMF5QsmPooxWeZkJxUzERvziWUk8Hu2XZzP3u2dHYb5vuNiWu8ho4TFPhCzx8wUPweVdqpJ69zmmTy5kmkpDd};</p>
|
||||
<footer class="footer">
|
||||
<p>© 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
background.gif
Normal file
BIN
background.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 390 KiB |
38
blog/index.html
Normal file
38
blog/index.html
Normal file
@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil - about</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<!--[if IE]>
|
||||
<script src="../oneko-ie6.js"></script>
|
||||
<![endif]-->
|
||||
<!--[if !IE]><!-->
|
||||
<script src="/oneko.js"></script>
|
||||
<!--<![endif]-->
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="https://tanyesil.com/contact">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="intro">this site is under construction<br>uwu<br>in the mean
|
||||
time here is a good song while you wait
|
||||
<li><a href="https://yabadum.bandcamp.com/album/you-were-our-star-single">You Were Our Star</a></li>
|
||||
</h1>
|
||||
<footer class="footer">
|
||||
<p>© 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
42
contact/index.html
Normal file
42
contact/index.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil - about</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<!--[if IE]>
|
||||
<script src="../oneko-ie6.js"></script>
|
||||
<![endif]-->
|
||||
<!--[if !IE]><!-->
|
||||
<script src="../oneko.js"></script>
|
||||
<!--<![endif]-->
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="https://tanyesil.com/contact">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="title">contacting tanyesil</h1>
|
||||
<p class="intro">here is how you can contact me:</p>
|
||||
<p class="intro">tanyesilkaya(at)gmail.com
|
||||
<br>tanyesil(at)cumallover.me <br>^this is my prefered mail</p>
|
||||
<p class="intro">mail me if you have found something cool on the world wide web and if you'd like to add a little gem to my collection!!</p>
|
||||
<p class="intro"> btc address = {bc1qzufuwhqqgcza5tmut4p578wdu0fwl624knlrtr};
|
||||
monero address = {49BfmCuhCJWMF5QsmPooxWeZkJxUzERvziWUk8Hu2XZzP3u2dHYb5vuNiWu8ho4TFPhCzx8wUPweVdqpJ69zmmTy5kmkpDd};
|
||||
<br>hon this one is longer so it must be better</p>
|
||||
<footer class="footer">
|
||||
<p>© 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
favicon.png
Normal file
BIN
favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
56
gems/index.html
Normal file
56
gems/index.html
Normal file
@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil</title>
|
||||
<link id="favicon" rel="icon" href="/favicon.png" type="image/png">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<script src="/oneko.js"></script>
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="https://tanyesil.com/contact">Contact</a></li>
|
||||
<li><a href="https://tanyesil.com/supersecret">Super Secret!!</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="title">TanYesil's Other Gems</h1>
|
||||
<p class="intro">these are the stuff i found was interesting enough to share but not so cool to be on the front page</p>
|
||||
<!-- Central Content Area -->
|
||||
<div class="blog" id="blog">
|
||||
<!-- hey it works so who's to blame -->
|
||||
<b class= "blog-post-spacer">
|
||||
<a href="https://www.esquireme.com/style/52348-the-10-best-fits-of-recently-single-style-icon-bill-gates">
|
||||
<article class="blog-post">
|
||||
<h4>Did you know bill gates was hot!!!</h4>
|
||||
<p> this is a great meta ironic article about bill gates during the golden age of crt's and msdos</p>
|
||||
</article>
|
||||
</a>
|
||||
</b>
|
||||
<a href="/gems/kakoune">
|
||||
<article class="blog-post">
|
||||
<h4>Kakoune</h4>
|
||||
<p></p>
|
||||
</article>
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
<p class="intro">make sure you pet the cat before you head out</p>
|
||||
<footer class="footer">
|
||||
<p>© GPL2 2024 Tan Yesilkaya - Powered by
|
||||
<a href="https://alpinelinux.org" class="footer">Alpine Linux</a>,
|
||||
<a href="https://nixos.org" class="footer"> NixOS</a>
|
||||
and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
49
gems/kakoune/index.html
Normal file
49
gems/kakoune/index.html
Normal file
@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil</title>
|
||||
<link rel="stylesheet" href="https://tanyesil.com/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<script src="https://tanyesil.com/oneko.js"></script>
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="https://tanyesil.com/contact">Contact</a></li>
|
||||
<li><a href="https://tanyesil.com/supersecret">Super Secret!!</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="title">Kakoune is The Best!</h1>
|
||||
<p class="intro">kakoune is the best text editor that you
|
||||
shouldn't use unless<br>you know who you are.</p>
|
||||
<iframe src="https://invidious.jing.rocks/embed/5WLlLxU2EZE?" controls width="700" height="420px" ></iframe><br>
|
||||
<a href="https://wiki.archlinux.org/title/Arch_is_the_best">obligatory link to "arch is the best"</a>,
|
||||
<a href="https://www.youtube.com/watch?v=5WLlLxU2EZE">Watch on YouTube</a>,
|
||||
<a href="https://invidious.jing.rocks/watch?v=5WLlLxU2EZE">Watch on a Privacy respecting mirror</a>,
|
||||
<p class ="intro">this video inspired me to switch to kakoune
|
||||
as my text editor. it is what i used to write this website from scratch. just like how and why people use arch linux, kakoune has the allusive effect
|
||||
of making you feel superior because you happened to use, read or know about
|
||||
something that nobody (that you meet) has ever used, read, or known about.
|
||||
aside from that the kakoune experience is limiting unlike helix or nvim it
|
||||
comes with little in the box and you have to use copious amounts of plugins
|
||||
to get the same level of polish. Without that, it is still very good at what it is doing
|
||||
maybe too good...
|
||||
</p>
|
||||
<footer class="footer">
|
||||
<p>© 2024 Tan Yesilkaya - Powered by
|
||||
<a href="https://alpinelinux.org" class="footer">Alpine Linux</a>,
|
||||
<a href="https://nixos.org" class="footer"> NixOS</a>
|
||||
and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
79
index.html
Normal file
79
index.html
Normal file
@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil</title>
|
||||
<link id="favicon" rel="icon" href="/favicon.png" type="image/png">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<script src="/oneko.js"></script>
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/gems">Gems</a></li>
|
||||
<li><a href="https://tanyesil.com/supersecret">Super Secret!!</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="title">TanYesil's Collection of </h1>
|
||||
<div class="glitch">
|
||||
<span aria-hidden="true">Little Gems!</span>Little Gems!
|
||||
</div>
|
||||
<div class="links">
|
||||
<a href="https://batujk.com" class="retro-button">BatuJK</a>
|
||||
<a href="https://tanyesil.com/gems/kakoune" class="retro-button">Kakoune</a>
|
||||
<a href="https://ombi.tanyesil.com" class="retro-button">Plex Requests</a><br>
|
||||
<a href="https://github.com/tylxr59/oneko.js/tree/main" class="retro-button">oneko.js</a>
|
||||
<a href="http://tom7.org/index.html" class="retro-button">tom7.org</a>
|
||||
<a href="https://tanyesil.com/portfolio" class="retro-button">Portfolio</a><br>
|
||||
<a href="https://farside.link" class="retro-button">useful links</a>
|
||||
</div>
|
||||
<p class="intro">welcome to my website, this is a hub for things i host and <br>things i find worthy enough to share</p>
|
||||
<!-- Central Content Area -->
|
||||
<section class="content-area">
|
||||
<h2>Gallery</h2>
|
||||
<div class="gallery" id="gallery">
|
||||
<ul class="image-grid">
|
||||
<a href="https://twitter.com/AlpackyAlt"><img src="1.jpg" alt="Alpacky"></a>
|
||||
<a href="https://twitter.com/pseudo___me"><img src="2.jpg" alt="Pseudo___me"></a>
|
||||
<a href="https://twitter.com/kisumirei41"><img src="3.jpg" alt="kisumirei41"></a>
|
||||
</ul>
|
||||
<p> <br>some artists I have known and loved, please do check them out!!</p>
|
||||
</div>
|
||||
<div class="blog" id="blog">
|
||||
<h2>Latest Blog Posts</h2>
|
||||
<!-- hey it works so who's to blame -->
|
||||
<b class= "blog-post-spacer">
|
||||
<a href="gems/kakoune">
|
||||
<article class="blog-post">
|
||||
<h3>Kakoune is the Best</h3>
|
||||
<p>the vibe alone is worth a shot, or maybe i am just overthinking
|
||||
a simple text editor</p>
|
||||
</article>
|
||||
</a>
|
||||
</b>
|
||||
<a>
|
||||
<article class="blog-post">
|
||||
<h3>Summer 2024 reading list</h3>
|
||||
<p>Upcoming post...</p>
|
||||
</article>
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
<p class="intro">make sure you pet the cat before you head out</p>
|
||||
<footer class="footer">
|
||||
<p>© GPL2 2024 Tan Yesilkaya - Powered by
|
||||
<a href="https://alpinelinux.org" class="footer">Alpine Linux</a>,
|
||||
<a href="https://nixos.org" class="footer"> NixOS</a>
|
||||
and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
79
index.html.old
Normal file
79
index.html.old
Normal file
@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Site Under Maintenance</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #008080;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
color: #d0e040;
|
||||
text-align: center;
|
||||
padding: 150px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 50px;
|
||||
color: #ff4500;
|
||||
}
|
||||
article {
|
||||
border: 3px dashed #ff4500;
|
||||
display: block;
|
||||
text-align: left;
|
||||
width: 650px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #000080;
|
||||
}
|
||||
p {
|
||||
font-size: 20px;
|
||||
}
|
||||
a {
|
||||
color: #00ff00;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
color: #ff69b4;
|
||||
}
|
||||
.marquee {
|
||||
height: 25px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
background-color: #000080;
|
||||
color: #d0e040;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.marquee p {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
line-height: 25px;
|
||||
text-align: center;
|
||||
/* Starting position */
|
||||
transform:translateX(100%);
|
||||
/* Apply animation to this element */
|
||||
animation: marquee 15s linear infinite;
|
||||
}
|
||||
/* Make it move */
|
||||
@keyframes marquee {
|
||||
0% { transform: translateX(100%); }
|
||||
100% { transform: translateX(-100%); }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="marquee">
|
||||
<p>--- THIS WEBSITE IS RIDING THE INFORMATION SUPERHIGHWAY TO IMPROVEMENT ---</p>
|
||||
</div>
|
||||
<article>
|
||||
<h1>BRB... Upgrading Our Flux Capacitor!</h1>
|
||||
<div>
|
||||
<p>Greetings, Net Traveler! Our site is currently undergoing some radical improvements. We're tuning our modems and cranking up the bandwidth for a better surfing experience. Hang tight, we'll be back before you can say "World Wide Web"!</p>
|
||||
<p>— The Totally Tubular Tanyesil</p>
|
||||
</div>
|
||||
</article>
|
||||
<script src="./oneko.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
300
oneko-webring.js
Normal file
300
oneko-webring.js
Normal file
@ -0,0 +1,300 @@
|
||||
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat License (sometimes called MIT Licensed)
|
||||
// oneko.js: https://github.com/adryd325/oneko.js (webring variant)
|
||||
|
||||
(function oneko() {
|
||||
const isReducedMotion =
|
||||
window.matchMedia(`(prefers-reduced-motion: reduce)`) === true ||
|
||||
window.matchMedia(`(prefers-reduced-motion: reduce)`).matches === true;
|
||||
|
||||
if (isReducedMotion) return;
|
||||
|
||||
const nekoEl = document.createElement("div");
|
||||
|
||||
let nekoPosX = 32;
|
||||
let nekoPosY = 32;
|
||||
|
||||
let mousePosX = 0;
|
||||
let mousePosY = 0;
|
||||
|
||||
// please use data-neko="true" on your A elements that link to another site with oneko-webring.js instead of this
|
||||
// this is deprecated and will eventually be removed
|
||||
const nekoSites = [
|
||||
"localhost",
|
||||
];
|
||||
|
||||
try {
|
||||
const searchParams = location.search
|
||||
.replace("?", "")
|
||||
.split("&")
|
||||
.map((keyvaluepair) => keyvaluepair.split("="));
|
||||
// This is so much repeated code, I don't like it
|
||||
tmp = searchParams.find((a) => a[0] == "catx");
|
||||
if (tmp && tmp[1]) nekoPosX = parseInt(tmp[1]);
|
||||
tmp = searchParams.find((a) => a[0] == "caty");
|
||||
if (tmp && tmp[1]) nekoPosY = parseInt(tmp[1]);
|
||||
tmp = searchParams.find((a) => a[0] == "catdx");
|
||||
if (tmp && tmp[1]) mousePosX = parseInt(tmp[1]);
|
||||
tmp = searchParams.find((a) => a[0] == "catdy");
|
||||
if (tmp && tmp[1]) mousePosY = parseInt(tmp[1]);
|
||||
} catch (e) {
|
||||
console.error("oneko.js: failed to parse query params.");
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
function onClick(event) {
|
||||
let target;
|
||||
if (event.target.tagName === "A" && event.target.getAttribute("href")) {
|
||||
target = event.target;
|
||||
} else if (
|
||||
event.target.tagName == "IMG" &&
|
||||
event.target.parentElement.tagName === "A" &&
|
||||
event.target.parentElement.getAttribute("href")
|
||||
) {
|
||||
target = event.target.parentElement;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
let newLocation;
|
||||
try {
|
||||
newLocation = new URL(target.href);
|
||||
} catch (e) {
|
||||
return;
|
||||
}
|
||||
if (
|
||||
(nekoSites.includes(newLocation.host) && newLocation.pathname == "/") ||
|
||||
target.dataset.neko
|
||||
) {
|
||||
newLocation.searchParams.append("catx", Math.floor(nekoPosX));
|
||||
newLocation.searchParams.append("caty", Math.floor(nekoPosY));
|
||||
newLocation.searchParams.append("catdx", Math.floor(mousePosX));
|
||||
newLocation.searchParams.append("catdy", Math.floor(mousePosY));
|
||||
event.preventDefault();
|
||||
window.location.href = newLocation.toString();
|
||||
}
|
||||
}
|
||||
document.addEventListener("click", onClick);
|
||||
|
||||
let frameCount = 0;
|
||||
let idleTime = 0;
|
||||
let idleAnimation = null;
|
||||
let idleAnimationFrame = 0;
|
||||
|
||||
const nekoSpeed = 10;
|
||||
const spriteSets = {
|
||||
idle: [[-3, -3]],
|
||||
alert: [[-7, -3]],
|
||||
scratchSelf: [
|
||||
[-5, 0],
|
||||
[-6, 0],
|
||||
[-7, 0],
|
||||
],
|
||||
scratchWallN: [
|
||||
[0, 0],
|
||||
[0, -1],
|
||||
],
|
||||
scratchWallS: [
|
||||
[-7, -1],
|
||||
[-6, -2],
|
||||
],
|
||||
scratchWallE: [
|
||||
[-2, -2],
|
||||
[-2, -3],
|
||||
],
|
||||
scratchWallW: [
|
||||
[-4, 0],
|
||||
[-4, -1],
|
||||
],
|
||||
tired: [[-3, -2]],
|
||||
sleeping: [
|
||||
[-2, 0],
|
||||
[-2, -1],
|
||||
],
|
||||
N: [
|
||||
[-1, -2],
|
||||
[-1, -3],
|
||||
],
|
||||
NE: [
|
||||
[0, -2],
|
||||
[0, -3],
|
||||
],
|
||||
E: [
|
||||
[-3, 0],
|
||||
[-3, -1],
|
||||
],
|
||||
SE: [
|
||||
[-5, -1],
|
||||
[-5, -2],
|
||||
],
|
||||
S: [
|
||||
[-6, -3],
|
||||
[-7, -2],
|
||||
],
|
||||
SW: [
|
||||
[-5, -3],
|
||||
[-6, -1],
|
||||
],
|
||||
W: [
|
||||
[-4, -2],
|
||||
[-4, -3],
|
||||
],
|
||||
NW: [
|
||||
[-1, 0],
|
||||
[-1, -1],
|
||||
],
|
||||
};
|
||||
|
||||
function init() {
|
||||
nekoEl.id = "oneko";
|
||||
nekoEl.ariaHidden = true;
|
||||
nekoEl.style.width = "32px";
|
||||
nekoEl.style.height = "32px";
|
||||
nekoEl.style.position = "fixed";
|
||||
nekoEl.style.pointerEvents = "none";
|
||||
nekoEl.style.imageRendering = "pixelated";
|
||||
nekoEl.style.left = `${nekoPosX - 16}px`;
|
||||
nekoEl.style.top = `${nekoPosY - 16}px`;
|
||||
nekoEl.style.zIndex = Number.MAX_VALUE;
|
||||
|
||||
let nekoFile = "./oneko.gif"
|
||||
const curScript = document.currentScript
|
||||
if (curScript && curScript.dataset.cat) {
|
||||
nekoFile = curScript.dataset.cat
|
||||
}
|
||||
nekoEl.style.backgroundImage = `url(${nekoFile})`;
|
||||
|
||||
document.body.appendChild(nekoEl);
|
||||
|
||||
document.addEventListener("mousemove", function (event) {
|
||||
mousePosX = event.clientX;
|
||||
mousePosY = event.clientY;
|
||||
});
|
||||
|
||||
window.requestAnimationFrame(onAnimationFrame);
|
||||
}
|
||||
|
||||
let lastFrameTimestamp;
|
||||
|
||||
function onAnimationFrame(timestamp) {
|
||||
// Stops execution if the neko element is removed from DOM
|
||||
if (!nekoEl.isConnected) {
|
||||
return;
|
||||
}
|
||||
if (!lastFrameTimestamp) {
|
||||
lastFrameTimestamp = timestamp;
|
||||
}
|
||||
if (timestamp - lastFrameTimestamp > 100) {
|
||||
lastFrameTimestamp = timestamp
|
||||
frame()
|
||||
}
|
||||
|
||||
window.requestAnimationFrame(onAnimationFrame);
|
||||
}
|
||||
|
||||
function setSprite(name, frame) {
|
||||
const sprite = spriteSets[name][frame % spriteSets[name].length];
|
||||
nekoEl.style.backgroundPosition = `${sprite[0] * 32}px ${sprite[1] * 32}px`;
|
||||
}
|
||||
|
||||
function resetIdleAnimation() {
|
||||
idleAnimation = null;
|
||||
idleAnimationFrame = 0;
|
||||
}
|
||||
|
||||
function idle() {
|
||||
idleTime += 1;
|
||||
|
||||
// every ~ 20 seconds
|
||||
if (
|
||||
idleTime > 10 &&
|
||||
Math.floor(Math.random() * 200) == 0 &&
|
||||
idleAnimation == null
|
||||
) {
|
||||
let avalibleIdleAnimations = ["sleeping", "scratchSelf"];
|
||||
if (nekoPosX < 32) {
|
||||
avalibleIdleAnimations.push("scratchWallW");
|
||||
}
|
||||
if (nekoPosY < 32) {
|
||||
avalibleIdleAnimations.push("scratchWallN");
|
||||
}
|
||||
if (nekoPosX > window.innerWidth - 32) {
|
||||
avalibleIdleAnimations.push("scratchWallE");
|
||||
}
|
||||
if (nekoPosY > window.innerHeight - 32) {
|
||||
avalibleIdleAnimations.push("scratchWallS");
|
||||
}
|
||||
idleAnimation =
|
||||
avalibleIdleAnimations[
|
||||
Math.floor(Math.random() * avalibleIdleAnimations.length)
|
||||
];
|
||||
}
|
||||
|
||||
switch (idleAnimation) {
|
||||
case "sleeping":
|
||||
if (idleAnimationFrame < 8) {
|
||||
setSprite("tired", 0);
|
||||
break;
|
||||
}
|
||||
setSprite("sleeping", Math.floor(idleAnimationFrame / 4));
|
||||
if (idleAnimationFrame > 192) {
|
||||
resetIdleAnimation();
|
||||
}
|
||||
break;
|
||||
case "scratchWallN":
|
||||
case "scratchWallS":
|
||||
case "scratchWallE":
|
||||
case "scratchWallW":
|
||||
case "scratchSelf":
|
||||
setSprite(idleAnimation, idleAnimationFrame);
|
||||
if (idleAnimationFrame > 9) {
|
||||
resetIdleAnimation();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
setSprite("idle", 0);
|
||||
return;
|
||||
}
|
||||
idleAnimationFrame += 1;
|
||||
}
|
||||
|
||||
function frame() {
|
||||
frameCount += 1;
|
||||
const diffX = nekoPosX - mousePosX;
|
||||
const diffY = nekoPosY - mousePosY;
|
||||
const distance = Math.sqrt(diffX ** 2 + diffY ** 2);
|
||||
|
||||
if (distance < nekoSpeed || distance < 48) {
|
||||
idle();
|
||||
return;
|
||||
}
|
||||
|
||||
idleAnimation = null;
|
||||
idleAnimationFrame = 0;
|
||||
|
||||
if (idleTime > 1) {
|
||||
setSprite("alert", 0);
|
||||
// count down after being alerted before moving
|
||||
idleTime = Math.min(idleTime, 7);
|
||||
idleTime -= 1;
|
||||
return;
|
||||
}
|
||||
|
||||
let direction;
|
||||
direction = diffY / distance > 0.5 ? "N" : "";
|
||||
direction += diffY / distance < -0.5 ? "S" : "";
|
||||
direction += diffX / distance > 0.5 ? "W" : "";
|
||||
direction += diffX / distance < -0.5 ? "E" : "";
|
||||
setSprite(direction, frameCount);
|
||||
|
||||
nekoPosX -= (diffX / distance) * nekoSpeed;
|
||||
nekoPosY -= (diffY / distance) * nekoSpeed;
|
||||
|
||||
nekoPosX = Math.min(Math.max(16, nekoPosX), window.innerWidth - 16);
|
||||
nekoPosY = Math.min(Math.max(16, nekoPosY), window.innerHeight - 16);
|
||||
|
||||
nekoEl.style.left = `${nekoPosX - 16}px`;
|
||||
nekoEl.style.top = `${nekoPosY - 16}px`;
|
||||
}
|
||||
|
||||
init();
|
||||
})();
|
||||
// @license-end
|
38
portfolio/index.html
Normal file
38
portfolio/index.html
Normal file
@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil - about</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<!--[if IE]>
|
||||
<script src="../oneko-ie6.js"></script>
|
||||
<![endif]-->
|
||||
<!--[if !IE]><!-->
|
||||
<script src="/oneko.js"></script>
|
||||
<!--<![endif]-->
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="intro">this site is under construction<br>uwu<br>in the mean
|
||||
time here is a good song while you wait
|
||||
<li><a href="https://yabadum.bandcamp.com/album/you-were-our-star-single">You Were Our Star</a></li>
|
||||
</h1>
|
||||
<footer class="footer">
|
||||
<p>© 2024 Tan Yesilkaya - Powered by Alpine Linux, NixOS and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
198
style.css
Normal file
198
style.css
Normal file
@ -0,0 +1,198 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Courier New', monospace;
|
||||
color: #00FFAA;
|
||||
}
|
||||
|
||||
body {
|
||||
background: url('../background.gif') center center fixed;
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: auto;
|
||||
}
|
||||
.site-header { width: 100%; padding: 10px 0; background-color: rgba(0, 0, 0, 0.85);
|
||||
position: fixed; top: 0; z-index: 10; text-align: center; overflow-x: auto; }
|
||||
.nav ul { list-style: none; display: flex; justify-content: center; gap: 20px; }
|
||||
.nav a { text-decoration: none; color: #00FFAA; font-size: 1.2rem; text-shadow: 1px 1px 2px #000; padding: 10px; }
|
||||
.nav a:hover { color: #FF00FF; }
|
||||
|
||||
.container {
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
border: 2px solid #00FFAA;
|
||||
width: 85%;
|
||||
max-width: 800px;
|
||||
border-radius: 60px;
|
||||
background: linear-gradient(45deg, #000033, #500033);
|
||||
box-shadow: 0px 0px 20px 5px #00FFAA;
|
||||
margin-top: 60px;
|
||||
margin-bottom: 100px;.
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2.5rem;
|
||||
color: #00FFAA;
|
||||
text-shadow: 2px 2px 5px #FF00FF;
|
||||
height: auto;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.intro {
|
||||
margin: 10px 0;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.glitch {
|
||||
position: relative;
|
||||
font-size: 2rem;
|
||||
color: #00FFAA;
|
||||
background-color: #222;
|
||||
border: 1px solid #00FFAA;
|
||||
display: inline-block;
|
||||
padding: 10px;
|
||||
animation: glitch 1.5s infinite;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.glitch span {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 2px;
|
||||
color: #FF00FF;
|
||||
clip: rect(0, 900px, 0, 0);
|
||||
animation: glitch-top 2s infinite linear alternate-reverse;
|
||||
}
|
||||
.content-area {
|
||||
margin-top: 30px;
|
||||
}
|
||||
.gallery {
|
||||
margin-bottom: 30px;
|
||||
width: 100%
|
||||
}
|
||||
.content-area h2, .gallery h2, .blog h2 {
|
||||
color: #FF00FF;
|
||||
text-shadow: 2px 2px 5px #000;
|
||||
font-size: 2rem;
|
||||
}
|
||||
.image-grid {
|
||||
margin-top: 10px;
|
||||
width: auto;
|
||||
/* display: flex; */
|
||||
gap: 15px;
|
||||
justify-content: center;
|
||||
}
|
||||
.image-grid img {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 2px solid #00FFAA;
|
||||
object-fit: cover;
|
||||
box-shadow: 0 0 10px #FF00FF;
|
||||
transition: 0.3s ease-in;
|
||||
}
|
||||
|
||||
.image-grid img:hover {
|
||||
border: 2px solid #FFAAFF;
|
||||
box-shadow: 0 0 10px #00FFAA;
|
||||
}
|
||||
.image-grid a {
|
||||
|
||||
}
|
||||
.blog {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.blog-post {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.blog-post h4 {
|
||||
font-size: 1.3rem;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
color: #00FFAA;
|
||||
}
|
||||
.blog-post h3 {
|
||||
font-size: 1.8rem;
|
||||
color: #00FFAA;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.blog-post-spacer { padding: 3px; }
|
||||
.blog-post p, .gallery p {
|
||||
color: #FFF;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.blog a {
|
||||
text-decoration: none;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
background-color: rgba(34, 34, 34, 0.85);
|
||||
color: inherit; /* Inherit the text color from the parent */
|
||||
display: block; /* Make the anchor tag take up the full space */
|
||||
transition: 0.3s;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #00FFAA;
|
||||
}
|
||||
|
||||
.blog a:hover {
|
||||
background-color: rgba(255, 0, 170, 0.2); /* Change background color on hover */
|
||||
box-shadow: 0 0 10px #00FFAA; /* Add glow on hover */
|
||||
cursor: pointer; /* Change cursor to pointer */
|
||||
}
|
||||
@keyframes glitch {
|
||||
0% { transform: translate(0); }
|
||||
20% { transform: translate(-2px, 2px); }
|
||||
40% { transform: translate(-2px, -2px); }
|
||||
60% { transform: translate(2px, 2px); }
|
||||
80% { transform: translate(2px, -2px); }
|
||||
100% { transform: translate(0); }
|
||||
}
|
||||
|
||||
@keyframes glitch-top {
|
||||
0% { clip: rect(0, 999px, 0, 0); }
|
||||
10% { clip: rect(0, 999px, 15px, 0); }
|
||||
20% { clip: rect(0, 999px, 5px, 0); }
|
||||
30% { clip: rect(0, 999px, 10px, 0); }
|
||||
40% { clip: rect(0, 999px, 0, 0); }
|
||||
}
|
||||
|
||||
.retro-button {
|
||||
display: inline-block;
|
||||
margin: 15px;
|
||||
padding: 10px 20px;
|
||||
background-color: #00FFAA;
|
||||
border: 2px solid #FF00FF;
|
||||
color: #000;
|
||||
font-size: 1.2rem;
|
||||
text-decoration: none;
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
transition: background 0.3s, border 0.3s;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.retro-button:hover {
|
||||
background-color: #FF00FF;
|
||||
border-color: #00FFAA;
|
||||
color: #FFF;
|
||||
box-shadow: 0 0 10px #FF00FF;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 20px;
|
||||
font-size: 0.9rem;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
transition: 0.3s;
|
||||
color: #FF00FF;
|
||||
}
|
||||
.footer a:hover {
|
||||
color: #00FFAA;
|
||||
}
|
42
supersecret/index.html
Normal file
42
supersecret/index.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>tanyesil</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<script src="./oneko.js"></script>
|
||||
<header class="site-header">
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="https://tanyesil.com">Home</a></li>
|
||||
<li><a href="https://tanyesil.com/about">About</a></li>
|
||||
<li><a href="https://tanyesil.com/portfolio">Portfolio</a></li>
|
||||
<li><a href="https://tanyesil.com/blog">Blog</a></li>
|
||||
<li><a href="https://tanyesil.com/contact">Contact</a></li>
|
||||
<li><a href="https://tanyesil.com/supersecret">Super Secret!!</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<h1 class="title">You sure are nosy... try to hack these</h1>
|
||||
<div class="links">
|
||||
<a href="https://ai.tanyesil.com" class="retro-button">Open-webui + ollama</a>
|
||||
<a href="https://tat.tanyesil.com" class="retro-button">Tautulli for Plex</a>
|
||||
<a href="https://plex.tanyesil.com" class="retro-button">Plex</a>
|
||||
<a href="https://webmail.tanyesil.com" class="retro-button">Webmail Roundcube</a>
|
||||
<a href="https://wiki.tanyesil.com" class="retro-button">Personal Wiki</a>
|
||||
</div>
|
||||
<p class="intro">How the frick do you center a div????</p>
|
||||
<footer class="footer">
|
||||
<p>© 2024 Tan Yesilkaya - Powered by
|
||||
<a href="https://alpinelinux.org" class="footer">Alpine Linux</a>,
|
||||
<a href="https://nixos.org" class="footer"> NixOS</a>
|
||||
and love</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user