Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
607bb683f0 |
@ -15,19 +15,11 @@
|
||||
<div class="section container">
|
||||
<h1>Contact</h1>
|
||||
|
||||
<picture>
|
||||
<source type="image/svg+xml" srcset="/assets/icons/email.svg">
|
||||
<img class="icon" src="/assets/icons/email.png" alt="">
|
||||
</picture>
|
||||
<span>Email: </span>
|
||||
<a href="mailto:?to=Reimar%20<%6D%61%69%6C%40%72%65%69%6D%2E%61%72>">mail@reim.ar</a>
|
||||
<br>
|
||||
|
||||
<picture>
|
||||
<source type="image/svg+xml" srcset="/assets/icons/discord.svg">
|
||||
<img class="icon" src="/assets/icons/discord.png" alt="">
|
||||
</picture>
|
||||
<span>Discord: reimarpb</span>
|
||||
<span>Discord: ReimarPB#5736</span>
|
||||
<br>
|
||||
|
||||
<picture>
|
||||
@ -35,7 +27,7 @@
|
||||
<img class="icon" src="/assets/icons/xmpp.png" alt="">
|
||||
</picture>
|
||||
<span>XMPP:</span>
|
||||
<a href="xmpp://%72%65%69%6D%61%72%40%72%65%69%6D%2E%61%72">reimar@reim.ar</a>
|
||||
<a href="xmpp://%72%65%69%6D%61%72%40%72%65%69%6D%2E%61%72">reimar@reim.ar</a>
|
||||
<br>
|
||||
|
||||
<picture>
|
||||
|
6
api/random_repo.php
Normal file
6
api/random_repo.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
$repos = json_decode(file_get_contents("https://git.reim.ar/api/v1/repos/search"))->data;
|
||||
$repo = $repos[array_rand($repos)];
|
||||
header("Location: $repo->html_url");
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 672 B |
@ -1,5 +0,0 @@
|
||||
<svg version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polygon points="0 15 100 15 50 45" fill="#BDBDBD" />
|
||||
<polygon points="0 22 50 52 100 22 100 85 0 85" fill="#BDBDBD" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 207 B |
@ -3,65 +3,66 @@
|
||||
window.addEventListener("load", makeLinksDynamic, false);
|
||||
|
||||
function makeLinksDynamic() {
|
||||
var navLinks = document.getElementsByClassName("nav-button");
|
||||
for (var i = 0; i < navLinks.length; i++) {
|
||||
navLinks[i].onclick = function(e) {
|
||||
var navLinks = document.getElementsByClassName("js-link");
|
||||
for (var i = 0; i < navLinks.length; i++) {
|
||||
navLinks[i].onclick = function(e) {
|
||||
|
||||
var event = e || window.event;
|
||||
var target = event.target || event.srcElement;
|
||||
var event = e || window.event;
|
||||
var target = event.target || event.srcElement;
|
||||
|
||||
if (target.nodeName !== "A" || event.ctrlKey || document.body.className.indexOf("loading") !== -1) return;
|
||||
if (target.nodeName !== "A" || event.ctrlKey || document.body.className.indexOf("loading") !== -1) return;
|
||||
|
||||
loadUrl(target.href, function() {
|
||||
if (window.history && history.pushState) {
|
||||
history.pushState(null, "", target.href);
|
||||
}
|
||||
});
|
||||
loadUrl(target.href, function() {
|
||||
if (window.history && history.pushState) {
|
||||
history.pushState(null, "", target.href);
|
||||
}
|
||||
});
|
||||
|
||||
event.preventDefault();
|
||||
event.returnValue = false;
|
||||
event.preventDefault();
|
||||
event.returnValue = false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
window.addEventListener("popstate", function() {
|
||||
loadUrl(location.href);
|
||||
loadUrl(location.href);
|
||||
}, false);
|
||||
|
||||
function loadUrl(href, callback) {
|
||||
|
||||
document.body.className += " loading";
|
||||
document.body.className += " loading";
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function() {
|
||||
if (this.readyState === 4) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function() {
|
||||
if (this.readyState === 4) {
|
||||
|
||||
if (this.status !== 200) location.href = href;
|
||||
if (this.status !== 200) location.href = href;
|
||||
|
||||
try {
|
||||
var tags = ["main", "nav"];
|
||||
for (var i = 0; i < tags.length; i++) {
|
||||
document.querySelector(tags[i]).innerHTML = this.responseText.match(new RegExp("<" + tags[i] + ">([\\s\\S]+)<\\/" + tags[i] + ">"))[1];
|
||||
}
|
||||
} catch(e) {
|
||||
location.href = href;
|
||||
}
|
||||
try {
|
||||
var tags = ["main", "nav", "aside", "footer"];
|
||||
for (var i = 0; i < tags.length; i++) {
|
||||
document.querySelector(tags[i]).innerHTML = this.responseText.match(new RegExp("<" + tags[i] + ">([\\s\\S]*)<\\/" + tags[i] + ">"))[1];
|
||||
}
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
location.href = href;
|
||||
}
|
||||
|
||||
// Dispatch load event
|
||||
var loadEvent = document.createEvent('Event');
|
||||
loadEvent.initEvent('load', false, false);
|
||||
window.dispatchEvent(loadEvent);
|
||||
// Dispatch load event
|
||||
var loadEvent = document.createEvent('Event');
|
||||
loadEvent.initEvent('load', false, false);
|
||||
window.dispatchEvent(loadEvent);
|
||||
|
||||
if (callback) callback();
|
||||
if (callback) callback();
|
||||
|
||||
document.body.className = document.body.className.replace(/\s*loading/g, "");
|
||||
document.body.className = document.body.className.replace(/\s*loading/g, "");
|
||||
|
||||
}
|
||||
}
|
||||
xhr.open("GET", href);
|
||||
xhr.send();
|
||||
}
|
||||
}
|
||||
xhr.open("GET", href);
|
||||
xhr.send();
|
||||
|
||||
}
|
||||
|
||||
|
@ -77,3 +77,11 @@ body {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#typeracer-badge {
|
||||
filter: grayscale() invert();
|
||||
}
|
||||
|
||||
#view-background {
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
|
@ -77,3 +77,7 @@ body {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#view-background {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ body {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
max-height: 100vh;
|
||||
font-family: Arial, sans-serif;
|
||||
/* Prevent user from selecting whitespace between containers */
|
||||
user-select: none;
|
||||
@ -242,6 +242,13 @@ h1, h2 {
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
|
||||
#view-background {
|
||||
display: inline-block;
|
||||
font-size: 0.6em;
|
||||
text-decoration: none;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
/* Fixes */
|
||||
|
||||
/* IE 9-11 has a bug which makes the ch css unit unusable, this will make it use the inputs size attribute instead */
|
||||
@ -265,3 +272,4 @@ object {
|
||||
img {
|
||||
border: none; /* Fix ico images on internet explorer */
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,15 @@
|
||||
<?php require "../inc/head.inc" ?>
|
||||
</head>
|
||||
<body>
|
||||
<div id="nav">
|
||||
<nav></nav>
|
||||
</div>
|
||||
<div id="main-and-sidebar">
|
||||
<main></main>
|
||||
<aside></aside>
|
||||
</div>
|
||||
|
||||
<?php $is_background = true ?>
|
||||
<?php require "../inc/background.inc" ?>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1 +1,16 @@
|
||||
<div id="grass"></div>
|
||||
|
||||
<br>
|
||||
<footer>
|
||||
<a
|
||||
id="view-background"
|
||||
href="<?= $is_background ? "/" : "/background" ?>"
|
||||
class="js-link"
|
||||
onmouseup="document.getElementById('nav').style.opacity = document.getElementById('main-and-sidebar').style.opacity = 1"
|
||||
onmouseenter="document.getElementById('nav').style.opacity = document.getElementById('main-and-sidebar').style.opacity = 0"
|
||||
onmouseleave="document.getElementById('nav').style.opacity = document.getElementById('main-and-sidebar').style.opacity = 1"
|
||||
>
|
||||
<?= $is_background ? "Back to homepage" : "Enjoying the background?" ?>
|
||||
</a>
|
||||
</footer>
|
||||
|
||||
|
@ -13,10 +13,10 @@
|
||||
$is_selected = $link[0] == $path || $link[0] == rtrim($path, '/');
|
||||
echo
|
||||
$is_selected ?
|
||||
"<span class='container nav-button nav-button-selected'>$link[1]</span>" :
|
||||
"<a href='$link[0]' class='container nav-button nav-button-not-selected'>$link[1]</a>";
|
||||
"<span class='container js-link nav-button nav-button-selected'>$link[1]</span>" :
|
||||
"<a href='$link[0]' class='container js-link nav-button nav-button-not-selected'>$link[1]</a>";
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
</nav>
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@
|
||||
</picture>
|
||||
</div>
|
||||
<span id="<?= $theme ?>-theme">
|
||||
<a class="theme-btn" data-theme="<?= $theme ?>" href="/api/set_theme/<?= $name ?>.php">
|
||||
<a class="theme-btn" data-theme="<?= $theme ?>" href="/api/set_theme/<?= $theme ?>.php">
|
||||
<?= ucwords($theme) ?>
|
||||
</a>
|
||||
<span class="theme-check">✓</span>
|
||||
|
155
index.php
155
index.php
@ -3,88 +3,115 @@
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<head>
|
||||
<?php require "inc/head.inc" ?>
|
||||
</head>
|
||||
<body>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php require "inc/nav.inc" ?>
|
||||
<?php require "inc/nav.inc" ?>
|
||||
|
||||
<div id="main-and-sidebar" dir="rtl" class="inline-block">
|
||||
<div id="main-and-sidebar" dir="rtl" class="inline-block">
|
||||
|
||||
<div id="main-wrapper" class="inline-block">
|
||||
<div id="main" class="inline-block">
|
||||
<main>
|
||||
<div id="main-wrapper" class="inline-block">
|
||||
<div id="main" class="inline-block">
|
||||
<main>
|
||||
|
||||
<div class="section container">
|
||||
<h1>Welcome</h1>
|
||||
<span>I'm <?= $age == 18 ? "an" : "a" ?> <?= $age ?> year old programmer from Denmark</span>
|
||||
<br>
|
||||
<div class="section container">
|
||||
<img id="typeracer-badge" style="float: right" src="https://data.typeracer.com/misc/badge?user=reimarpb" width="120" height="240">
|
||||
|
||||
<a href="https://www.linkedin.com/in/reimarpb/" target="_blank" title="LinkedIn">
|
||||
<img class="icon" src="/assets/icons/linkedin.png" alt="LinkedIn" width="16" height="16"><!--
|
||||
--></a>
|
||||
<a href="https://github.com/ReimarPB" target="_blank" title="GitHub">
|
||||
<picture class="dark">
|
||||
<source type="image/svg+xml" srcset="/assets/icons/dark-mode/github.svg">
|
||||
<img class="dark icon" src="/assets/icons/dark-mode/github.png" alt="GitHub">
|
||||
</picture>
|
||||
<picture class="light">
|
||||
<source type="image/svg+xml" srcset="/assets/icons/light-mode/github.svg">
|
||||
<img class="light icon" src="/assets/icons/light-mode/github.png" alt="GitHub">
|
||||
</picture>
|
||||
</a>
|
||||
</div>
|
||||
<h1>Welcome</h1>
|
||||
<span>I'm <?= $age == 18 ? "an" : "a" ?> <?= $age ?> year old programmer from Denmark.</span>
|
||||
<br>
|
||||
<span>I mainly code in JavaScript, PHP, C and Rust.</span>
|
||||
<br>
|
||||
<span>I can also type between 100-130 words per minute.</span>
|
||||
<br>
|
||||
<span>This website is being hosted on a Raspberry Pi at my home, along with some other services that can be found on this site.</span>
|
||||
<br><br>
|
||||
|
||||
<div class="section container">
|
||||
<h1>Projects</h1>
|
||||
<hr>
|
||||
<img src="/assets/icons/popup-timer.ico" class="pixelated icon" alt="">
|
||||
<b>Popup Timer</b>
|
||||
<br>
|
||||
<span>Have a timer or stopwatch in the corner of your screen, directly from within your browser</span>
|
||||
<br>
|
||||
<i><a href="https://popup-timer.reim.ar" target="_blank">Open in browser</a></i>
|
||||
<img class="icon" src="/assets/icons/linkedin.png" alt="LinkedIn" width="16" height="16">
|
||||
<a href="https://www.linkedin.com/in/reimarpb/" target="_blank" title="LinkedIn">
|
||||
LinkedIn
|
||||
</a>
|
||||
<br>
|
||||
|
||||
<hr>
|
||||
<picture class="dark">
|
||||
<source type="image/svg+xml" srcset="/assets/icons/dark-mode/github.svg">
|
||||
<img class="dark icon" src="/assets/icons/dark-mode/github.png" alt="GitHub">
|
||||
</picture>
|
||||
<picture class="light">
|
||||
<source type="image/svg+xml" srcset="/assets/icons/light-mode/github.svg">
|
||||
<img class="light icon" src="/assets/icons/light-mode/github.png" alt="GitHub">
|
||||
</picture>
|
||||
<a href="https://github.com/ReimarPB" target="_blank" title="GitHub">
|
||||
GitHub
|
||||
</a>
|
||||
|
||||
<img src="/assets/icons/gameoflife.ico" class="pixelated icon" alt="">
|
||||
<b>Game of life</b>
|
||||
<br>
|
||||
<span>Conway's Game of Life created with the win32 API</span>
|
||||
<br>
|
||||
<i>
|
||||
<a href="/assets/bin/gameoflife.exe">Download for Windows</a>
|
||||
•
|
||||
<a href="https://github.com/ReimarPB/GameOfLife-Win32" target="_blank">View on GitHub</a>
|
||||
</i>
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="section container">
|
||||
<h1>Projects</h1>
|
||||
<span>These are some of the projects I've made:</span>
|
||||
<hr>
|
||||
<img src="/assets/icons/popup-timer.ico" class="pixelated icon" alt="">
|
||||
<b>Popup Timer</b>
|
||||
<br>
|
||||
<span>Have a timer or stopwatch in the corner of your screen, directly from within your browser</span>
|
||||
<br>
|
||||
<i><a href="https://popup-timer.reim.ar" target="_blank">Open in browser</a></i>
|
||||
|
||||
<img src="/assets/icons/reimtris.ico" class="icon" alt="">
|
||||
<b>Reimtris</b>
|
||||
<br>
|
||||
<span>A Tetris clone written in Rust with epic background music</span>
|
||||
<br>
|
||||
<i>
|
||||
<a href="/assets/bin/Reimtris.exe">Download for Windows</a>
|
||||
•
|
||||
<a href="/assets/bin/Reimtris">Download for Linux</a>
|
||||
</i>
|
||||
<hr>
|
||||
|
||||
<img src="/assets/icons/gameoflife.ico" class="pixelated icon" alt="">
|
||||
<b>Game of life</b>
|
||||
<br>
|
||||
<span>Conway's Game of Life created with the win32 API</span>
|
||||
<br>
|
||||
<i>
|
||||
<a href="/assets/bin/gameoflife.exe">Download for Windows</a>
|
||||
•
|
||||
<a href="https://github.com/ReimarPB/GameOfLife-Win32" target="_blank">View on GitHub</a>
|
||||
</i>
|
||||
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
<img src="/assets/icons/reimtris.ico" class="icon" alt="">
|
||||
<b>Reimtris</b>
|
||||
<br>
|
||||
<span>A Tetris clone written in Rust with epic background music</span>
|
||||
<br>
|
||||
<i>
|
||||
<a href="/assets/bin/Reimtris.exe">Download for Windows</a>
|
||||
•
|
||||
<a href="/assets/bin/Reimtris">Download for Linux</a>
|
||||
</i>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
</div><!--
|
||||
<div class="section container">
|
||||
<h1>Services</h1>
|
||||
<span>These are the services currently being hosted on this server:</span>
|
||||
<hr>
|
||||
<img src="https://git.reim.ar/favicon.ico" class="icon" alt="">
|
||||
<b>Gitea</b>
|
||||
<br>
|
||||
<span>This is my Gitea instance and the remote host I use for some of my projects</span>
|
||||
<br>
|
||||
<i>
|
||||
<a href="https://git.reim.ar/explore/repos">View repositories</a>
|
||||
•
|
||||
<a href="/api/random_repo.php">Go to random repository</a>
|
||||
</i>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div><!--
|
||||
|
||||
--><?php require "inc/sidebar.inc" ?>
|
||||
--><?php require "inc/sidebar.inc" ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php require "inc/background.inc" ?>
|
||||
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user