Skip to content

Commit 0107686

Browse files
committed
init
1 parent b8c5b31 commit 0107686

104 files changed

Lines changed: 11955 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
# Trigger the workflow every time you push to the `main` branch
5+
# Using a different branch name? Replace `main` with your branch’s name
6+
push:
7+
branches: [ main ]
8+
# Allows you to run this workflow manually from the Actions tab on GitHub.
9+
workflow_dispatch:
10+
11+
# Allow this job to clone the repo and create a page deployment
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout your repository using git
22+
uses: actions/checkout@v4
23+
- name: Install, build, and upload your site
24+
uses: withastro/action@v3
25+
with:
26+
path: /blog # The root location of your Astro project inside the repository. (optional)
27+
# node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 20. (optional)
28+
# package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
29+
30+
deploy:
31+
needs: build
32+
runs-on: ubuntu-latest
33+
environment:
34+
name: github-pages
35+
url: ${{ steps.deployment.outputs.page_url }}
36+
steps:
37+
- name: Deploy to GitHub Pages
38+
id: deployment
39+
uses: actions/deploy-pages@v4

.nojekyll

Whitespace-only changes.

404.html

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v5.7.10"><title>404</title><meta name="description" content="This page could not be found."><meta name="theme-color" content="#8c5cf5"><link rel="canonical" href="https://33j33.github.io/"><meta name="og:title" content="404"><meta name="og:description" content="This page could not be found."><meta name="og:image" content="/img/og.png"><meta name="og:url" content="https://33j33.github.io/"><meta name="og:type" content="website"><meta name="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="404"><meta name="twitter:description" content="This page could not be found."><meta name="twitter:image" content="/img/og.png"><link rel="stylesheet" href="/_astro/index.BJhKo5tD.css">
2+
<style>.notfound-container[data-astro-cid-zetdm5md]{display:flex;height:80vh;justify-content:center;align-items:center;width:100%;text-align:center;flex-direction:column}.notfound-container[data-astro-cid-zetdm5md] h1[data-astro-cid-zetdm5md]{font-size:4rem;margin:0}.notfound-container[data-astro-cid-zetdm5md] p[data-astro-cid-zetdm5md]{font-size:1.25em}.block-link[data-astro-cid-zetdm5md]{margin-top:1rem}
3+
</style></head> <body> <main data-pagefind-ignore="true"> <nav data-astro-cid-5blmo7yk> <a class="site-title" href="/" data-astro-cid-5blmo7yk>Ornithopter</a> <ul data-astro-cid-5blmo7yk> <li data-astro-cid-5blmo7yk> <a href="/posts" data-astro-cid-5blmo7yk>Posts</a> </li> <li class="nav-separator" data-astro-cid-5blmo7yk>/</li> <li data-astro-cid-5blmo7yk> <a href="/projects" data-astro-cid-5blmo7yk>Projects</a> </li> <li class="nav-separator" data-astro-cid-5blmo7yk>/</li> <li data-astro-cid-5blmo7yk> <input id="search" type="text" placeholder="Search (Ctrl+K)" data-astro-cid-5blmo7yk> <div id="search-results" data-astro-cid-5blmo7yk></div> </li> </ul> <button class="mobile-nav-toggle" data-astro-cid-5blmo7yk> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="menu-closed" data-astro-cid-5blmo7yk="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 12h16M4 6h16M4 18h16"/></svg> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" class="menu-open" data-astro-cid-5blmo7yk="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18 6L6 18M6 6l12 12"/></svg> </button> </nav> <script>
4+
const searchElement = document.querySelector('#search');
5+
const results = document.querySelector('#search-results');
6+
const navToggle = document.querySelector('.mobile-nav-toggle');
7+
8+
let focusIndex = -1;
9+
10+
document.addEventListener('keydown', (e) => {
11+
if (e.key === 'k' && e.ctrlKey) {
12+
searchElement.focus();
13+
}
14+
15+
if (e.key === 'Escape') {
16+
searchElement.blur();
17+
results.classList.remove('active');
18+
focusIndex = -1;
19+
}
20+
21+
if (e.key === 'ArrowDown') {
22+
e.preventDefault();
23+
24+
focusIndex++;
25+
const results = document.querySelectorAll('#search-results a');
26+
27+
if (focusIndex >= results.length) {
28+
focusIndex = 0;
29+
}
30+
31+
results[focusIndex]?.focus();
32+
}
33+
34+
if (e.key === 'ArrowUp') {
35+
e.preventDefault();
36+
37+
focusIndex--;
38+
const results = document.querySelectorAll('#search-results a');
39+
40+
if (focusIndex < 0) {
41+
focusIndex = results.length - 1;
42+
}
43+
44+
results[focusIndex]?.focus();
45+
}
46+
});
47+
48+
searchElement?.addEventListener('focus', () => {
49+
searchElement.placeholder = '';
50+
results.classList.add('active');
51+
});
52+
53+
searchElement?.addEventListener('blur', () => {
54+
searchElement.placeholder = 'Search (Ctrl+K)';
55+
});
56+
57+
searchElement?.addEventListener('blur', () => {
58+
setTimeout(() => {
59+
if (!document.activeElement?.closest('#search-results')) {
60+
results.classList.remove('active');
61+
focusIndex = -1;
62+
}
63+
}, 1);
64+
});
65+
66+
results?.addEventListener('focusout', (e) => {
67+
if (!e.relatedTarget?.closest('#search-results')) {
68+
results.classList.remove('active');
69+
focusIndex = -1;
70+
}
71+
});
72+
73+
searchElement?.addEventListener('input', async (e) => {
74+
if (e.target.dataset.loaded !== 'true') {
75+
e.target.dataset.loaded = 'true';
76+
77+
window.pagefind = await import("/pagefind/pagefind.js");
78+
}
79+
80+
results.innerHTML = '';
81+
82+
const search = await window.pagefind.search(e.target.value);
83+
84+
let i = 0;
85+
for (const result of search.results) {
86+
i++;
87+
88+
const data = await result.data();
89+
90+
results.innerHTML += `
91+
<a href="${data.url}">
92+
<h3 class="no-mt">${data.meta.title}</h3>
93+
<p>${data.excerpt}</p>
94+
</a>
95+
${i < search.results.length ? '<hr class="separator">' : ''}
96+
`;
97+
}
98+
99+
if (search.results.length === 0 && e.target.value.length > 0) {
100+
results.innerHTML = '<p style="margin-top: 0;">No results found</p>';
101+
}
102+
103+
results.classList.add('active');
104+
});
105+
106+
navToggle?.addEventListener('click', () => {
107+
navToggle.classList.toggle('active');
108+
document.querySelector('nav').classList.toggle('active');
109+
});
110+
111+
const handleTabletChange = () => {
112+
if (window.matchMedia('(max-width: 640px)').matches) {
113+
searchElement.placeholder = 'Search';
114+
} else {
115+
searchElement.placeholder = 'Search (Ctrl+K)';
116+
}
117+
}
118+
119+
document.addEventListener('DOMContentLoaded', handleTabletChange);
120+
document.addEventListener('resize', handleTabletChange);
121+
</script> <div class="layout-grid" data-astro-cid-cgyg4spe> </div> <div class="notfound-container" data-astro-cid-zetdm5md> <h1 class="text-glow" data-astro-cid-zetdm5md>404</h1> <p data-astro-cid-zetdm5md>This page could not be found.</p> <a class="block-link" href="/" data-astro-cid-zetdm5md>← Back to the homepage</a> </div> </main> <canvas id="bg-canvas"></canvas> <canvas id="overlay-canvas"></canvas> <script type="module" src="/_astro/Background.astro_astro_type_script_index_0_lang.Cl_PlrnR.js"></script> </body></html>

_astro/Background.astro_astro_type_script_index_0_lang.Cl_PlrnR.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)