Compare commits
No commits in common. "f8b0a8b070ce6f66cc8df41561c6f12f623b7693" and "8c665ba2391e021b53705ccc8b01ea6c813b6f30" have entirely different histories.
f8b0a8b070
...
8c665ba239
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"version": "0.0.1",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "static-site",
|
|
||||||
"runtimeExecutable": "C:\\Users\\justi\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
|
|
||||||
"runtimeArgs": ["-m", "http.server", "8123"],
|
|
||||||
"port": 8123
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
2
_headers
2
_headers
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Content-Security-Policy: default-src 'self'; script-src 'self' https://static.cloudflareinsights.com; style-src 'self' https://fonts.googleapis.com 'unsafe-inline'; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; connect-src 'self' https://cloudflareinsights.com; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests
|
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' https://fonts.googleapis.com 'unsafe-inline'; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; connect-src 'self'; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests
|
||||||
X-Content-Type-Options: nosniff
|
X-Content-Type-Options: nosniff
|
||||||
X-Frame-Options: DENY
|
X-Frame-Options: DENY
|
||||||
Referrer-Policy: strict-origin-when-cross-origin
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
|
|
||||||
Binary file not shown.
24
index.html
24
index.html
|
|
@ -6,8 +6,9 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' https://ki5bhv.com data:; connect-src 'none'; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests" />
|
||||||
<meta http-equiv="Content-Security-Policy"
|
<meta http-equiv="Content-Security-Policy"
|
||||||
content="default-src 'self'; script-src 'self' https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data:; connect-src 'self' https://cloudflareinsights.com; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests" />
|
content="default-src 'self'; script-src 'self' https://static.cloudflareinsights.com; connect-src 'self' https://cloudflareinsights.com; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data:; object-src 'none'; base-uri 'none'; form-action 'self'">
|
||||||
<title>Justin Frasier | Infrastructure Administrator</title>
|
<title>Justin Frasier | Infrastructure Administrator</title>
|
||||||
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
|
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
|
||||||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%230f1218'/%3E%3Ctext x='3' y='11' font-family='IBM Plex Mono,Courier New,monospace' font-size='6' fill='%234a5568'%3E~$%3C/text%3E%3Ctext x='2' y='27' font-family='IBM Plex Mono,Courier New,monospace' font-size='19' font-weight='600' fill='%2322c55e'%3Ejf%3C/text%3E%3C/svg%3E" />
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%230f1218'/%3E%3Ctext x='3' y='11' font-family='IBM Plex Mono,Courier New,monospace' font-size='6' fill='%234a5568'%3E~$%3C/text%3E%3Ctext x='2' y='27' font-family='IBM Plex Mono,Courier New,monospace' font-size='19' font-weight='600' fill='%2322c55e'%3Ejf%3C/text%3E%3C/svg%3E" />
|
||||||
|
|
@ -26,7 +27,8 @@
|
||||||
|
|
||||||
<!-- ── Sidebar ── -->
|
<!-- ── Sidebar ── -->
|
||||||
<aside>
|
<aside>
|
||||||
<img class="profile-photo" src="./photo/justin1.jpg" alt="Justin Frasier">
|
<img class="profile-photo" src="./photo/justin1.jpg" alt="Justin Frasier"
|
||||||
|
onerror="this.style.display='none'">
|
||||||
<div class="profile-name">Justin Frasier</div>
|
<div class="profile-name">Justin Frasier</div>
|
||||||
<div class="profile-title">Infrastructure Administrator</div>
|
<div class="profile-title">Infrastructure Administrator</div>
|
||||||
<div class="profile-loc">📍 Bossier City, LA</div>
|
<div class="profile-loc">📍 Bossier City, LA</div>
|
||||||
|
|
@ -368,7 +370,23 @@
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="js/main.js" defer></script>
|
<script>
|
||||||
|
// Highlight active nav link on scroll
|
||||||
|
const sections = document.querySelectorAll('section[id]');
|
||||||
|
const links = document.querySelectorAll('nav a');
|
||||||
|
|
||||||
|
const observer = new IntersectionObserver(entries => {
|
||||||
|
entries.forEach(e => {
|
||||||
|
if (e.isIntersecting) {
|
||||||
|
links.forEach(l => l.classList.remove('active'));
|
||||||
|
const active = document.querySelector(`nav a[href="#${e.target.id}"]`);
|
||||||
|
if (active) active.classList.add('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, { threshold: 0.3 });
|
||||||
|
|
||||||
|
sections.forEach(s => observer.observe(s));
|
||||||
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
||||||
23
js/main.js
23
js/main.js
|
|
@ -1,23 +0,0 @@
|
||||||
// Highlight active nav link on scroll
|
|
||||||
const sections = document.querySelectorAll('section[id]');
|
|
||||||
const links = document.querySelectorAll('nav a');
|
|
||||||
|
|
||||||
const observer = new IntersectionObserver(entries => {
|
|
||||||
entries.forEach(e => {
|
|
||||||
if (e.isIntersecting) {
|
|
||||||
links.forEach(l => l.classList.remove('active'));
|
|
||||||
const active = document.querySelector(`nav a[href="#${e.target.id}"]`);
|
|
||||||
if (active) active.classList.add('active');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, { threshold: 0.3 });
|
|
||||||
|
|
||||||
sections.forEach(s => observer.observe(s));
|
|
||||||
|
|
||||||
// Hide the profile photo if it fails to load
|
|
||||||
const profilePhoto = document.querySelector('.profile-photo');
|
|
||||||
if (profilePhoto) {
|
|
||||||
profilePhoto.addEventListener('error', () => {
|
|
||||||
profilePhoto.style.display = 'none';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="referrer" content="strict-origin-when-cross-origin">
|
<meta name="referrer" content="strict-origin-when-cross-origin">
|
||||||
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; connect-src 'self' https://cloudflareinsights.com; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests">
|
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; connect-src 'none'; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'none'; upgrade-insecure-requests">
|
||||||
<title>K5BSS — Justin Frasier · Ham Radio Station</title>
|
<title>K5BSS — Justin Frasier · Ham Radio Station</title>
|
||||||
<link rel="sitemap" type="application/xml" href="/sitemap.xml">
|
<link rel="sitemap" type="application/xml" href="/sitemap.xml">
|
||||||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%230f1218'/%3E%3Ctext x='3' y='11' font-family='IBM Plex Mono,Courier New,monospace' font-size='6' fill='%234a5568'%3E~$%3C/text%3E%3Ctext x='2' y='27' font-family='IBM Plex Mono,Courier New,monospace' font-size='19' font-weight='600' fill='%2322c55e'%3Ejf%3C/text%3E%3C/svg%3E">
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%230f1218'/%3E%3Ctext x='3' y='11' font-family='IBM Plex Mono,Courier New,monospace' font-size='6' fill='%234a5568'%3E~$%3C/text%3E%3Ctext x='2' y='27' font-family='IBM Plex Mono,Courier New,monospace' font-size='19' font-weight='600' fill='%2322c55e'%3Ejf%3C/text%3E%3C/svg%3E">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue