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">
|
||||
<a href="/stories/" id="nav-stories">Stories</a>
|
||||
<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/app-development.html" id="nav-appdevelopment">App Development <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/athion-turnaround.html" id="nav-athionturnaround">Athion Turnaround <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/fawe-plotsquared.html" id="nav-faweplotsquared">Fawe Plotsquared <span class="nav-status not-written">*</span></a>
|
||||
<a href="/stories/healthcare-platform.html" id="nav-healthcareplatform">Healthcare Platform <span class="nav-status not-written">*</span></a>
|
||||
<a href="/stories/home-infrastructure.html" id="nav-homeinfrastructure">Home Infrastructure <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/motherboard-repair.html" id="nav-motherboardrepair">Motherboard Repair <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/nitric-leadership.html" id="nav-nitricleadership">Nitric Leadership <span class="nav-status not-written">*</span></a>
|
||||
<a href="/stories/nuclear-dns.html" id="nav-nucleardns">Nuclear DNS <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/open-source-success.html" id="nav-opensourcesuccess">Open Source Success <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/showerloop.html" id="nav-showerloop">Showerloop <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/viperwire.html" id="nav-viperwire">Viperwire <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/web-design-java.html" id="nav-webdesignjava">Web Design Java <span class="nav-status written">*</span></a>
|
||||
<a href="/stories/wordpress-security.html" id="nav-wordpresssecurity">Wordpress Security <span class="nav-status not-written">*</span></a>
|
||||
<a href="/stories/youtube-game-dev.html" id="nav-youtubegamedev">Youtube Game Dev <span class="nav-status 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" class="nav-story-written">App Development</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" class="nav-story-tbd">Fawe Plotsquared</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" class="nav-story-written">Home Infrastructure</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" class="nav-story-tbd">Nitric Leadership</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" class="nav-story-written">Open Source Success</a>
|
||||
<a href="/stories/scansnap-webdav.html" id="nav-scansnapwebdav" class="nav-story-written">Scansnap Webdav</a>
|
||||
<a href="/stories/showerloop.html" id="nav-showerloop" class="nav-story-written">Showerloop</a>
|
||||
<a href="/stories/viperwire.html" id="nav-viperwire" class="nav-story-written">Viperwire</a>
|
||||
<a href="/stories/web-design-java.html" id="nav-webdesignjava" class="nav-story-written">Web Design Java</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>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
|
|
|
|||
|
|
@ -2,145 +2,151 @@
|
|||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://colinknapp.com/resumes/portfolio.html</loc>
|
||||
<lastmod>2025-12-01T02:01:35+00:00</lastmod>
|
||||
<loc>https://colinknapp.com/one-pager-tools/utm-tool.html</loc>
|
||||
<lastmod>2025-12-02T18:18:20+00:00</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<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>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
|
|
|
|||
|
|
@ -361,43 +361,14 @@ html[data-theme='dark'] .main-nav a.active {
|
|||
color: white;
|
||||
}
|
||||
|
||||
/* Navigation status indicators */
|
||||
.main-nav .dropdown-content a .nav-status {
|
||||
font-weight: bold;
|
||||
margin-left: 0.25em;
|
||||
display: inline-block;
|
||||
/* Story status styles */
|
||||
.nav-story-written {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
.main-nav .dropdown-content a .nav-status.written {
|
||||
color: #28a745 !important; /* Green for written stories */
|
||||
}
|
||||
|
||||
.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;
|
||||
.nav-story-tbd {
|
||||
font-weight: normal !important;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* 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 {
|
||||
transform: translateX(3px);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,10 +64,28 @@ async function updateNavFromSitemap() {
|
|||
|
||||
// Skip excluded files
|
||||
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({
|
||||
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';
|
||||
storyPages.forEach(page => {
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue