Added all the files

This commit is contained in:
Valentin Wagner 2024-12-09 19:41:28 +01:00
parent b14b364b4a
commit 32127d9672
59 changed files with 933 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
.bundle
vendor

10
404.md Normal file
View File

@ -0,0 +1,10 @@
---
permalink: /404.html
layout: default
---
# 404
**Page not found :**
The requested page could not be found.

34
Gemfile Normal file
View File

@ -0,0 +1,34 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 4.3.3"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
# do not have a Java counterpart.
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]

181
Gemfile.lock Normal file
View File

@ -0,0 +1,181 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
bigdecimal (3.1.8)
colorator (1.1.0)
concurrent-ruby (1.3.4)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.0)
ffi (1.17.0-aarch64-linux-gnu)
ffi (1.17.0-aarch64-linux-musl)
ffi (1.17.0-arm-linux-gnu)
ffi (1.17.0-arm-linux-musl)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86-linux-gnu)
ffi (1.17.0-x86-linux-musl)
ffi (1.17.0-x86_64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.0-x86_64-linux-musl)
forwardable-extended (2.6.0)
google-protobuf (4.29.1)
bigdecimal
rake (>= 13)
google-protobuf (4.29.1-aarch64-linux)
bigdecimal
rake (>= 13)
google-protobuf (4.29.1-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.29.1-x86-linux)
bigdecimal
rake (>= 13)
google-protobuf (4.29.1-x86_64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.29.1-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
jekyll (4.3.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
minima (2.5.2)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (6.0.1)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.9)
rouge (4.5.1)
safe_yaml (1.0.5)
sass-embedded (1.82.0)
google-protobuf (~> 4.28)
rake (>= 13)
sass-embedded (1.82.0-aarch64-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-aarch64-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-aarch64-linux-musl)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-aarch64-mingw-ucrt)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-arm-linux-androideabi)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-arm-linux-gnueabihf)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-arm-linux-musleabihf)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-arm64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-riscv64-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-riscv64-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-riscv64-linux-musl)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86-cygwin)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86-linux-musl)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86-mingw-ucrt)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86_64-cygwin)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86_64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86_64-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86_64-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.82.0-x86_64-linux-musl)
google-protobuf (~> 4.28)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.6.0)
webrick (1.9.1)
PLATFORMS
aarch64-linux
aarch64-linux-android
aarch64-linux-gnu
aarch64-linux-musl
aarch64-mingw-ucrt
arm-linux-androideabi
arm-linux-gnu
arm-linux-gnueabihf
arm-linux-musl
arm-linux-musleabihf
arm64-darwin
riscv64-linux-android
riscv64-linux-gnu
riscv64-linux-musl
ruby
x86-cygwin
x86-linux
x86-linux-android
x86-linux-gnu
x86-linux-musl
x86-mingw-ucrt
x86_64-cygwin
x86_64-darwin
x86_64-linux-android
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES
http_parser.rb (~> 0.6.0)
jekyll (~> 4.3.3)
jekyll-feed (~> 0.12)
minima (~> 2.5)
tzinfo (>= 1, < 3)
tzinfo-data
wdm (~> 0.1.1)
BUNDLED WITH
2.5.22

54
_config.yml Normal file
View File

@ -0,0 +1,54 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: oneanonlyvalle
email: valentinwagner2003@gmail.com
description: >- # this means to ignore newlines until "baseurl:"
Write an awesome description for your new site here. You can edit this
line in _config.yml. It will appear in your document head meta (for
Google search results) and in your feed.xml site description.
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site, e.g. http://example.com
github_username: oneandonlyvalle
# Build settings
# theme: minima
plugins:
- jekyll-feed
# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# exclude:
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/

42
_layouts/default.html Normal file
View File

@ -0,0 +1,42 @@
<!DOCTYPE HTML>
<html lang="{{ page.lang | default: site.lang | default: en }}">
<head>
<meta charset="utf-8">
<title>{{ site.title }} {% if page.title %} - {{ page.title }} {% endif %}</title>
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<script src="/assets/js/oneko.js"></script>
<div class="wrapper">
<div class="header">
<h1>{{ site.title }}</h1>
</div>
</div>
<div class="wrapper">
<div class="navigation">
<a href="/">Home</a>
<a href="/blog/">Blog</a>
<a href="/about/">About</a>
</div>
</div>
<div class="wrapper">
<div class="content">
<section>
{{ content }}
</section>
</div>
</div>
<div class="wrapper">
<img src="/assets/images/pictochat.gif" class="button">
<img src="/assets/images/kill.png" class="button">
<img src="/assets/images/affection.gif" class="button">
</div>
<div class="wrapper">
<img src="/assets/images/shoegaze.gif" class="stamp">
<img src="/assets/images/nosignal.gif" class="stamp">
<img src="/assets/images/lainstamp.gif" class="stamp">
<img src="/assets/images/believe.gif" class="stamp">
<img src="/assets/images/views.png" class="stamp">
</div>
</body>
</html>

