
All checks were successful
Personal Website - Run Python HTTP Server / deploy (push) Successful in 1s
129 lines
4.4 KiB
HTML
129 lines
4.4 KiB
HTML
<!doctype html>
|
|
<html lang="en-US">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="stylesheet" href="css/style.css" />
|
|
<title>David Westgate</title>
|
|
</head>
|
|
|
|
<body>
|
|
<main>
|
|
<h1>David Westgate</h1>
|
|
<div class="feature">
|
|
<img src="images/me.jpg" class="portriat">
|
|
<div class="summary">
|
|
<div class="row">
|
|
<img src="/images/icons/programmer.svg" alt="Programmer Icon" class="icon" />
|
|
<p>Fullstack Software Developer</p>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/rust.svg" alt="Rust Icon" class="icon" />
|
|
<p>Rust Systems Programming </p>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/ts.svg" alt="TS Icon" class="icon" />
|
|
<p>TS/JS Framework Application Programming</p>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/education.svg" alt="Education Icon" class="icon" />
|
|
<p>M.S. Computer Science</p>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/location.svg" alt="Location Icon" class="icon" />
|
|
<p>Portland, OR</p>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/gitea.svg" alt="Gitea Icon" class="icon" />
|
|
<a href="https://git.dwestgate.us/david">Gitea</a>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/resume.svg" alt="Resumé Icon" class="icon" />
|
|
<a href="/static/resume.pdf">My Resumé</a>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/email.svg" alt="Email Icon" class="icon" />
|
|
<a href="mailto:david@dwestgate.us">Email Me</a>
|
|
</div>
|
|
<div class="row">
|
|
<img src="/images/icons/linkedin.svg" alt="Linkedin Icon" class="icon" />
|
|
<a href="https://www.linkedin.com/in/david-westgate">Connect With Me</a>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="content-container">
|
|
<div class="content-section">
|
|
<h2>Projects</h2>
|
|
<div id="project-container" class="content-inner">
|
|
|
|
<script>
|
|
const container = document.getElementById("project-container")
|
|
const json = fetch("/static/projects.json").then(r => r.json()).then(d => {
|
|
d.forEach(project => {
|
|
const div = document.createElement("div")
|
|
div.className = "project";
|
|
|
|
const title = document.createElement("h3")
|
|
title.textContent = project.name;
|
|
|
|
const description = document.createElement('p');
|
|
description.textContent = project.description;
|
|
|
|
|
|
const appIcon = document.createElement("img")
|
|
appIcon.src = "/images/icons/app.svg"
|
|
appIcon.className = "icon"
|
|
appIcon.alt = "Application Link";
|
|
const appLink = document.createElement('a')
|
|
appLink.href = project.link;
|
|
appLink.appendChild(appIcon)
|
|
|
|
const repoIcon = document.createElement("img");
|
|
repoIcon.src = "/images/icons/gitea.svg";
|
|
repoIcon.className = "icon"
|
|
repoIcon.alt = "Repository link";
|
|
const repoLink = document.createElement('a')
|
|
repoLink.href = project.repository;
|
|
repoLink.appendChild(repoIcon)
|
|
|
|
const icons = document.createElement("div");
|
|
icons.className = "icons"
|
|
if (project.link !== "") {
|
|
icons.appendChild(appLink);
|
|
|
|
}
|
|
if (project.repository !== "") {
|
|
icons.appendChild(repoLink);
|
|
|
|
}
|
|
|
|
div.appendChild(title)
|
|
div.appendChild(description);
|
|
div.appendChild(icons)
|
|
container.appendChild(div)
|
|
|
|
})
|
|
}).catch(e => { console.error(e) })
|
|
|
|
</script>
|
|
|
|
</div>
|
|
|
|
<div class="content-section">
|
|
<h2>Games</h2>
|
|
<div class="content-inner">
|
|
<h3>Space Engineers Server</h3>
|
|
<a href="https://space-engineers.com/server/224675/"><img
|
|
src="https://space-engineers.com/server/224675/banners/banner-1.png" border="0"></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
<footer>
|
|
<p>2025 David Westgate</p>
|
|
</footer>
|
|
</body>
|
|
|
|
</html> |