Compare commits
2 Commits
374d29018a
...
fcd62e071a
| Author | SHA1 | Date |
|---|---|---|
|
|
fcd62e071a | |
|
|
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">
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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