From a09f3fc0d0a5c4ccf81bdc8d0fd49f7767a1259f Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Tue, 5 May 2026 16:35:17 -0700 Subject: [PATCH] fix spelling + linking & add SEO optimizations --- about.html | 33 ++++++++++++++++++++++--------- entry.html | 21 +++++++++++++++++--- index.html | 25 +++++++++++++++++++----- projects.html | 27 ++++++++++++++++++++------ public/content/index.json | 4 ++-- public/scripts/content.js | 41 ++++++++++++++++++++++++++++++++++++++- 6 files changed, 125 insertions(+), 26 deletions(-) diff --git a/about.html b/about.html index 1c83065..bf32df3 100755 --- a/about.html +++ b/about.html @@ -2,11 +2,26 @@ - Braeden Sowinski - + About | Braeden Sowinski + + - + + + + + + + + + + + + + + + @@ -89,15 +104,15 @@

Skills

@@ -105,7 +120,7 @@
-

About me

+

About Me

As a software engineer, I am passionate about developing back-end systems and data-driven applications. Currently pursuing a Diploma in Computer Systems Technology at @@ -165,7 +180,7 @@ d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" /> - + - Braeden Sowinski - + Entry | Braeden Sowinski + + - + + + + + + + + + + + + + + + diff --git a/index.html b/index.html index 513dd6e..fd56927 100755 --- a/index.html +++ b/index.html @@ -2,11 +2,26 @@ - Braeden Sowinski - + Braeden Sowinski | Software Engineer + + - + + + + + + + + + + + + + + + @@ -92,7 +107,7 @@

@@ -86,7 +101,7 @@

Portfolio

Selected Projects

-
View Github + View GitHub

Loading projects...

@@ -121,7 +136,7 @@ d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" /> - + ${tags.map((tag) => `${escapeHtml(tag)}`).join("")}
`; }; + const setMetaContent = (selector, content) => { + const element = document.querySelector(selector); + if (!element || !content) { + return; + } + + element.setAttribute("content", content); + }; + + const setCanonicalHref = (href) => { + const canonical = document.querySelector("link[rel='canonical']"); + if (!canonical || !href) { + return; + } + + canonical.setAttribute("href", href); + }; + + const updateEntryMeta = (entry) => { + const baseUrl = "https://sowinski.dev"; + const title = `${entry.title} | Braeden Sowinski`; + const description = entry.summary || "Project entry or update from Braeden Sowinski."; + const url = `${baseUrl}/entry.html?type=${encodeURIComponent(entry.type)}&slug=${encodeURIComponent(entry.slug)}`; + const image = "https://avatars.githubusercontent.com/u/48144618?v=4"; + + document.title = title; + setCanonicalHref(url); + setMetaContent("meta[name='description']", description); + setMetaContent("meta[property='og:title']", title); + setMetaContent("meta[property='og:description']", description); + setMetaContent("meta[property='og:url']", url); + setMetaContent("meta[property='og:image']", image); + setMetaContent("meta[name='twitter:title']", title); + setMetaContent("meta[name='twitter:description']", description); + setMetaContent("meta[name='twitter:image']", image); + }; + const renderLinks = (entry, className) => { const links = []; links.push(`Read More`); if (entry.github) { - links.push(`Github`); + links.push(`GitHub`); } if (entry.demo) { @@ -221,6 +258,8 @@ throw new Error("Entry not found."); } + updateEntryMeta(entry); + const response = await fetch(entry.path); if (!response.ok) { throw new Error("Unable to load markdown entry.");