initial site commit

This commit is contained in:
Warwick 2023-10-16 00:07:03 +01:00
commit f797271fa5
20 changed files with 314 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
.hugo_build.lock
/public/
/resources/

6
archetypes/default.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
tags: draft
---

4
config.yml Normal file
View file

@ -0,0 +1,4 @@
baseURL: https://warwick-new.co.uk
languageCode: en-us
title: Warwick's Portfolio Site
theme: warwick_portfolio

9
content/greeter.md Normal file
View file

@ -0,0 +1,9 @@
---
title: "Greeter"
date: 2023-10-15T21:48:35+01:00
---
### Hi, I'm Warwick. And I:
- Make Games
- Make Websites
- Research Papers
- Teach Computing at Falmouth University

View file

@ -0,0 +1,7 @@
---
title: "Hello World!"
date: 2023-10-15 20:25:14.038 +0100
---
# Hello World!
Eyy *Finger Guns*

View file

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2023 YOUR_NAME_HERE
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -0,0 +1,2 @@
+++
+++

View file

@ -0,0 +1,21 @@
@keyframes slideInLeft {
0% {
transform: translateX(-100%);
opacity: 0;
}
100% {
transform: translateX(0);
opacity: 1;
}
}
#greeter {
margin: 5% 10% 5% 50%;
animation: 1s ease-out 0s 1 slideInLeft;
background: var(--paper);
padding: 40px;
}
#greeter li {
font-size: 133%;
}

View file

@ -0,0 +1,76 @@
/* Font stuff */
@import url('https://fonts.googleapis.com/css?family=Abel:700|Abel:400');
body {
font-family: 'Abel';
font-weight: 400;
}
h1, h2, h3, h4, h5 {
font-family: 'Abel';
font-weight: 700;
}
html {font-size: 100%;} /* 16px */
h1 {font-size: 4.210rem; /* 67.36px */}
h2 {font-size: 3.158rem; /* 50.56px */}
h3 {font-size: 2.369rem; /* 37.92px */}
h4 {font-size: 1.777rem; /* 28.48px */}
h5 {font-size: 1.333rem; /* 21.28px */}
small {font-size: 0.750rem; /* 12px */}
/* Colour Scheme stuff
:root[data-theme="light"] {
--text: #070808;
--background: #f7f8f8;
--primary: #aeb4bc;
--secondary: #dcd5d5;
--accent: #7d7468;
}
:root[data-theme="dark"] {
--text: #f7f8f8;
--background: #070808;
--primary: #434951;
--secondary: #2a2323;
--accent: #978e82;
}*/
:root {
/*color-scheme: light dark;*/
--text: #f7f8f8;
--background: #070808;
--primary: #434951;
--secondary: #2a2323;
--accent: #978e82;
--paper: #181b1b;
}
/* Custom CSS */
body {
color-scheme: dark;
background-color: var(--background);
accent-color: var(--accent);
caret-color: var(--text);
color: var(--text);
padding: 0;
margin: 0;
}
a:link, a:active{
color: var(--primary);
}
a:hover {
color: var(--secondary);
}
a:visited {
color: var(--accent);
}
.homepage-header {
background-color: var(--paper);
padding: 2rem;
}
.container {
width: 1000px;
padding: 10px;
background-color: var(--paper);
margin: 0 auto;
}

View file

@ -0,0 +1,86 @@
// create background element
let canvas = document.createElement("canvas");
document.body.appendChild(canvas);
canvas.style.cssText = `
background: var(--background);
position:fixed;
left:0;
top:0;
z-index:-99999;
`
// set it's size
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
let context = canvas.getContext('2d');
// this will be populated and used later
drawableObjectList = [];
// this is the object that'll look cool
class Point {
constructor() {
this.x = Math.random() * window.innerWidth;
this.y = Math.random() * window.innerHeight;
this.dx = (Math.random()) - 0.5;
this.dy = (Math.random()) - 0.5;
}
draw() {
context.fillStyle = "#2a2323"
context.strokeStyle = "#2a2323"
// find and draw links
drawableObjectList.forEach((point) => {
if (point.x > this.x - 100 && point.x < this.x + 100 &&
point.y > this.y - 100 && point.y < this.y + 100) {
context.beginPath()
context.moveTo(this.x, this.y)
context.lineTo(point.x, point.y)
context.stroke();
}
});
// draw point
context.beginPath();
context.arc(this.x, this.y, 3, 0, Math.PI * 2, false);
context.fill();
context.stroke();
// move point
this.x += this.dx;
this.y += this.dy;
// keep point in bounds
if (this.x > window.innerWidth || this.x < 0) {
this.dx *= -1
}
if (this.y > window.innerHeight || this.y < 0) {
this.dy *= -1
}
}
}
// populate element array
for (let i = 0; i < 100; i++) {
drawableObjectList.push(new Point());
}
function loop() {
// Loop and clear frame
requestAnimationFrame(loop);
context.clearRect(0, 0, window.innerWidth, window.innerHeight);
// Draw objects.
drawableObjectList.forEach((point) => {
point.draw();
});
// Handle page size change
if (canvas.width != window.innerWidth) {
canvas.width = window.innerWidth;
}
if (canvas.height != window.innerHeight) {
canvas.height = window.innerHeight;
}
}
loop();

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
{{- partial "header.html" . -}}
<div id="content">
{{- block "main" . }}{{- end }}
</div>
{{- partial "footer.html" . -}}
</body>
</html>

View file

@ -0,0 +1,13 @@
{{define "main"}}
<div class="container">
<section id="single-article">
<article id="article-content">
<h1> {{.Title}} </h1>
<time datetime="{{.Params.date.Format "2006-01-02T15:04:05"}}" class="index-article__date">{{.Params.date.Format "2 January 2006"}}</span>
<hr>
{{ .Content }}
</article>
</section>
</div>
{{end}}

View file

@ -0,0 +1,22 @@
{{ define "main" }}
{{ partial "greeter.html" .}}
<header class="homepage-header">
<div class="container">
<h1>{{.Title}}</h1>
</div>
</header>
<main>
<div class="container">
{{ range where .Site.RegularPages "Type" "posts" }}
<div class="index-article">
<a class="index-article__link" href="{{ .Permalink }}"><h4>{{ .Title }}</h4></a>
<p>{{.Summary}}</p>
<span class="index-article__date">{{.Params.date.Format "2 January 2006"}}</span>
<hr>
</div>
{{ end }}
</div>
</main>
{{ end }}

View file

@ -0,0 +1,7 @@
{{ with .Site.GetPage "/greeter" }}
{{$greeter_style := resources.Get "css/greeter.css"}}
<link rel="stylesheet" type="" href="{{$greeter_style.RelPermalink}}">
<div id="greeter">
{{ .Content }}
</div>
{{ end }}

View file

@ -0,0 +1,6 @@
<head>
{{$styles := resources.Get "css/main.css"}}
<link rel="stylesheet" type="" href="{{$styles.RelPermalink}}">
{{$background := resources.Get "js/background.js"}}
<script type="text/javascript" src="{{$background.RelPermalink}}" defer></script>
</head>

View file

@ -0,0 +1,21 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "Warwick_portfolio"
license = "MIT"
licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
description = ""
homepage = "http://example.com/"
tags = []
features = []
min_version = "0.41.0"
[author]
name = ""
homepage = ""
# If porting an existing theme
[original]
name = ""
homepage = ""
repo = ""