:: rewrite ::

This commit is contained in:
hexlocation 2024-10-05 00:48:55 +02:00
parent e30a136cc2
commit 775cbae281
23 changed files with 724 additions and 326 deletions

View file

@ -0,0 +1,159 @@
<title>Guest Book</title>
<div id="page-container">
<div id="header-container">
<h1 id="title"><a href="/">iwakura.rip</a></h1>
<p>Leave a nice message for others to read :)</p>
<p>Dates are in UTC+2/CEST.</p>
<a class="link" id="msg-post" onclick="show_message_poster()" style="margin-bottom: 10px;">&nbsp;[ post message ]&nbsp;</a>
</div>
<div id="entries-container">
{% for message in messages %}
<div class="guest-entry">
<div class="entry-header">
<bu class="entry-title">{{ message.name }}</bu>
<bu class="entry-date">{{ message.date | date(format="%Y-%m-%d | %H:%M", timezone="Europe/Amsterdam")}}</bu>
</div>
<div class="entry-body">
<p>{{ message.body }}</p>
</div>
</div>
{% endfor %}
</div>
<div id="post-container">
<bu id="name-label">name</bu>
<input type="text" id="name-box" name="name-box"><br>
<div class="break"></div>
<bu id="msg-label">message</bu>
<textarea id="msg-box"></textarea>
<div class="break"></div>
<a class="link" onclick="send_msg()">&nbsp;[ send ]&nbsp;</a>
</div>
</div>
<script>
let show_post_message = false;
let show_message_poster = () => {
if (!show_post_message) {
show_post_message = !show_post_message
document.getElementById("entries-container").style.display = "none";
document.getElementById("post-container").style.display = "flex";
document.getElementById("msg-post").innerText = " [ back ] ";
return
}
document.getElementById("msg-post").innerText = " [ post message ] "
show_post_message = !show_post_message
document.getElementById("entries-container").style.display = "flex";
document.getElementById("post-container").style.display = "none";
}
let send_msg = async () => {
fetch("/post_message", {
"method": "POST",
"body": JSON.stringify({
body: document.getElementById("msg-box").value,
name: document.getElementById("name-box").value
}),
}).then(x => {
window.location.reload()
})
}
</script>
<style>
a {
text-decoration: none;
}
a:active {
text-decoration: none;
}
:root {
--term-color: #4AF626;
--title-gap: 0px;
--title-font: "Hack Nerd Font";
}
@font-face {
font-family: "Hack Nerd Font";
src: url(/assets/ttf/HNF-Reg.ttf);
}
#title {
background: url("/assets/img/lain.png");
background-position: -100px 1125px;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-size: 35px;
font-weight: bold;
text-align: center;
margin-bottom: calc(var(--title-gap) + 10px);
margin-top: var(--title-gap);
font-family: var(--title-font);
}
#post-container {
width: 50%;
padding: 5px;
border: 1px solid var(--term-color);
display: none;
margin: auto;
margin-top: 10px;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
flex: 0 0 auto;
}
input {
margin-left: auto;
float: right;
}
.break {
flex-basis: 100%;
height: 0;
}
.link:hover {
background-color: var(--term-color);
color: black;
}
label {
text-align: left;
clear: both;
float: left;
}
.link {
cursor: default;
align-items: center;
margin-left: auto;
margin-right: auto;
text-align: center;
transition: 0.3s;
}
#header-container {
text-align: center;
}
#entries-container {
align-items: center;
gap: 10px;
margin-top: 10px;
display: flex;
flex-direction: column;
}
#page-container {
font-family: "Hack Nerd Font";
color: var(--term-color);
}
.guest-entry {
width: 50%;
padding: 5px;
border: 1px var(--term-color) solid;
}
.entry-header {
display: flex;
justify-content: space-between;
}
.entry-body {
font-size: 14px;
overflow: auto;
word-wrap: break-word;
}
bu {
font-weight: bold;
text-decoration: underline;
}
body {
background-color: black;
}
</style>

View file

