Update navigation to bold written stories and use normal font for TBD
This commit is contained in:
parent
374d29018a
commit
b4b7dcb079
|
|
@ -42,21 +42,22 @@
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="/stories/" id="nav-stories">Stories</a>
|
<a href="/stories/" id="nav-stories">Stories</a>
|
||||||
<div class="dropdown-content">
|
<div class="dropdown-content">
|
||||||
<a href="/stories/airport-dns.html" id="nav-airportdns">Airport Dns <span class="nav-status not-written">*</span></a>
|
<a href="/stories/airport-dns.html" id="nav-airportdns" class="nav-story-tbd">Airport Dns</a>
|
||||||
<a href="/stories/app-development.html" id="nav-appdevelopment">App Development <span class="nav-status written">*</span></a>
|
<a href="/stories/app-development.html" id="nav-appdevelopment" class="nav-story-written">App Development</a>
|
||||||
<a href="/stories/athion-turnaround.html" id="nav-athionturnaround">Athion Turnaround <span class="nav-status written">*</span></a>
|
<a href="/stories/athion-turnaround.html" id="nav-athionturnaround" class="nav-story-written">Athion Turnaround</a>
|
||||||
<a href="/stories/fawe-plotsquared.html" id="nav-faweplotsquared">Fawe Plotsquared <span class="nav-status not-written">*</span></a>
|
<a href="/stories/fawe-plotsquared.html" id="nav-faweplotsquared" class="nav-story-tbd">Fawe Plotsquared</a>
|
||||||
<a href="/stories/healthcare-platform.html" id="nav-healthcareplatform">Healthcare Platform <span class="nav-status not-written">*</span></a>
|
<a href="/stories/healthcare-platform.html" id="nav-healthcareplatform" class="nav-story-tbd">Healthcare Platform</a>
|
||||||
<a href="/stories/home-infrastructure.html" id="nav-homeinfrastructure">Home Infrastructure <span class="nav-status written">*</span></a>
|
<a href="/stories/home-infrastructure.html" id="nav-homeinfrastructure" class="nav-story-written">Home Infrastructure</a>
|
||||||
<a href="/stories/motherboard-repair.html" id="nav-motherboardrepair">Motherboard Repair <span class="nav-status written">*</span></a>
|
<a href="/stories/motherboard-repair.html" id="nav-motherboardrepair" class="nav-story-written">Motherboard Repair</a>
|
||||||
<a href="/stories/nitric-leadership.html" id="nav-nitricleadership">Nitric Leadership <span class="nav-status not-written">*</span></a>
|
<a href="/stories/nitric-leadership.html" id="nav-nitricleadership" class="nav-story-tbd">Nitric Leadership</a>
|
||||||
<a href="/stories/nuclear-dns.html" id="nav-nucleardns">Nuclear DNS <span class="nav-status written">*</span></a>
|
<a href="/stories/nuclear-dns.html" id="nav-nucleardns" class="nav-story-written">Nuclear Dns</a>
|
||||||
<a href="/stories/open-source-success.html" id="nav-opensourcesuccess">Open Source Success <span class="nav-status written">*</span></a>
|
<a href="/stories/open-source-success.html" id="nav-opensourcesuccess" class="nav-story-written">Open Source Success</a>
|
||||||
<a href="/stories/showerloop.html" id="nav-showerloop">Showerloop <span class="nav-status written">*</span></a>
|
<a href="/stories/scansnap-webdav.html" id="nav-scansnapwebdav" class="nav-story-written">Scansnap Webdav</a>
|
||||||
<a href="/stories/viperwire.html" id="nav-viperwire">Viperwire <span class="nav-status written">*</span></a>
|
<a href="/stories/showerloop.html" id="nav-showerloop" class="nav-story-written">Showerloop</a>
|
||||||
<a href="/stories/web-design-java.html" id="nav-webdesignjava">Web Design Java <span class="nav-status written">*</span></a>
|
<a href="/stories/viperwire.html" id="nav-viperwire" class="nav-story-written">Viperwire</a>
|
||||||
<a href="/stories/wordpress-security.html" id="nav-wordpresssecurity">Wordpress Security <span class="nav-status not-written">*</span></a>
|
<a href="/stories/web-design-java.html" id="nav-webdesignjava" class="nav-story-written">Web Design Java</a>
|
||||||
<a href="/stories/youtube-game-dev.html" id="nav-youtubegamedev">Youtube Game Dev <span class="nav-status written">*</span></a>
|
<a href="/stories/wordpress-security.html" id="nav-wordpresssecurity" class="nav-story-tbd">Wordpress Security</a>
|
||||||
|
<a href="/stories/youtube-game-dev.html" id="nav-youtubegamedev" class="nav-story-written">Youtube Game Dev</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|
|
||||||
|
|
@ -2,145 +2,151 @@
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/index.html</loc>
|
<loc>https://colinknapp.com/index.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/one-pager-tools/csv-tool.html</loc>
|
<loc>https://colinknapp.com/one-pager-tools/csv-tool.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/resumes/portfolio.html</loc>
|
<loc>https://colinknapp.com/one-pager-tools/utm-tool.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/resumes/business-development.html</loc>
|
<loc>https://colinknapp.com/resumes/business-development.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/resumes/devsecops.html</loc>
|
<loc>https://colinknapp.com/resumes/devsecops.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
|
<changefreq>monthly</changefreq>
|
||||||
|
<priority>0.8</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://colinknapp.com/resumes/portfolio.html</loc>
|
||||||
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/resumes/team-leadership.html</loc>
|
<loc>https://colinknapp.com/resumes/team-leadership.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/resumes/tool-building.html</loc>
|
<loc>https://colinknapp.com/resumes/tool-building.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/airport-dns.html</loc>
|
<loc>https://colinknapp.com/stories/airport-dns.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/app-development.html</loc>
|
<loc>https://colinknapp.com/stories/app-development.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/athion-turnaround.html</loc>
|
<loc>https://colinknapp.com/stories/athion-turnaround.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/fawe-plotsquared.html</loc>
|
<loc>https://colinknapp.com/stories/fawe-plotsquared.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/healthcare-platform.html</loc>
|
<loc>https://colinknapp.com/stories/healthcare-platform.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/home-infrastructure.html</loc>
|
<loc>https://colinknapp.com/stories/home-infrastructure.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/index.html</loc>
|
<loc>https://colinknapp.com/stories/index.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/motherboard-repair.html</loc>
|
<loc>https://colinknapp.com/stories/motherboard-repair.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/nitric-leadership.html</loc>
|
<loc>https://colinknapp.com/stories/nitric-leadership.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/nuclear-dns.html</loc>
|
<loc>https://colinknapp.com/stories/nuclear-dns.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/open-source-success.html</loc>
|
<loc>https://colinknapp.com/stories/open-source-success.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/scansnap-webdav.html</loc>
|
<loc>https://colinknapp.com/stories/scansnap-webdav.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/showerloop.html</loc>
|
<loc>https://colinknapp.com/stories/showerloop.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/viperwire.html</loc>
|
<loc>https://colinknapp.com/stories/viperwire.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/web-design-java.html</loc>
|
<loc>https://colinknapp.com/stories/web-design-java.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/wordpress-security.html</loc>
|
<loc>https://colinknapp.com/stories/wordpress-security.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://colinknapp.com/stories/youtube-game-dev.html</loc>
|
<loc>https://colinknapp.com/stories/youtube-game-dev.html</loc>
|
||||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||||
<changefreq>monthly</changefreq>
|
<changefreq>monthly</changefreq>
|
||||||
<priority>0.8</priority>
|
<priority>0.8</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
|
||||||
|
|
@ -361,43 +361,14 @@ html[data-theme='dark'] .main-nav a.active {
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Navigation status indicators */
|
/* Story status styles */
|
||||||
.main-nav .dropdown-content a .nav-status {
|
.nav-story-written {
|
||||||
font-weight: bold;
|
font-weight: bold !important;
|
||||||
margin-left: 0.25em;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-nav .dropdown-content a .nav-status.written {
|
.nav-story-tbd {
|
||||||
color: #28a745 !important; /* Green for written stories */
|
font-weight: normal !important;
|
||||||
}
|
opacity: 0.85;
|
||||||
|
|
||||||
.main-nav .dropdown-content a .nav-status.not-written {
|
|
||||||
color: #dc3545 !important; /* Red for unwritten stories */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Bold story links that are written */
|
|
||||||
.main-nav .dropdown-content a:has(.nav-status.written) {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dark theme support for status indicators */
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.main-nav .dropdown-content a .nav-status.written {
|
|
||||||
color: #4ade80 !important; /* Lighter green for dark theme */
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-nav .dropdown-content a .nav-status.not-written {
|
|
||||||
color: #f87171 !important; /* Lighter red for dark theme */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
html[data-theme='dark'] .main-nav .dropdown-content a .nav-status.written {
|
|
||||||
color: #4ade80 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
html[data-theme='dark'] .main-nav .dropdown-content a .nav-status.not-written {
|
|
||||||
color: #f87171 !important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Responsive navigation */
|
/* Responsive navigation */
|
||||||
|
|
@ -442,4 +413,4 @@ html[data-theme='dark'] .main-nav .dropdown-content a .nav-status.not-written {
|
||||||
|
|
||||||
.read-more:hover::after, .read-more:focus::after {
|
.read-more:hover::after, .read-more:focus::after {
|
||||||
transform: translateX(3px);
|
transform: translateX(3px);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,10 +64,28 @@ async function updateNavFromSitemap() {
|
||||||
|
|
||||||
// Skip excluded files
|
// Skip excluded files
|
||||||
if (!STORIES_PATH_EXCLUDE.includes(filename)) {
|
if (!STORIES_PATH_EXCLUDE.includes(filename)) {
|
||||||
|
const filePath = path.join(__dirname, 'stories', filename);
|
||||||
|
let isWritten = true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (fs.existsSync(filePath)) {
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
// Check if the file contains the placeholder notice
|
||||||
|
if (content.includes('class="placeholder-notice"') || content.includes("class='placeholder-notice'")) {
|
||||||
|
isWritten = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.warn(`Warning: File not found: ${filePath}`);
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn(`Error reading file ${filePath}: ${err.message}`);
|
||||||
|
}
|
||||||
|
|
||||||
storyPages.push({
|
storyPages.push({
|
||||||
filename,
|
filename,
|
||||||
url: STORIES_PATH_PREFIX + filename,
|
url: STORIES_PATH_PREFIX + filename,
|
||||||
name: getFriendlyName(filename)
|
name: getFriendlyName(filename),
|
||||||
|
isWritten
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -104,7 +122,8 @@ async function updateNavFromSitemap() {
|
||||||
let newDropdownContent = '<div class="dropdown-content">\n';
|
let newDropdownContent = '<div class="dropdown-content">\n';
|
||||||
storyPages.forEach(page => {
|
storyPages.forEach(page => {
|
||||||
const navId = 'nav-' + page.filename.replace('.html', '').replace(/-/g, '');
|
const navId = 'nav-' + page.filename.replace('.html', '').replace(/-/g, '');
|
||||||
newDropdownContent += ` <a href="${page.url}" id="${navId}">${page.name}</a>\n`;
|
const className = page.isWritten ? 'nav-story-written' : 'nav-story-tbd';
|
||||||
|
newDropdownContent += ` <a href="${page.url}" id="${navId}" class="${className}">${page.name}</a>\n`;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Replace dropdown content in header.html
|
// Replace dropdown content in header.html
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue