Compare commits
7 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
87328de610 | |
|
|
32636fa0cb | |
|
|
cfaa727b88 | |
|
|
6d2c7dc5f1 | |
|
|
b60d3a89ca | |
|
|
51ac30cbc4 | |
|
|
f27f505281 |
|
|
@ -118,8 +118,8 @@ async function generatePdf(browser, htmlFile) {
|
||||||
try {
|
try {
|
||||||
// Navigate to the page and wait for content to load
|
// Navigate to the page and wait for content to load
|
||||||
await page.goto(url, {
|
await page.goto(url, {
|
||||||
waitUntil: 'networkidle0',
|
waitUntil: 'networkidle2',
|
||||||
timeout: 30000
|
timeout: 60000
|
||||||
});
|
});
|
||||||
|
|
||||||
// Wait for includes.js to finish loading header and footer
|
// Wait for includes.js to finish loading header and footer
|
||||||
|
|
@ -146,7 +146,7 @@ async function generatePdf(browser, htmlFile) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}, {
|
}, {
|
||||||
timeout: 15000,
|
timeout: 30000,
|
||||||
polling: 100 // Check every 100ms
|
polling: 100 // Check every 100ms
|
||||||
});
|
});
|
||||||
} catch (waitError) {
|
} catch (waitError) {
|
||||||
|
|
@ -192,8 +192,8 @@ async function generatePdf(browser, htmlFile) {
|
||||||
// Re-navigate to the page if it was closed
|
// Re-navigate to the page if it was closed
|
||||||
try {
|
try {
|
||||||
await page.goto(url, {
|
await page.goto(url, {
|
||||||
waitUntil: 'networkidle0',
|
waitUntil: 'networkidle2',
|
||||||
timeout: 30000
|
timeout: 60000
|
||||||
});
|
});
|
||||||
await page.waitForTimeout(1000);
|
await page.waitForTimeout(1000);
|
||||||
} catch (navError) {
|
} catch (navError) {
|
||||||
|
|
|
||||||
|
|
@ -2,40 +2,58 @@
|
||||||
|
|
||||||
<!-- Matomo -->
|
<!-- Matomo -->
|
||||||
<script>
|
<script>
|
||||||
var _paq = window._paq = window._paq || [];
|
var _paq = window._paq = window._paq || [];
|
||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||||
_paq.push(['trackPageView']);
|
_paq.push(['trackPageView']);
|
||||||
_paq.push(['enableLinkTracking']);
|
_paq.push(['enableLinkTracking']);
|
||||||
(function () {
|
(function() {
|
||||||
var u = "//metrics.nixc.us/";
|
var u="//metrics.nixc.us/";
|
||||||
_paq.push(['setTrackerUrl', u + 'matomo.php']);
|
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||||
_paq.push(['setSiteId', '3']);
|
_paq.push(['setSiteId', '3']);
|
||||||
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||||
g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s);
|
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
<!-- End Matomo Code -->
|
<!-- End Matomo Code -->
|
||||||
|
|
||||||
<div class="theme-switch">
|
<!-- PostHog -->
|
||||||
<button id="themeToggle" aria-label="Theme mode: Auto" role="switch" aria-checked="false"
|
<script>
|
||||||
title="Toggle between light, dark, and auto theme modes" tabindex="0">🌓</button>
|
!function(t,e){var o,n,p,r;e.__SV||(window.posthog && window.posthog.__loaded)||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init zr Wr fi Br Gr ci Nr Hr capture Ui calculateEventProperties Kr register register_once register_for_session unregister unregister_for_session Zr getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey displaySurvey cancelPendingSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty Xr Jr createPersonProfile Qr jr ts opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing get_explicit_consent_status is_capturing clear_opt_in_out_capturing Vr debug O Yr getPageViewId captureTraceFeedback captureTraceMetric Or".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
|
||||||
</div>
|
|
||||||
|
|
||||||
<nav class="main-nav">
|
posthog.init('phc_3WDvcJlYYXlBVYL8vC1raT0gMfjkMuCyOpXdmgjK0CK', {
|
||||||
<ul>
|
api_host: 'https://eu.i.posthog.com',
|
||||||
<li><a href="/" id="nav-portfolio">Portfolio</a></li>
|
defaults: '2025-11-30',
|
||||||
<li class="dropdown">
|
person_profiles: 'identified_only', // or 'always' to create profiles for anonymous users as well
|
||||||
<a href="/resumes/business-development.html" id="nav-resumes">Resumes</a>
|
})
|
||||||
<div class="dropdown-content">
|
</script>
|
||||||
<a href="/resumes/business-development.html" id="nav-businessdev">Business Development</a>
|
<!-- End PostHog Code -->
|
||||||
<a href="/resumes/devsecops.html" id="nav-devsecops">DevSecOps</a>
|
|
||||||
<a href="/resumes/team-leadership.html" id="nav-teamleadership">Team Leadership</a>
|
<div class="theme-switch">
|
||||||
<a href="/resumes/tool-building.html" id="nav-toolbuilding">Tool Building</a>
|
<button
|
||||||
</div>
|
id="themeToggle"
|
||||||
</li>
|
aria-label="Theme mode: Auto"
|
||||||
<li class="dropdown">
|
role="switch"
|
||||||
<a href="/stories/" id="nav-stories">Stories</a>
|
aria-checked="false"
|
||||||
<div class="dropdown-content">
|
title="Toggle between light, dark, and auto theme modes"
|
||||||
|
tabindex="0"
|
||||||
|
>🌓</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav">
|
||||||
|
<ul>
|
||||||
|
<li><a href="/" id="nav-portfolio">Portfolio</a></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="/resumes/business-development.html" id="nav-resumes">Resumes</a>
|
||||||
|
<div class="dropdown-content">
|
||||||
|
<a href="/resumes/business-development.html" id="nav-businessdev">Business Development</a>
|
||||||
|
<a href="/resumes/devsecops.html" id="nav-devsecops">DevSecOps</a>
|
||||||
|
<a href="/resumes/team-leadership.html" id="nav-teamleadership">Team Leadership</a>
|
||||||
|
<a href="/resumes/tool-building.html" id="nav-toolbuilding">Tool Building</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="/stories/" id="nav-stories">Stories</a>
|
||||||
|
<div class="dropdown-content">
|
||||||
<a href="/stories/airport-dns.html" id="nav-airportdns" class="nav-story-tbd">Airport Dns</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/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/athion-turnaround.html" id="nav-athionturnaround" class="nav-story-written">Athion Turnaround</a>
|
||||||
|
|
@ -53,21 +71,18 @@
|
||||||
<a href="/stories/wordpress-security.html" id="nav-wordpresssecurity" class="nav-story-tbd">Wordpress Security</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>
|
<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">
|
||||||
<a href="/one-pager-tools/csv-tool.html" id="nav-tools">Tools</a>
|
<a href="/one-pager-tools/csv-tool.html" id="nav-tools">Tools</a>
|
||||||
<div class="dropdown-content">
|
<div class="dropdown-content">
|
||||||
<a href="/one-pager-tools/csv-tool.html" id="nav-csv">CSV Tool</a>
|
<a href="/one-pager-tools/csv-tool.html" id="nav-csv">CSV Tool</a>
|
||||||
<a href="/one-pager-tools/utm-tool.html" id="nav-utm">UTM Builder</a>
|
<a href="/one-pager-tools/utm-tool.html" id="nav-utm">UTM Builder</a>
|
||||||
<a href="https://md.colinknapp.com" id="nav-markdown" target="_blank" rel="noopener noreferrer">Markdown
|
<a href="https://md.colinknapp.com" id="nav-markdown" target="_blank" rel="noopener noreferrer">Markdown Tool</a>
|
||||||
Tool</a>
|
<a href="https://nix.colinknapp.com" id="nav-nix" target="_blank" rel="noopener noreferrer">NixOS Validator</a>
|
||||||
<a href="https://nix.colinknapp.com" id="nav-nix" target="_blank" rel="noopener noreferrer">NixOS
|
<a href="https://qr.colinknapp.com" id="nav-qrcode" target="_blank" rel="noopener noreferrer">QR Code Tool</a>
|
||||||
Validator</a>
|
</div>
|
||||||
<a href="https://qr.colinknapp.com" id="nav-qrcode" target="_blank" rel="noopener noreferrer">QR Code
|
</li>
|
||||||
Tool</a>
|
<li><a href="https://meet.colinknapp.com" id="nav-meet" target="_blank" rel="noopener noreferrer" title="No-account web meetings without software">Meet</a></li>
|
||||||
</div>
|
</ul>
|
||||||
</li>
|
</nav>
|
||||||
<li><a href="https://meet.colinknapp.com" id="nav-meet" target="_blank" rel="noopener noreferrer"
|
|
||||||
title="No-account web meetings without software">Meet</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
|
||||||
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.
Loading…
Reference in New Issue