Hugo go go go

Made a hugo setup from scratch to generate a static blog and portfolio webpage.
The old stuff may still be found in static/old.
This commit is contained in:
2022-03-29 22:52:36 +00:00
parent 1e418219e9
commit d64efb5fb4
60 changed files with 658 additions and 33 deletions

34
static/chroma.css Normal file
View File

@@ -0,0 +1,34 @@
.chroma { background-color: #ffffff }
.chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
.chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
.chroma .hl { display: block; width: 100%;background-color: #ffffcc }
.chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
.chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
.chroma .k { color: #0000ff }
.chroma .kc { color: #0000ff }
.chroma .kd { color: #0000ff }
.chroma .kn { color: #0000ff }
.chroma .kp { color: #0000ff }
.chroma .kr { color: #0000ff }
.chroma .kt { color: #0000ff }
.chroma .s { color: #009c00 }
.chroma .sa { color: #009c00 }
.chroma .sb { color: #009c00 }
.chroma .sc { color: #009c00 }
.chroma .dl { color: #009c00 }
.chroma .sd { color: #009c00 }
.chroma .s2 { color: #009c00 }
.chroma .se { color: #009c00 }
.chroma .sh { color: #009c00 }
.chroma .si { color: #009c00 }
.chroma .sx { color: #009c00 }
.chroma .sr { color: #009c00 }
.chroma .s1 { color: #009c00 }
.chroma .ss { color: #009c00 }
.chroma .c { color: #ff0000; font-style: italic }
.chroma .ch { color: #ff0000; font-style: italic }
.chroma .cm { color: #ff0000; font-style: italic }
.chroma .c1 { color: #ff0000; font-style: italic }
.chroma .cs { color: #ff0000; font-style: italic }
.chroma .cp { color: #ff0000; font-style: italic }
.chroma .cpf { color: #ff0000; font-style: italic }

51
static/main.css Normal file
View File

@@ -0,0 +1,51 @@
body {
background-color: rgb(18, 20, 21);
color: lime;
}
#content main {
background-color: rgb(24, 26, 27);
margin: 3% 10%;
padding: 3%;
}
#navbar {
background-color: #222;
}
#navbar li a:hover {
background-color: #333;
}
#navbar .link-group li {
float: right;
}
#navbar li {
display: inline;
float: left;
}
#navbar ul {
list-style-type: none;
overflow: hidden;
padding: 0;
margin: 0;
}
#navbar a {
text-decoration: none;
text-align: center;
padding: 14px 16px;
display: block;
color: lime;
}
#lang-menu ul {
background-color: #222;
position: absolute;
min-width: 160px;
display: none;
z-index: 1;
}
#lang-menu a {
display: block;
}
#lang-menu:hover ul {
display: block;
}

3
static/old/README.md Normal file
View File

@@ -0,0 +1,3 @@
# My github.io
I dunno what to host here, prolly will add someting cool later some time.

16
static/old/index.html Normal file
View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title>My humble github.io page</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="main.css">
</head>
<body>
<div id="content">
<h3>Noting to see here</h3>
<p>You can check out work I did in IT1 (informasjons teknologi 1) a Norwegian optional vacational course <a href="it1/">here</a>.</p>
<p>Or even my very own webpage with some cool stuffs coming soon <a href="http://sivert.pw/">here</a>.</p>
</div>
</body>
</html>

2
static/old/it1/README.md Normal file
View File

@@ -0,0 +1,2 @@
# Ghost-Zephyr.github.io
Lolert, github.io i IT1 no.

View File

@@ -0,0 +1,51 @@
var db = firebase.firestore()
var list = function(user) {
db.collection("bibliotek")
.withConverter(bookConverter)
.get()
.then(function(query) {
$('#books').html('<br/>')
query.forEach(function(doc) {
book = doc.data()
book.toHtml($('#books'))
})
}).catch(function(error) {
$('#books').html('<h3>Kunne ikke hente bøker!</h3><br/><p>'+error+'</p>')
$('#books').css('color', 'red')
})
}
var add = function() {
db.collection("bibliotek")
.withConverter(bookConverter)
.add(new Book(
$('#title')[0].value,
$('#author')[0].value,
$('#publisher')[0].value,
$('#rating')[0].value,
$('#published')[0].value
)).then(function() {
$('#status').html('<p>La til bok '+$('#title')[0].value+'!</p>')
$('#status').css('color', 'green')
list()
}).catch(function() {
$('#status').html('<p>Problem med å legge til bok '+$('#title')[0].value+'!</p>')
$('#status').css('color', 'red')
})
}
var remove = function(id) {
db.collection("bibliotek").doc(id)
.delete().then(function() {
list()
}).catch(function(error) {
alert("Error removing document: ", error)
})
}
firebase.auth().onAuthStateChanged(function(user) {
list(user)
})

View File

@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<title>Firebase basert bibliotek</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="../main.css">
<link rel="stylesheet" href="../css/form.css">
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-firestore.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="../js/init-firebase.js"></script>
<script type="text/javascript" src="../js/converters/bok.js"></script>
</head>
<body>
<script type="text/javascript" id="navbar" src="../js/navbar.js"></script>
<div id="content">
<form action="#" method="POST" id="form" class="top">
<div class="form-group">
<div class="row">
<div class="col"><input type="name" class="form-control" id="title" placeholder="Tittel"></div>
<div class="col"><input type="name" class="form-control" id="author" placeholder="Forfatter"></div>
</div>
<input type="name" class="form-control" id="publisher" placeholder="Forlag">
<select type="number" class="form-control form-control-sm" id="rating" placeholder="Terningkast">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
</select>
<label>Utgitt</label>
<input type="date" class="form-control" id="published" placeholder="Utgitt">
</div>
<a type="submit" class="btn btn-primary" href="javascript: add()">Legg til</a>
</form>
<div id="status">
<p>&nbsp;</p>
</div>
<a type="submit" class="btn btn-primary" href="javascript: list(firebase.auth().currentUser)">Hent bøker</a>
<div id="books">
</div>
</div>
<script type="text/javascript" src="bibliotek.js"></script>
</body>
</html>

View File

@@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<title>Firebase basert bibliotek</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="../main.css">
<link rel="stylesheet" href="../css/form.css">
<script src="https://www.gstatic.com/firebasejs/7.11.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-auth.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="../js/init-firebase.js"></script>
<script type="text/javascript" src="../js/auth.js"></script>
</head>
<body>
<script type="text/javascript" id="navbar" src="../js/navbar.js"></script>
<div id="content">
<form action="#" method="POST" id="form" class="top">
<div class="form-group">
<input type="name" class="form-control" id="mail" placeholder="Epost">
<input type="password" class="form-control" id="password" placeholder="Passord">
</div>
<a type="submit" class="btn btn-primary" id="login" onclick="signin()">Logg inn</a>
</form>
<div id="status">
</div>
</div>
<script type="text/javascript" src="../js/auth.js"></script>
</body>
</html>

View File

@@ -0,0 +1,28 @@
.top {
margin-top: 9vh;
}
#status {
margin-top: 1vh;
}
#form > div > * {
margin-bottom: 1vh;
}
#form > div > label {
margin-bottom: 0.33vh;
}
.form-control {
background-color: #333;
border-color: #222;
color: lime;
}
.form-control:focus {
background-color: #555;
border-color: #333;
color: lime;
}

View File

@@ -0,0 +1,5 @@
.kommentar {
font-size: 1.1rem;
word-wrap: break-word;
}

View File

@@ -0,0 +1,81 @@
var db = firebase.firestore()
class Comment {
constructor(name, message, id=0) {
this.name = name,
this.message = message,
this.cfid = id
}
toString() {
return this.name+': '+this.message
}
toHtml(elm) {
elm.append('<p class="kommentar"></p>')
$($('.kommentar')[$('.kommentar').length-1]).text(this.toString())
firebase.auth().currentUser?$($('.kommentar')[$('.kommentar').length-1]).append(' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>'):undefined
}
}
commentConverter = {
toFirestore: function(comment) {
return {
navn: comment.name,
melding: comment.message
}
},
fromFirestore: function(snapshot, options) {
const data = snapshot.data(options)
return new Comment(
data.navn,
data.melding,
snapshot.id
)
}
}
var list = function() {
db.collection('gjestebok')
.withConverter(commentConverter)
.get()
.then(function(query) {
$('#kommentarer').html('<br/>')
query.forEach(function(doc) {
book = doc.data()
book.toHtml($('#kommentarer'))
})
}).catch(function(error) {
$('#status').html('<h3>Kunne ikke hente kommentarer!</h3><br/><p>'+error.message+'</p>')
$('#status').css('color', 'red')
})
}
var add = function() {
db.collection("gjestebok")
.withConverter(commentConverter)
.add(new Comment(
$('#navn')[0].value,
$('#melding')[0].value
)).then(function() {
$('#status').html('<p>La til melding med navn '+$('#navn')[0].value+'!</p>')
$('#status').css('color', 'green')
$('#kommentarer').html('')
list()
}).catch(function() {
$('#status').html('<p>Problem med å legge til melding med navn '+$('#navn')[0].value+'!</p>')
$('#status').css('color', 'red')
})
}
var remove = function(id) {
db.collection("gjestebok").doc(id)
.delete().then(function() {
$('#kommentarer').html('')
list()
}).catch(function(error) {
alert("Error removing document: ", error)
})
}
list()

View File

@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>Firebase basert gjestebok</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="../main.css">
<link rel="stylesheet" href="../css/form.css">
<link rel="stylesheet" href="../css/gjestebok.css">
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-firestore.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="../js/init-firebase.js"></script>
</head>
<body>
<script type="text/javascript" id="navbar" src="../js/navbar.js"></script>
<div id="content">
<form action="#" method="POST" id="form" class="top">
<div class="form-group">
<div class="row">
<div class="col col-sm-3"><input type="name" class="form-control" id="navn" placeholder="Navn"></div>
<div class="col col-sm-9"><input type="name" class="form-control" id="melding" placeholder="Melding"></div>
</div>
</div>
<a type="submit" class="btn btn-primary" href="javascript: add()">Legg til</a>
</form>
<div id="status">
<p>&nbsp;</p>
</div>
<!-- <a type="submit" class="btn btn-primary" href="javascript: list()">Hent kommentarer</a> -->
<div id="kommentarer">
</div>
<p id="status"></p>
</div>
<script type="text/javascript" src="gjestebok.js"></script>
</body>
</html>

32
static/old/it1/index.html Normal file
View File

@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<title>Simple firebase stuff</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="main.css">
<script src="https://www.gstatic.com/firebasejs/7.11.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.11.0/firebase-auth.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="js/init-firebase.js"></script>
<script type="text/javascript" src="js/auth.js"></script>
</head>
<body>
<!-- <iframe id="navbar" width="100%" height="60px" src="/it1/navbar/navbar.html" style="border: 0px"></iframe> -->
<script type="text/javascript" id="navbar" src="js/navbar.js"></script>
<div id="content">
<h3 style="margin: 3vh">Denne siden inneholder ting jeg har laget med firebase i IT1!</h3>
<br />
<ul id="oppgaver">
<li>
<h5><a href="gjestebok/">Gjestebok</a></h5>
</li>
<li>
<h5><a href="bibliotek/">Bibliotek</a></h5>
</li>
</ul>
<br />
<p>There is also <a href="http://ghostzephyr.pythonanywhere.com/it1/js/1">this here</a> some introductary javascript I wrote for the same class hosted by pythonanywhere.</p>
</div>
</body>
</html>

18
static/old/it1/js/auth.js Normal file
View File

@@ -0,0 +1,18 @@
var signin = function() {
firebase.auth()
.signInWithEmailAndPassword($('#mail')[0].value, $('#password')[0].value)
.then(function() {
document.location.href = "/it1/"
}).catch(function(error) {
$('#status').html('<h3>Kunne ikke logge inn som '+$('#mail')[0].value+'!</h3><p>'+error.code+': '+error.message+'</p>')
$('#status').css('color', 'red')
})
}
$(document).keydown(function(e) {
if (e.which == 13){
$("#login").click()
}
})

View File

@@ -0,0 +1,52 @@
class Book {
constructor(title, author, publisher, rating, published, id=0) {
this.cfid = id
this.title = title
this.author = author
this.publisher = publisher
this.rating = rating
this.published = published
}
toString() {
return this.title+' av '+this.author+', terningkast '+this.rating+', utgitt '+this.published.toString().slice(0,15)+', forlag; '+this.publisher
}
toHtml(elm) {
let span = function(selector, string, p, color='red') {
$($(selector)[$(selector).length-1]).append('<span style="color: '+color+'"></span>')
$($(selector+' > span')[$(selector+' > span').length-1]).text(string)
$($(selector)[$(selector).length-1]).append(p)
}
elm.append('<p class="book"></p>')
span('.book', this.title, ' av ')
span('.book', this.author, ', terningkast ')
span('.book', this.rating, ', utgitt ')
span('.book', this.published.toString().slice(0,15), ', forlag: ', 'green')
span('.book', this.publisher, firebase.auth().currentUser?' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>':'', 'yellow')
}
}
bookConverter = {
toFirestore: function(book) {
let millis = Date.parse(book.published)
return {
tittel: book.title,
forfatter: book.author,
forlag: book.publisher,
terningkast: book.rating,
utgitt: new firebase.firestore.Timestamp(millis/1000, 0)
}
},
fromFirestore: function(snapshot, options) {
const data = snapshot.data(options)
return new Book(
data.tittel,
data.forfatter,
data.forlag,
data.terningkast,
data.utgitt.toDate(),
snapshot.id
)
}
}

View File

@@ -0,0 +1,34 @@
class Comment {
constructor(name, message, id=0) {
this.name = name,
this.message = message,
this.cfid = id
}
toString() {
return this.name+': '+this.message
}
toHtml(elm) {
elm.append('<p class="kommentar"></p>')
$($('.kommentar')[$('.kommentar').length-1]).text(this.toString())
firebase.auth().currentUser?$($('.kommentar')[$('.kommentar').length-1]).append(' &nbsp; <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>'):undefined
}
}
commentConverter = {
toFirestore: function(comment) {
return {
navn: comment.name,
melding: comment.message
}
},
fromFirestore: function(snapshot, options) {
const data = snapshot.data(options)
return new Comment(
data.navn,
data.melding,
snapshot.id
)
}
}

View File

@@ -0,0 +1,10 @@
firebase.initializeApp({
apiKey: "AIzaSyAhU3F-De17VAsUgpRjj25f48QiXycorD4",
authDomain: "it1-heimdal-vgs.firebaseapp.com",
databaseURL: "https://it1-heimdal-vgs.firebaseio.com",
projectId: "it1-heimdal-vgs",
storageBucket: "it1-heimdal-vgs.appspot.com",
messagingSenderId: "206703382262",
appId: "1:206703382262:web:be48f32d11a15fa28f26d7"
})

View File

@@ -0,0 +1,43 @@
$('#navbar').parent().html(`
<nav class="navbar navbar-expand-sm bg-dark navbar-dark" id="navbar">
<a class="navbar-brand" href="/it1/">IT1 firebase stuff</a>
<!-- <ul class="navbar-nav">
<li class="nav-item right">
<a class="nav-link" href="/it1/about.html">About</a>
</li>
</ul> -->
<ul class="navbar-nav ml-auto">
<!-- <li class="nav-item right" id="register-btn">
<a class="nav-link" href="/register">Register</a>
</li> -->
<li class="nav-item right">
<a class="nav-link" id="login-btn" href="/it1/bruker/"></a>
</li>
</ul>
</nav>`)
var signout = function() {
firebase.auth()
.signOut()
.then(function() {
document.location.href = '/it1/'
}).catch(function(error) {
alert('could not log out: '+error.message)
})
}
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
$('#login-btn').attr('href', 'javascript: signout()')
$('#login-btn').html('Logout')
} else {
$('#login-btn').attr('href', '/it1/bruker/')
$('#login-btn').html('Login')
}
})
for (var i = 0; i < $('#navbar').children().length; i++) {
$('#navbar').children().css('color', 'springgreen')
}

19
static/old/it1/main.css Normal file
View File

@@ -0,0 +1,19 @@
body {
background-color: rgb(24, 26, 27);
color: rgb(218, 215, 210);
}
#content {
margin: 2vh;
margin-left: 13vw;
margin-right: 42.0vw;
}
li.right > ul {
align-content: right;
}
#oppgaver {
margin-left: 3vh;
}

0
static/old/it1/main.js Normal file
View File

View File

@@ -0,0 +1,4 @@
li.right > ul { /* TODO: FIX! */
align-content: right;
}

View File

@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<title>Navbar for iframe</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="../navbar/navbar.css">
<!-- <script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script> -->
</head>
<body>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<a class="navbar-brand" target="_top" href="/old/it1/index.html">IT1 firebase stuff</a> <!-- href="../index.html" -->
<!-- <ul class="navbar-nav">
<li class="nav-item right">
<a class="nav-link" target="_top" href="../about.html">About</a>
</li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item right">
<a class="nav-link">Simple login here later</a>
</li>
<li class="nav-item right" style="visibility: hidden">
<a class="nav-link" target="_top" href="/logout">Logout</a>
</li>
<li class="nav-item right" id="register-btn">
<a class="nav-link" target="_top" href="/register">Register</a>
</li>
<li class="nav-item right" id="login-btn">
<a class="nav-link" target="_top" href="/login">Login</a>
</li>
</ul> -->
</nav>
</body>
</html>

View File

@@ -0,0 +1,19 @@
table, th, td {
border: 2px solid gray;
}
th, td {
padding: 0.3rem;
}
table {
width: 100%;
}
#title {
margin-left: 3vw;
margin-bottom: 4rem;
margin-top: 4rem;
}
footer {
margin-top: 5rem;
}

View File

@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html>
<head>
<title>Problemer med smittestopp</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="../smittestopp/corona.css">
<link rel="stylesheet" href="../main.css">
</head>
<body>
<div id="content" style="margin-right: 13vw">
<h3 id="title">Positive og negative sider med apper som smittestopp</h3>
<div class="row">
<div class="col-sm-8">
<p>
Et problem for mange med slike apper er personvern. Selvfølgelig er data i de fleste tilfeller anonymisert ved at appen genererer en tilfeldig ID som brukes for å knytte data til en spesifikk person. Problemet hær er at dataen er bare anonym om dataen faktisk blir slettet i etterkant, men når er det totalt over? Det kommer til å ta lang tid før vi er nær utrydning av viruset og en kan alltids argumentere at slike systemer skal brukes til andre formål som andre sykdommer og kriminalitet.
</p>
<p>
Smittestopp vi nå har i Norge skal slette data etter 30 dager, men det er selvfølgelig om dataene ikke kommer på avveie. Denne appen har derimot andre problemer som konstant oppdatering av både bluetooth og GPS som fører til høy batteribruk. Det er også ett problem med at tjenesten sender SMS for varsling etter en har meldt seg inn. Som har ført til at mange har fått meldinger tilsynelatende fra FHI som fører brukere til nettsider med svindel.
</p>
<p>
Simula som utvikler smittestopp, vil heller ikke gi ut kildekoden av sikkerhets bekymringer. Jeg ser tanken, men det har vært mange tilfeller hvor lukket kildekode har ført til at det er mange store problemer med en app. I smittestopp sitt tilfelle er det lite som kan gå galt når det eneste appen skal gjøre er å samle data, men det kommer sikker mer på dette om ikke altfor lenge.
</p>
<p>
Det siste store problemet med smittestopp og liknende apper er testing. Overvåkning av hvem som er i kontakt med hverandre funker bare om de aller fleste som blir syke med SARS-CoV-2 (corona viruset) faktisk får det påvist.
</p>
</div>
<div class="col-sm-4">
<table>
<tr>
<th>Mot</th>
<th>For</th>
</tr>
<tr>
<td>Personværn</td>
<td>Forebygge smitte</td>
</tr>
<tr>
<td>Batteribruk</td>
</tr>
</table>
</div>
</div>
<footer>
<h3>Kilder</h3>
<ul>
<li><a target="_blank" href='https://www.simula.no/'>simula.com</a>, selskapet som utvikler appen.</li>
<li><a target="_blank" href='https://www.datatilsynet.no/aktuelt/aktuelle-nyheter-2020/ny-sporings-app-for-a-hindre-koronasmitte/'>Datatilsynet om smittestopp</a></li>
<li>The Hated One på YouTube - <a target="_blank" href='https://youtu.be/WRalTWAFBY4'>Apple and Google contact tracing is a dystopian nightmare</a>. (litt paranoid type, men kan mye om å være anonym digitalt)</li>
</ul>
</footer>
</div>
</body>
</html>

11
static/old/main.css Normal file
View File

@@ -0,0 +1,11 @@
body {
background-color: rgb(24, 26, 27);
color: lime;
}
div#content > * {
padding: 2vh;
margin: 4vh;
}