@ -0,0 +1,159 @@
<div id="main-content">
<div id="middle-box">
<p style="text-align: center;margin-bottom: 5px;font-size: 20px;">[ iwakura.rip ]</p>
<img id="main-img" style="display:block;margin-left:auto;margin-right:auto;" src="https://media1.tenor.com/m/OlHMWq46CtAAAAAC/serial-experiments-lain-lain.gif" width="332" height="235">
<div class="link-container" id="service-container">
<a id="anim-1" href="https://mail.iwakura.rip">&nbsp;[ mail ]&nbsp;</a>
<a id="anim-2" href="https://git.iwakura.rip">&nbsp;[ git ]&nbsp;</a>
<a id="anim-3" href="https://media.iwakura.rip">&nbsp;[ media ]&nbsp;</a>
<a id="anim-4" href="https://blog.iwakura.rip">&nbsp;[ blog ]&nbsp;</a>
</div>
<div class="link-container" id="main-container">
<a onclick="showContainer(aboutContainer)">&nbsp;[ about ]&nbsp;</a>
<a onclick="showContainer(serviceContainer)">&nbsp;[ services ]&nbsp;</a>
<a href="/guestbook">&nbsp;[ guestbook ]&nbsp;</a>
<a href="/pgp">&nbsp;[ pgp ]&nbsp;</a>
</div>
<div class="link-container" id="about-container">
<a onclick="showSect(aboutSect)">&nbsp;[ i ]&nbsp;</a>
<a onclick="showSect(explaSect)">&nbsp;[ ? ]&nbsp;</a>
<a onclick="showSect(disclSect)">&nbsp;[ ! ]&nbsp;</a>
</div>
</div>
<br>
<div id="about-box" class="fadeIn">
<div id="about-sect">
<bu>About</bu>
<p>iwakura.rip is a collection of servers hosting mostly-private services for hexlocation & friends.</p>
<p>The iwakura.rip website is also connected to dn42 (<a href="https://iwakura.dn42">iwakura.dn42</a>). We are planning to connect our services to dn42 too.</p>
</div>
<div id="expla-sect">
<bu>Explanation</bu>
<p>Most of the gifs/art/names/ui design is inspired by/based on <a href="https://en.wikipedia.org/wiki/Serial_Experiments_Lain"><b>Serial Experiments Lain</b></a>, an anime series about Lain <u>Iwakura</u></p>
</div>
<div id="discl-sect">
<bu>Disclaimer</bu>
<p>Serial Experiments Lain is the property of Triangle Studios. iwakura.rip is not affiliated with Triangle Studios.</p>
</div>
</div>
</div>
<style>
@keyframes fadeIn {
to {
opacity: 1;
}
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
bu {
font-weight: bold;
text-decoration: underline;
}
#expla-sect, #discl-sect, #about-sect {
opacity:0;
display:none;
}
.fadeIn {
animation: fadeIn 0.5s forwards;
}
.fadeOut {
animation: fadeOut 0.5s forwards;
}
:root {
--term-color: #4AF626;
}
@font-face {
font-family: "Hack Nerd Font";
src: url(/assets/ttf/HNF-Reg.ttf);
}
a:hover {
color: black !important;
background-color: var(--term-color);
}
body {
background-color: black;
}
#main-container {
animation-delay: 0.2s;
}
a {
text-decoration: none;
transition: 0.3s;
cursor: default;
}
.link-container {
display: flex;
margin-top: 5px;
align-items: center;
justify-content: center;
transition: 0.5s;
opacity:0;
}
#service-container {
display: none;
}
#main-content, a {
font-family: "Hack Nerd Font";
color: var(--term-color);
}
#main-content {
/*font-family: "Hack Nerd Font";
color: var(--term-color);*/
position:absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
<script>
let getId = (i) => document.getElementById(i);
let serviceContainer = getId('service-container');
let mainContainer = getId('main-container');
let aboutContainer = getId('about-container');
let aboutSect = getId('about-sect');
let disclSect = getId('discl-sect');
let explaSect = getId('expla-sect');
let sections = [aboutSect, disclSect, explaSect];
mainContainer.classList.add("fadeIn");
let containers = [serviceContainer, mainContainer, aboutContainer];
function showContainer(container){
for (let _container of containers) {
//_container.style.display = "none";
if (_container == container) continue
_container.classList.remove("fadeIn");
_container.style.display = "none"
}
container.classList.add("fadeIn");
container.style.display = "flex";
}
let showSect = (s) => {
for (let _s of sections) {
console.log(_s)
if (_s == s) continue;
_s.style.display = "none";
}
s.style.display = "block";
s.classList.add("fadeIn");
}
let showAbout = () => document.getElementById('about-box').style.display = "block";
document.getElementById("main-img").onclick = () => {
showContainer(mainContainer)
for (let _s of sections) {
_s.style.display="none";
_s.classList.remove("fadeIn");
}
}
</script>

View file

@ -0,0 +1,35 @@
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="main-content">
<p id="title">Make sure to verify our PGP keys when communicating with us.</p>
<a href="/assets/pgp/hex.txt" style="text-decoration: none">hex</a>
<a href="/assets/pgp/andre.txt" style="text-decoration: none">andre</a>
<p>Please encrypt any messages containing important details towards using our PGP keys. Thank you.</p>
</div>
</body>
<style>
:root {
--term-color: #4AF626;
}
#title {
font-weight: bold;
}
#main-content {
border: 1px var(--term-color) solid;
max-width: 50vw;
margin: auto;
}
@font-face {
font-family: "Hack Nerd Font";
src: url(/assets/ttf/HNF-Reg.ttf);
}
body {
text-align: center;
color: var(--term-color);
font-family: "Hack Nerd Font";
background-color: black;
}
</style>
<!-- I'm on your side... -->