Initial commit

This commit is contained in:
Hugo Mårdbrink 2025-02-11 18:26:30 +01:00
commit 7cbcab0d48
25 changed files with 25504 additions and 0 deletions

21
views/articles.html Normal file
View file

@ -0,0 +1,21 @@
{{ block "articles" . }}
{{ if .Page.IsHtmx }}
{{ template "breadcrumb" . }}
{{ template "articles.content" . }}
{{ template "oob.head" .Page }}
{{ else }}
{{ template "base.start" .}}
{{ template "articles.content" . }}
{{ template "base.end" .}}
{{ end }}
{{ end }}
{{ block "articles.content" . }}
<div class="main-container">
<div class="title-container">
<span class="title">ARTICLES</span>
</div>
</div>
{{ end }}

64
views/common.html Normal file
View file

@ -0,0 +1,64 @@
{{ block "base.start" . }}
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{ .Page.Title }}</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta id="meta-description" name="description" content="{{ .Page.Description }}">
<script src="https://unpkg.com/htmx.org/dist/htmx.min.js">
</script>
<link rel="icon" type="image/png" sizes="16x16" href="resources/icon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="resources/icon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:ital,wght@0,100..900;1,100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/css/index.css">
</head>
<script>
const handleFooterLinkClick = (event) => {
event.preventDefault();
window.scrollTo({ top: 0, behavior: 'auto' });
}
</script>
<body>
<img src="resources/grain.png" class="grain-bg" alt="Grainy background"/>
{{ template "breadcrumb" . }}
<div id="page">
{{ end }}
{{ block "base.end" . }}
</div>
</body>
</html>
{{ end }}
{{ block "oob.head" . }}
<title htmx-oob-swap="true">{{ .Title }}</title>
<meta id="meta-description" name="description" content="{{ .Description }}" hx-swap-oob="true">
{{ end }}
{{ block "breadcrumb" . }}
<div id="breadcrumbs" hx-swap-oob="{{ .Page.IsHtmx }}" class="header-breadcrumbs">
{{ range .Page.Breadcrumbs }}
{{ if eq .Title "home" }} {{ else }}
<span class="header-breadcrumbs-link"> / </span>
<a onclick="handleFooterLinkClick(event)"
href="{{ .Route }}"
tabindex="0"
hx-boost="true"
hx-push-url="true"
hx-get="{{ .Route }}"
hx-target="#page"
class="header-breadcrumbs-link">
{{ if eq .Title "" }} {{ else }} {{ .Title }} {{ end }}
</a>
{{ end }}
{{ end }}
</div>
{{ end }}

34
views/home.html Normal file
View file

@ -0,0 +1,34 @@
{{ block "home" . }}
{{ if .Page.IsHtmx }}
{{ template "breadcrumb" . }}
{{ template "home.content" . }}
{{ template "oob.head" .Page }}
{{ else }}
{{ template "base.start" .}}
{{ template "home.content" . }}
{{ template "base.end" .}}
{{ end }}
{{ end }}
{{ block "home.content" . }}
<div class="main-container">
<div class="home-padding"></div>
<div class="title-container">
<span class="title">HUGO</span>
<span class="title">MÅRDBRINK</span>
</div>
<div class="menu-container">
<a href="/projects" class="menu-item">Projects</a>
<div class="menu-divider"></div>
<a href="https://github.com/hugomardbrink" target="_blank" rel="noopener norefferer" class="menu-item">Github</a>
<div class="menu-divider"></div>
<a href="https://www.linkedin.com/in/hugomardbrink/" target="_blank" rel="noopener norefferer" class="menu-item">LinkedIn</a>
<div class="menu-divider"></div>
<a href="/articles" class="menu-item">Articles</a>
<div class="menu-divider"></div>
<a href="resources/MARDBRINK_HUGO_CV.pdf" download class="menu-item">CV</a>
</div>
</div>
{{ end }}

96
views/projects.html Normal file
View file

@ -0,0 +1,96 @@
{{ block "projects" . }}
{{ if .Page.IsHtmx }}
{{ template "breadcrumb" . }}
{{ template "projects.content" . }}
{{ template "oob.head" .Page }}
{{ else }}
{{ template "base.start" .}}
{{ template "projects.content" . }}
{{ template "base.end" .}}
{{ end }}
{{ end }}
{{ block "projects.content" . }}
<div class="main-container">
<div class="project-page">
<div class="title-container">
<span class="title">PROJECTS</span>
</div>
{{ template "projects.skal" . }}
{{ template "projects.dct" . }}
{{ template "projects.modmark" . }}
<span class="title"> <br> </span>
</div>
</div>
{{ end }}
{{ block "projects.modmark" . }}
<div class="project-wrapper">
<div class="project-info">
<div class="modmark-mobile-icon-box">
<img src="/resources/modmark.svg" class="modmark-icon" alt="Modmark logo."></img>
</div>
<span class="project-info-title">ModMark</span>
<span class="project-info-desc">A modular markup language built in Rust.
The language utilises WebAssembly programs for easy package development.</span>
<a href="https://modmark.org" target="_blank" rel="noopener norefferer" class="project-info-link-left">Learn more</a>
</div>
<div class="modmark-wrapper">
<div class="modmark-icon-box">
<img src="/resources/modmark.svg" class="modmark-icon" alt="Modmark logo."></img>
</div>
<span class="modmark-text">[config]<br>import catalog:prettify</span>
<span class="modmark-text"># [prettify](Header)<br>[link](modmark.org)</span>
</div>
</div>
{{ end }}
{{ block "projects.skal" . }}
<div class="project-wrapper">
<div class="project-info">
<div class="dot-wrapper-mobile">
<span class="dot-mobile"></span>
<span class="dot-mobile"></span>
<span class="dot-mobile"></span>
</div>
<div class="skal-bar-mobile"></div>
<span class="project-info-title skal-mobile-title-offset">Skal / Zkal</span>
<span class="project-info-desc">Lightweight performant UNIX shell built from scratch in C++. Experimented with more explanatory syntax and custom operators. Also available in Zig as Zkal.</span>
<div class="skal-link-row">
<a href="https://github.com/hugomardbrink/skal" target="_blank" rel="noopener norefferer" class="project-info-link-left">Skal</a>
<a href="https://github.com/hugomardbrink/zkal" target="_blank" rel="noopener norefferer" class="project-info-link-left">Zkal</a>
</div>
</div>
<div class="skal-wrapper">
<div class="dot-wrapper">
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
<div class="skal-bar"></div>
<span class="skal-text">
skal> ls -a |> wc<br>
&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;68<br>
skal>
</span>
</div>
</div>
{{ end }}
{{ block "projects.dct" . }}
<div class="project-wrapper">
<div class="dct-wrapper">
<img src="/resources/satellite.svg" class="dct-satellite" alt="Satellite"></img>
<img src="/resources/earth.svg" class="dct-earth" alt="Earth"></img>
</div>
<div class="project-info">
<img src="/resources/mobile-satellite.svg" class="dct-mobile-satellite" alt="Satellite"></img>
<span class="project-info-title">Resource optimised DCT-II algorithm</span>
<span class="project-info-desc">Co-designed a satellite version of the DCT-II algorithm with RISC-V hardware and C software. Focusing on energy efficiency using vector instructions, cache coherence and parallelism.</span>
<a href="https://github.com/hugomardbrink/resource-optimised-DCT" target="_blank" rel="noopener norefferer" class="project-info-link-right">Learn more</a>
</div>
</div>
{{ end }}