32
_layouts/home.html Normal file
View File

@ -0,0 +1,32 @@
---
layout: default
---
<div class="home">
{%- if page.title -%}
<h1 class="page-heading">{{ page.title }}</h1>
{% else %}
<h1 class="page-heading">Home</h1>
{%- endif -%}
{{ content }}
{%- if site.posts.size > 0 -%}
<h2 class="post-list-heading">{{ page.list_title | default: "Posts" }}</h2>
<ul class="post-list">
{%- for post in site.posts -%}
<li>
{%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
<span class="post-meta">{{ post.date | date: date_format }}</span>
<h3>
<a class="post-link" href="{{ post.url | relative_url }}">
{{ post.title | escape }}
</a>
</h3>
{%- if site.show_excerpts -%}
{{ post.excerpt }}
{%- endif -%}
</li>
{%- endfor -%}
</ul>
<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | relative_url }}">via RSS</a></p>
{%- endif -%}
</div>

11
_layouts/page.html Normal file
View File

@ -0,0 +1,11 @@
---
layout: default
---
<article class="post">
<header class="post-header">
<h1 class="post-title">{{ page.title | escape }}</h1>
</header>
<div class="post-content">
{{ content }}
</div>
</article>

23
_layouts/post.html Normal file
View File

@ -0,0 +1,23 @@
---
layout: default
---
<article class="post h-entry" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h1 class="post-title p-name" itemprop="name headline">{{ page.title | escape }}</h1>
<p class="post-meta">
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
{%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
{{ page.date | date: date_format }}
</time>
{%- if page.author -%}
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><span class="p-author h-card" itemprop="name">{{ page.author }}</span></span>
{%- endif -%}</p>
</header>
<div class="post-content e-content" itemprop="articleBody">
{{ content }}
</div>
{%- if site.disqus.shortname -%}
{%- include disqus_comments.html -%}
{%- endif -%}
<a class="u-url" href="{{ page.url | relative_url }}" hidden></a>
</article>

View File

@ -0,0 +1,29 @@
---
layout: post
title: "Welcome to Jekyll!"
date: 2024-08-25 19:37:42 +0200
categories: jekyll update
---
Youll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
Jekyll requires blog post files to be named according to the following format:
`YEAR-MONTH-DAY-title.MARKUP`
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
Jekyll also offers powerful support for code snippets:
{% highlight ruby %}
def print_hi(name)
puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
{% endhighlight %}
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekylls GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
[jekyll-docs]: https://jekyllrb.com/docs/home
[jekyll-gh]: https://github.com/jekyll/jekyll
[jekyll-talk]: https://talk.jekyllrb.com/

147
_sass/main.scss Normal file
View File

@ -0,0 +1,147 @@
:root {
color-scheme: light dark;
}
* {
margin: 0;
padding: 0;
font-family: Verdana, Tahoma, sans-serif;
}
body {
background-color: light-dark(#eee, #333);
background-image:
linear-gradient(90deg, transparent 134px, light-dark(#eac, #66c) 134px, light-dark(#eac, #66c) 137px, transparent 137px),
repeating-linear-gradient(0deg, light-dark(#ccc, #626262) 1px, light-dark(#ccc, #626262) 3px, transparent 1px, transparent 20px),
repeating-linear-gradient(90deg, light-dark(#ccc, #626262) 1px, light-dark(#ccc, #626262) 3px, transparent 1px, transparent 20px);
background-size: 100% 100%;
background-attachment: fixed;
color: light-dark(#111, #eee);
}
a {
text-decoration: none;
}
a:link {
color: light-dark(#f88, #77f);
}
a:visited {
color: light-dark(#f68, #97f);
}
a:hover {
color: light-dark(#95d, #fad);
}
.wrapper {
margin: 10px;
display: flex;
justify-content: center;
max-width: 100%;
flex-wrap: wrap;
}
.header {
display: flex;
margin-top: 20px;
}
.header h1 {
font-size: 40px;
}
.navigation {
display: flex;
margin: 20px 0px 20px 0px;
}
.navigation * {
margin: 0px 12px 0px 12px;
}
.navigation a {
font-size: 22px;
font-weight: bold;
background-color: light-dark(#eee, #333);
}
.navigation button {
background-color: light-dark(#ddd, #444);
border: 1px solid light-dark(#224, #ede);
border-radius: 10px;
font-size: 18px;
padding: 2px 4px 2px 4px;
}
.content {
background-color: light-dark(#fff8ff, #595959);
border: 2px solid light-dark(#224, #ede);
border-radius: 20px;
width: 60%;
padding: 20px;
}
.content h1 {
font-size: 35px;
font-weight: normal;
line-height: 40px;
letter-spacing: -1px;
}
.content p {
margin: 10px 0;
font-size: 16px;
line-height: 1.5;
}
.content ul, .content ol {
margin: 20px;
}
.content li {
font-size: 15px;
line-height: 20px;
}
.content ul li {
list-style-type: circle fill;
}
.content img {
margin: 10px auto 10px auto;
width: 50%;
display: block;
}
.content .inlineimg {
vertical-align: middle;
margin: 0 0;
display: inline;
width: auto;
}
.content blockquote {
padding-left: 1em;
font-style: italic;
border-left: solid 2px #555;
}
.content pre {
border: 2px solid #ddd;
border-radius: 5px;
background-color: #fff;
padding: 5px 5px;
margin: 10px 0;
}
.content code *, .content code {
font-family: monospace;
font-size: 14px;
color: #111;
}
.content p code {
border: 1px solid #ddd;
border-radius: 3px;
background-color: #fff;
padding: 2px;
}
.button, .stamp {
margin: 5px 10px 5px 10px;
display: flex;
flex-wrap: wrap;
}
@media only screen and (max-width:1000px) {
.content {
width: 95%;
}
.content img {
width: 80%;
}
}

17
about.md Normal file
View File

@ -0,0 +1,17 @@
---
layout: page
title: About
permalink: /about/
---
This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)
You can find the source code for Minima at GitHub:
[jekyll][jekyll-organization] /
[minima](https://github.com/jekyll/minima)
You can find the source code for Jekyll at GitHub:
[jekyll][jekyll-organization] /
[jekyll](https://github.com/jekyll/jekyll)
[jekyll-organization]: https://github.com/jekyll

3
assets/css/style.scss Normal file
View File

@ -0,0 +1,3 @@
---
---
@use "main";

BIN
assets/images/BMO.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
assets/images/KK.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/KirbyIdle.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
assets/images/affection.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

BIN
assets/images/believe.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
assets/images/believe2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
assets/images/bi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
assets/images/clippy.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
assets/images/computer.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
assets/images/computer2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

BIN
assets/images/email.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
assets/images/etr.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/ghost.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
assets/images/haruhi.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
assets/images/hypnotoad.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

100
assets/images/index.html Normal file
View File

@ -0,0 +1,100 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<meta lang="en">
<title>VΛYT - Gallery</title>
<link rel="stylesheet" href="/stylesheet.css">
<link rel="stylesheet" href="/highlighting.css">
<meta name="generator" content="Nanoc 4.12.3">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-QXDT926SV4"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-QXDT926SV4');
</script>
</head>
<body>
<div class="wrapper">
<div class="header">
<h1>VΛYT</h1>
</div>
</div>
<div class="wrapper">
<div class="navigation">
<a href="/">Home</a>
<a href="/about/">About</a>
<a href="/tech/">Tech</a>
<a href="/music/">Music</a>
<a href="/blog/">Blog</a>
</div>
</div>
<div class="wrapper">
<div class="content">
<h1>Gallery</h1>
<br>
<p>This is a list of all images on this website and also kind of an easteregg since there is no link to this page.</p>
<ul>
<li><a href="/images/soldering.jpg">/images/soldering.jpg</a></li>
<li><a href="/images/haruhi.gif">/images/haruhi.gif</a></li>
<li><a href="/images/neocities.png">/images/neocities.png</a></li>
<li><a href="/images/shoegaze.gif">/images/shoegaze.gif</a></li>
<li><a href="/images/pictochat.gif">/images/pictochat.gif</a></li>
<li><a href="/images/nosignal.gif">/images/nosignal.gif</a></li>
<li><a href="/images/KK.gif">/images/KK.gif</a></li>
<li><a href="/images/kirby.gif">/images/kirby.gif</a></li>
<li><a href="/images/computer2.gif">/images/computer2.gif</a></li>
<li><a href="/images/lainstamp.gif">/images/lainstamp.gif</a></li>
<li><a href="/images/computer.gif">/images/computer.gif</a></li>
<li><a href="/images/clippy.gif">/images/clippy.gif</a></li>
<li><a href="/images/hypnotoad.gif">/images/hypnotoad.gif</a></li>
<li><a href="/images/terminal.gif">/images/terminal.gif</a></li>
<li><a href="/images/email.gif">/images/email.gif</a></li>
<li><a href="/images/BMO.gif">/images/BMO.gif</a></li>
<li><a href="/images/KirbyIdle.gif">/images/KirbyIdle.gif</a></li>
<li><a href="/images/ghost.gif">/images/ghost.gif</a></li>
<li><a href="/images/underconstruction.gif">/images/underconstruction.gif</a></li>
<li><a href="/images/underconstructionbanner.gif">/images/underconstructionbanner.gif</a></li>
<li><a href="/images/believe.gif">/images/believe.gif</a></li>
<li><a href="/images/believe2.gif">/images/believe2.gif</a></li>
<li><a href="/images/robots.gif">/images/robots.gif</a></li>
<li><a href="/images/life.png">/images/life.png</a></li>
<li><a href="/images/cannibalism.png">/images/cannibalism.png</a></li>
<li><a href="/images/views.png">/images/views.png</a></li>
<li><a href="/images/affection.gif">/images/affection.gif</a></li>
<li><a href="/images/yukiguru.gif">/images/yukiguru.gif</a></li>
<li><a href="/images/Kuriyama_Mirai_flips_through_The_C_Programming_Language.gif">/images/Kuriyama_Mirai_flips_through_The_C_Programming_Language.gif</a></li>
<li><a href="/images/bi.png">/images/bi.png</a></li>
<li><a href="/images/vayt.png">/images/vayt.png</a></li>
<li><a href="/images/lambdafun.gif">/images/lambdafun.gif</a></li>
<li><a href="/images/vscode.gif">/images/vscode.gif</a></li>
<li><a href="/images/wiby.gif">/images/wiby.gif</a></li>
<li><a href="/images/hatsunemiku.gif">/images/hatsunemiku.gif</a></li>
<li><a href="/images/Yuki-Nagato-typing-and-coding-really-quickly-on-laptop.gif">/images/Yuki-Nagato-typing-and-coding-really-quickly-on-laptop.gif</a></li>
<li><a href="/images/yuki-nagato-typing.gif">/images/yuki-nagato-typing.gif</a></li>
<li><a href="/images/yuki-nagato-waving-a-mouse.gif">/images/yuki-nagato-waving-a-mouse.gif</a></li>
<li><a href="/images/nonft.gif">/images/nonft.gif</a></li>
<li><a href="/images/kill.png">/images/kill.png</a></li>
<li><a href="/images/etr.gif">/images/etr.gif</a></li>
<li><a href="/images/stamp-yrownwebsite.png">/images/stamp-yrownwebsite.png</a></li>
</ul>
</div>
</div>
<div class="wrapper">
<img src="/images/neocities.png" class="button">
<img src="/images/pictochat.gif" class="button">
<img src="/images/underconstruction.gif" class="button">
<img src="/images/affection.gif" class="button">
</div>
<div class="wrapper">
<img src="/images/shoegaze.gif" class="stamp">
<img src="/images/nosignal.gif" class="stamp">
<img src="/images/lainstamp.gif" class="stamp">
<img src="/images/believe.gif" class="stamp">
<img src="/images/views.png" class="stamp">
</div>
</body>
</html>

BIN
assets/images/kill.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

BIN
assets/images/kirby.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
assets/images/lainstamp.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

BIN
assets/images/lambdafun.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

BIN
assets/images/life.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 B

BIN
assets/images/neocities.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

BIN
assets/images/nonft.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
assets/images/nosignal.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
assets/images/oneko.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
assets/images/pictochat.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
assets/images/robots.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
assets/images/shoegaze.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
assets/images/soldering.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/terminal.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/images/vayt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
assets/images/views.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
assets/images/vscode.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
assets/images/wiby.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
assets/images/yukiguru.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

239
assets/js/oneko.js Normal file
View File

@ -0,0 +1,239 @@
// oneko.js: https://github.com/adryd325/oneko.js
(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;
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 = 2147483647;
let nekoFile = "/assets/images/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();
})();

5
index.md Normal file
View File

@ -0,0 +1,5 @@
---
layout: home
---
This website is very much under construction.