Added sitemap, with filtering of disabled pages, removal of content from disabled pages, robots.txt generation pointing to the sitemap, adjustment of the Navbar generation to ignore disabled entries, e2e check for all pages including a non-blank title, content for body mods page
This commit is contained in:
@@ -25,4 +25,32 @@ const rfidImplantCarouselGroup: carouselGroup = {
|
||||
<HobbyLayout title="Body Mods">
|
||||
<h2 class="font-bold md:text-2xl my-4 underline">RFID Implant</h2>
|
||||
<Carousel carouselGroup={rfidImplantCarouselGroup}/>
|
||||
<p class="mt-4">
|
||||
Back when I was in college, a few of my friends and I got this crazy idea to all get RFID implants together.
|
||||
They are essentially the same things you'd use to microchip a pet, but with a slightly different firmware
|
||||
configuration, allowing scans with any 125KHz-compatible reader. The implants came from <a
|
||||
class="text-blue-500 hover:text-blue-300" href="https://dangerousthings.com/product/xem/">dangerousthings.com</a>,
|
||||
and we were lucky enough to have a vet-med student as a friend who made the installation a quick and painless
|
||||
process!
|
||||
I'm glad that I'm not afraid of needles, as the 16 gauge injector the kit came with was nothing to scoff at.
|
||||
Since healing, you would never know the implant was there, with the site leaving no scar or visible indication
|
||||
of its presence.
|
||||
</p>
|
||||
<p class="mt-4">
|
||||
With that out of the way, our group began work on hardware which would support the new implants.
|
||||
The goal was to have a generic usb-keyboard emulator for typing passwords with a valid scan, a car
|
||||
off-acc-on ignition replacement, and a fairly specialized modification to the OSU Robotics Club's doorway
|
||||
scanning system so they would support these on top of the official OSU ID cards.
|
||||
As tends to happen, life got busy, and only the usb-keyboard emulator actually came to fruition. The electronics
|
||||
and
|
||||
primary firmware were handled by <a
|
||||
class="text-blue-500 hover:text-blue-300"
|
||||
href="https://nickmccomb.net">Nick McComb</a>,
|
||||
enclosure by
|
||||
<a class="text-blue-500 hover:text-blue-300" href="https://dylanthrush.com">Dylan Thrush</a>, and I supported
|
||||
some minor firmware development and debugging. If you want to see an example of the keyboard emulator unlocking
|
||||
a PC, check out the video on <a
|
||||
class="text-blue-500 hover:text-blue-300"
|
||||
href="https://nickmccomb.net/college/printed-circuit-boards/computer-access-module">Nick's website</a>!
|
||||
</p>
|
||||
</HobbyLayout>
|
||||
@@ -18,7 +18,7 @@ const headerCarouselGroup: carouselGroup = {
|
||||
]
|
||||
}
|
||||
---
|
||||
<BaseLayout>
|
||||
<BaseLayout title="About" showTitle={false}>
|
||||
<Carousel carouselGroup={headerCarouselGroup}/>
|
||||
<h2 class="font-bold md:text-2xl my-4 underline">Who Am I</h2>
|
||||
<p>
|
||||
@@ -56,7 +56,7 @@ const headerCarouselGroup: carouselGroup = {
|
||||
href="/experience/spacex/avionics-test-engineering-internship">internship</a> at
|
||||
SpaceX in Hawthorne at the end of college, I applied for a <a class="text-blue-500 hover:text-blue-300"
|
||||
href="/experience/spacex/hardware-test-engineer-i-ii">test
|
||||
engineering</a> position for the company's Starlink team and was hired in mid-2019.
|
||||
engineering</a> position with the company's Starlink team and was hired in mid-2019.
|
||||
For six years, I developed test system hardware, software, harnesses, mechanical fixtures, devops
|
||||
infrastructure, websites, and tooling to ensure that Starlink, Falcon, Dragon, and Starship component tests were
|
||||
producing well-validated and reliable hardware.
|
||||
|
||||
@@ -3,4 +3,4 @@ import ResumeLayout from "@layouts/ResumeLayout.astro";
|
||||
import resume from "@assets/resume/corwin_perren_2019-07-01_hardware_test_engineer.pdf"
|
||||
---
|
||||
|
||||
<ResumeLayout resume={resume}/>
|
||||
<ResumeLayout title="2019-07-01 - Hardware Test Engineer" resume={resume}/>
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
import ResumeLayout from "@layouts/ResumeLayout.astro";
|
||||
import resume from "@assets/resume/corwin_perren_2025_10_27_infrastructure_engineer.pdf"
|
||||
import resume from "@assets/resume/corwin_perren_2025-10-27-infrastructure_engineer.pdf"
|
||||
---
|
||||
|
||||
<ResumeLayout resume={resume}/>
|
||||
<ResumeLayout title="2025-10-27 - Infrastructure Engineer" resume={resume}/>
|
||||
13
src/pages/robots.txt.ts
Normal file
13
src/pages/robots.txt.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import type { APIRoute } from 'astro';
|
||||
|
||||
const getRobotsTxt = (sitemapURL: URL) => `\
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: ${sitemapURL.href}
|
||||
`;
|
||||
|
||||
export const GET: APIRoute = ({ site }) => {
|
||||
const sitemapURL = new URL('sitemap-index.xml', site);
|
||||
return new Response(getRobotsTxt(sitemapURL));
|
||||
};
|
||||
Reference in New Issue
Block a user