AI-assisted refactor
This commit is contained in:
@@ -1,74 +1,10 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- Open Graph metadata -->
|
||||
<meta property="og:title" content="Lindholm Software">
|
||||
<meta property="og:description" content="Ville Lindholm is a freelance software developer.">
|
||||
<meta property="og:image" content="https://lindholm.dev/images/portrait.jpeg">
|
||||
<meta property="og:url" content="https://lindholm.dev">
|
||||
<meta property="og:type" content="website">
|
||||
|
||||
<!-- fonts -->
|
||||
<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=Caprasimo&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.cdnfonts.com/css/junicode-2" rel="stylesheet">
|
||||
|
||||
<!-- icons -->
|
||||
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
|
||||
|
||||
<!-- pico helps with some basic CSS styling -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.css">
|
||||
|
||||
<!-- the rest is ours -->
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<title>{{ .Site.Title }}</title>
|
||||
|
||||
<!-- a naive email obfuscator to counteract scrapers -->
|
||||
<script>
|
||||
window.addEventListener('DOMContentLoaded', function () {
|
||||
document.querySelectorAll('span#lindholm-email').forEach(function (span) {
|
||||
span.innerHTML = "Rendering email...";
|
||||
span.setAttribute('aria-busy', 'true');
|
||||
});
|
||||
setTimeout(function () {
|
||||
let first = 'ville';
|
||||
let at = '@';
|
||||
let last = 'lindholm';
|
||||
document.querySelectorAll('span#lindholm-email').forEach(function (span) {
|
||||
span.innerHTML = `${first}${at}${last}.dev`;
|
||||
span.removeAttribute('aria-busy');
|
||||
});
|
||||
}, 2000);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header class="container noPrint">
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<h4><a href="/" class="contrast">{{ .Site.Title }}</a></h4>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="/cv">
|
||||
<h5>CV</h5>
|
||||
</a></li>
|
||||
<li><a href="/blog">
|
||||
<h5>Blog</h5>
|
||||
</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="container">
|
||||
{{ block "main" . }}{{ end }}
|
||||
</main>
|
||||
</body>
|
||||
|
||||
{{ partial "head.html" . }}
|
||||
<body>
|
||||
{{ partial "header.html" . }}
|
||||
<main class="container">
|
||||
{{ block "main" . }}{{ end }}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,17 @@
|
||||
<script>
|
||||
window.addEventListener('DOMContentLoaded', function () {
|
||||
document.querySelectorAll('span#lindholm-email').forEach(function (span) {
|
||||
span.innerHTML = "Rendering email...";
|
||||
span.setAttribute('aria-busy', 'true');
|
||||
});
|
||||
setTimeout(function () {
|
||||
let first = 'ville';
|
||||
let at = '@';
|
||||
let last = 'lindholm';
|
||||
document.querySelectorAll('span#lindholm-email').forEach(function (span) {
|
||||
span.innerHTML = `${first}${at}${last}.dev`;
|
||||
span.removeAttribute('aria-busy');
|
||||
});
|
||||
}, 2000);
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,29 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- Open Graph metadata -->
|
||||
<meta property="og:title" content="{{ .Site.Title }}">
|
||||
<meta property="og:description" content="Ville Lindholm is a freelance software developer.">
|
||||
<meta property="og:image" content="https://lindholm.dev/images/portrait.jpeg">
|
||||
<meta property="og:url" content="https://lindholm.dev">
|
||||
<meta property="og:type" content="website">
|
||||
|
||||
<!-- fonts -->
|
||||
<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=Caprasimo&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.cdnfonts.com/css/junicode-2" rel="stylesheet">
|
||||
|
||||
<!-- icons -->
|
||||
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
|
||||
|
||||
<!-- pico helps with some basic CSS styling -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.css">
|
||||
|
||||
<!-- the rest is ours -->
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<title>{{ .Site.Title }}</title>
|
||||
|
||||
{{ partial "email-obfuscator.html" . }}
|
||||
</head>
|
||||
@@ -0,0 +1,11 @@
|
||||
<header class="container noPrint">
|
||||
<nav>
|
||||
<ul>
|
||||
<li><h4><a href="/" class="contrast">{{ .Site.Title }}</a></h4></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="/cv"><h5>CV</h5></a></li>
|
||||
<li><a href="/blog"><h5>Blog</h5></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
Reference in New Issue
Block a user