Skip to content

Commit cb7daeb

Browse files
committed
Deploy preview for PR 3 🛫
1 parent 128bb57 commit cb7daeb

3 files changed

Lines changed: 174 additions & 1 deletion

File tree

‎pr-preview/pr-3/404.html‎

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
<!DOCTYPE html>
2+
<html class="direction--ltr"lang="en"><head>
3+
<meta charset="utf-8">
4+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
5+
<meta name="viewport" content="width=device-width, initial-scale=1"><!-- Begin Jekyll SEO tag v2.8.0 -->
6+
<title>devnomadic | Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere.</title>
7+
<meta name="generator" content="Jekyll v4.4.1" />
8+
<meta property="og:title" content="devnomadic" />
9+
<meta name="author" content="devnomadic" />
10+
<meta property="og:locale" content="en_US" />
11+
<meta name="description" content="Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere." />
12+
<meta property="og:description" content="Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere." />
13+
<link rel="canonical" href="https://devnomadic.github.io/404.html" />
14+
<meta property="og:url" content="https://devnomadic.github.io/404.html" />
15+
<meta property="og:site_name" content="devnomadic" />
16+
<meta property="og:type" content="website" />
17+
<meta name="twitter:card" content="summary" />
18+
<meta property="twitter:title" content="devnomadic" />
19+
<script type="application/ld+json">
20+
{"@context":"https://schema.org","@type":"WebPage","author":{"@type":"Person","name":"devnomadic"},"description":"Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere.","headline":"devnomadic","url":"https://devnomadic.github.io/404.html"}</script>
21+
<!-- End Jekyll SEO tag -->
22+
<link rel="stylesheet" href="/assets/css/style.css">
23+
<link rel="icon" type="image/png" href="/assets/favicon.png" />
24+
<link rel="stylesheet" href="/assets/css/magnific-popup.css"><link type="application/atom+xml" rel="alternate" href="https://devnomadic.github.io/feed.xml" title="devnomadic" /><script src="https://code.jquery.com/jquery-3.2.0.min.js"></script>
25+
<script src="/assets/js/jquery.magnific-popup.js"></script>
26+
</head>
27+
<body><div class="site-header">
28+
<div class="wrapper">
29+
<a class="site-title" rel="author" href="/">devnomadic<b class="command_prompt"></b><b class="blinking_cursor">_</b></a>
30+
<span class="social_links">
31+
32+
33+
<a class="color-purple-hover" href="https://github.com/devnomadic"><i class="fab fa-github"></i></a>
34+
35+
36+
37+
<a class="color-blue-hover" href="https://www.linkedin.com/in/drewkennedy"><i class="fab fa-linkedin"></i></a>
38+
39+
40+
41+
<a class="color-green-hover" href="mailto:drew@devnomadic.com"><i class="fa fa-envelope"></i></a>
42+
43+
44+
</span>
45+
</div>
46+
</div>
47+
<main class="page-content" aria-label="Content">
48+
<div class="wrapper">
49+
<style type="text/css" media="screen">
50+
.container {
51+
margin: 10px auto;
52+
max-width: 600px;
53+
text-align: center;
54+
}
55+
h1 {
56+
margin: 30px 0;
57+
font-size: 4em;
58+
line-height: 1;
59+
letter-spacing: -1px;
60+
}
61+
</style>
62+
63+
<div class="container">
64+
<h1>404</h1>
65+
66+
<p><strong>Page not found :(</strong></p>
67+
<p>The requested page could not be found.</p>
68+
69+
<script type="text/javascript">
70+
// GitHub Pages SPA redirect workaround
71+
var pathSegmentsToKeep = 0; // Set to 0 for default github.io domains
72+
73+
var l = window.location;
74+
l.replace(
75+
l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') +
76+
l.pathname.split('/').slice(0, 1 + pathSegmentsToKeep).join('/') + '/?/' +
77+
l.pathname.slice(1).split('/').slice(pathSegmentsToKeep).join('/').replace(/&/g, '~and~') +
78+
(l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') +
79+
l.hash
80+
);
81+
</script>
82+
</div>
83+
</div>
84+
</main><footer class="site-footer">
85+
<div class="wrapper">
86+
<div class="credits"><a href="https://github.com/bitbrain/jekyll-dash">dash</a> theme for Jekyll by <a href="https://github.com/bitbrain">bitbrain</a> made with <i class="fas fa-heart"></i><div class="toggleWrapper">
87+
<input type="checkbox" class="dn" id="theme-toggle" onclick="modeSwitcher()" checked />
88+
<label for="theme-toggle" class="toggle">
89+
<span class="toggle__handler">
90+
<span class="crater crater--1"></span>
91+
<span class="crater crater--2"></span>
92+
<span class="crater crater--3"></span>
93+
</span>
94+
<span class="star star--1"></span>
95+
<span class="star star--2"></span>
96+
<span class="star star--3"></span>
97+
<span class="star star--4"></span>
98+
<span class="star star--5"></span>
99+
<span class="star star--6"></span>
100+
</label>
101+
</div>
102+
<script type="text/javascript">
103+
const theme = localStorage.getItem('theme');
104+
105+
if (theme === "light") {
106+
document.documentElement.setAttribute('data-theme', 'light');
107+
} else {
108+
document.documentElement.setAttribute('data-theme', 'dark');
109+
}
110+
const userPrefers = getComputedStyle(document.documentElement).getPropertyValue('content');
111+
112+
function activateDarkTheme() {
113+
document.getElementById('theme-toggle').checked = true;
114+
document.documentElement.setAttribute('data-theme', 'dark');
115+
document.documentElement.classList.add('theme--dark');
116+
document.documentElement.classList.remove('theme--light');
117+
document.getElementById("theme-toggle").className = 'light';
118+
window.localStorage.setItem('theme', 'dark');
119+
}
120+
121+
function activateLightTheme() {
122+
document.getElementById('theme-toggle').checked = false;
123+
document.documentElement.setAttribute('data-theme', 'light');
124+
document.documentElement.classList.add('theme--light');
125+
document.documentElement.classList.remove('theme--dark');
126+
document.getElementById("theme-toggle").className = 'dark';
127+
window.localStorage.setItem('theme', 'light');
128+
}
129+
130+
if (theme === "dark") {
131+
activateDarkTheme();
132+
} else if (theme === "light") {
133+
activateLightTheme();
134+
} else if (userPrefers === "light") {
135+
activateDarkTheme();
136+
} else {
137+
activateDarkTheme();
138+
}
139+
140+
function modeSwitcher() {
141+
let currentMode = document.documentElement.getAttribute('data-theme');
142+
if (currentMode === "dark") {
143+
activateLightTheme();
144+
} else {
145+
activateDarkTheme();
146+
}
147+
}
148+
</script></div>
149+
</div>
150+
</footer>
151+
152+
153+
<script>
154+
window.FontAwesomeConfig = {
155+
searchPseudoElements: true
156+
}
157+
</script>
158+
</body>
159+
160+
</html>

‎pr-preview/pr-3/feed.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://devnomadic.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://devnomadic.github.io/" rel="alternate" type="text/html" /><updated>2025-06-10T06:38:28+00:00</updated><id>https://devnomadic.github.io/feed.xml</id><title type="html">devnomadic</title><subtitle>Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere.</subtitle><author><name>devnomadic</name><email>drew@devnomadic.com</email></author><entry><title type="html">Albatross</title><link href="https://devnomadic.github.io/2025/06/10/albatross.html" rel="alternate" type="text/html" title="Albatross" /><published>2025-06-10T00:00:00+00:00</published><updated>2025-06-10T00:00:00+00:00</updated><id>https://devnomadic.github.io/2025/06/10/albatross</id><content type="html" xml:base="https://devnomadic.github.io/2025/06/10/albatross.html"><![CDATA[<h1 id="building-albatross-a-secure-ip-abuse-checker-with-blazor-webassembly-and-cloudflare-workers">Building Albatross: A Secure IP Abuse Checker with Blazor WebAssembly and Cloudflare Workers</h1>
1+
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://devnomadic.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://devnomadic.github.io/" rel="alternate" type="text/html" /><updated>2025-06-10T07:46:16+00:00</updated><id>https://devnomadic.github.io/feed.xml</id><title type="html">devnomadic</title><subtitle>Software engineer and digital nomad currently exploring the world. I write about remote work, travel, and building software from anywhere.</subtitle><author><name>devnomadic</name><email>drew@devnomadic.com</email></author><entry><title type="html">Albatross</title><link href="https://devnomadic.github.io/2025/06/10/albatross.html" rel="alternate" type="text/html" title="Albatross" /><published>2025-06-10T00:00:00+00:00</published><updated>2025-06-10T00:00:00+00:00</updated><id>https://devnomadic.github.io/2025/06/10/albatross</id><content type="html" xml:base="https://devnomadic.github.io/2025/06/10/albatross.html"><![CDATA[<h1 id="building-albatross-a-secure-ip-abuse-checker-with-blazor-webassembly-and-cloudflare-workers">Building Albatross: A Secure IP Abuse Checker with Blazor WebAssembly and Cloudflare Workers</h1>
22

33
<p><em>Published: June 9, 2025</em></p>
44

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Staging Directory
2+
3+
This directory contains markdown post files that are being staged for preview before publication.
4+
5+
## Structure:
6+
- `staging/` - Contains draft/preview post files
7+
- `_posts/` - Contains published post files
8+
9+
## Workflow:
10+
1. During preview builds, new post `.md` files are copied here
11+
2. Jekyll builds the site with both `_posts/` and `staging/` content
12+
3. After review and approval, posts are moved from `staging/` to `_posts/`
13+
4. Staging directory is cleaned up after merge

0 commit comments

Comments
 (0)