diff --git a/_projects/downlight_bikelight.md b/_projects/downlight_bikelight.md
index d314dbb..5a78632 100644
--- a/_projects/downlight_bikelight.md
+++ b/_projects/downlight_bikelight.md
@@ -4,6 +4,7 @@ layout: project
excerpt: An old ceiling mounted LED downlight becomes a chonky bike light.
permalink: /projects/downlight_bikelight
assets: /assets/projects/downlight_bikelight
+images: /assets/projects/downlight_bikelight/img
date: 2025-05-11
img:
@@ -12,11 +13,33 @@ img:
src: /assets/projects/downlight_bikelight/thumbnail.png
social_image: /assets/projects/downlight_bikelight/thumbnail.png
-model: /assets/projects//downlight_bikelight/models
-draft: True
+model: /assets/projects/downlight_bikelight/models
+
+head: |
+
---
+I pulled this dying LED downlight out of my kitchen ceiling.
+
+
+
+
+In doing so I realised that this downlight has an amusingly chonky heatsink and a nice lens.
+
+
+
+
+
+
+So I made a front plate for it to turn it into a bicycle light. I think it suits the current cobbled together, solarpunky aesthetic of my bike.
Loading model...
+
+
+Next job is to actually mount it!
+
+
+
+
\ No newline at end of file
diff --git a/_projects/elegoo_mount.md b/_projects/elegoo_mount.md
index 21d47c5..af90cb1 100644
--- a/_projects/elegoo_mount.md
+++ b/_projects/elegoo_mount.md
@@ -12,7 +12,7 @@ img:
src: /assets/projects/elegoo_mount/thumbnail.png
social_image: /assets/projects/elegoo_mount/thumbnail.png
-draft: True
+draft: false
---
This is just a quick mount for a [BIQU H2V2](https://biqu.equipment/products/biqu-h2-v2-0-extruder) hotend on an Elegoo Neptune 2.
diff --git a/_projects/helmet_lights.md b/_projects/helmet_lights.md
index e84b8f8..351354f 100644
--- a/_projects/helmet_lights.md
+++ b/_projects/helmet_lights.md
@@ -11,6 +11,7 @@ img:
social_image: /assets/projects/helmet_lights/thumbnail.png
models: /assets/projects/helmet_lights/models
+date: 2023-01-01
---
diff --git a/_projects/lamps.md b/_projects/lamps.md
index c22e225..43b33b8 100644
--- a/_projects/lamps.md
+++ b/_projects/lamps.md
@@ -4,6 +4,8 @@ layout: project
excerpt: 3D Printed Lamp Shades
permalink: /projects/lamps
assets: /assets/projects/lamps
+date: 2023-01-01
+draft: true
img:
alt: A CAD model of a 3D printable mount for a common LED light onto a helmet.
diff --git a/_sass/base.scss b/_sass/base.scss
index 804515d..6c3c95d 100644
--- a/_sass/base.scss
+++ b/_sass/base.scss
@@ -125,10 +125,16 @@ hr.heading {
width: 100%;
margin-top: 0;
margin-bottom: 2em;
- border: 1px solid rgba(128, 128, 128, 0.2);
height: 0;
+ border: 1px solid rgba(128, 128, 128, 0.2);
}
+hr.byline {
+ margin-top: 0.2em;
+ margin-bottom: 0.5em;
+ border: 1px solid rgba(128, 128, 128, 0.2);
+ }
+
// Used for both blog and project summaries
@mixin time-text {
font-size: 0.75em;
@@ -163,10 +169,7 @@ section.byline-time {
}
}
-hr.byline {
- margin-top: 0.2em;
- margin-bottom: 0.5em;
-}
+
section.byline {
font-style: italic;
diff --git a/assets/js/expand_img_tags.js b/assets/js/expand_img_tags.js
new file mode 100644
index 0000000..cbb082f
--- /dev/null
+++ b/assets/js/expand_img_tags.js
@@ -0,0 +1,62 @@
+function isIOS() {
+ return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+}
+
+function enterFullscreen(element) {
+ if (element.requestFullscreen) {
+ element.requestFullscreen();
+ } else if (element.webkitRequestFullscreen) {
+ element.webkitRequestFullscreen();
+ } else {
+ console.warn("Fullscreen API not supported on this browser");
+ }
+}
+
+function exitFullscreen() {
+ if (document.exitFullscreen) {
+ document.exitFullscreen();
+ } else if (document.webkitExitFullscreen) {
+ document.webkitExitFullscreen();
+ }
+}
+
+// Create and style fullscreen overlay container
+const fullscreenContainer = document.createElement("div");
+fullscreenContainer.style.position = "fixed";
+fullscreenContainer.style.top = 0;
+fullscreenContainer.style.left = 0;
+fullscreenContainer.style.width = "100vw";
+fullscreenContainer.style.height = "100vh";
+fullscreenContainer.style.background = "rgba(0, 0, 0, 0.95)";
+fullscreenContainer.style.display = "flex";
+fullscreenContainer.style.alignItems = "center";
+fullscreenContainer.style.justifyContent = "center";
+fullscreenContainer.style.zIndex = 9999;
+fullscreenContainer.style.cursor = "zoom-out";
+fullscreenContainer.style.visibility = "hidden";
+
+const fullscreenImage = document.createElement("img");
+fullscreenImage.style.maxWidth = "90vw";
+fullscreenImage.style.maxHeight = "90vh";
+fullscreenImage.style.boxShadow = "0 0 20px rgba(0,0,0,0.8)";
+fullscreenContainer.appendChild(fullscreenImage);
+
+document.body.appendChild(fullscreenContainer);
+
+document.querySelectorAll("img").forEach((img) => {
+ img.style.cursor = "zoom-in";
+ img.addEventListener("click", () => {
+ console.log("Image clicked:", img.src);
+ fullscreenImage.src = img.src;
+ fullscreenContainer.style.visibility = "visible";
+
+ // Only attempt fullscreen if supported
+ enterFullscreen(fullscreenContainer);
+ });
+});
+
+fullscreenContainer.addEventListener("click", () => {
+ console.log("Exiting fullscreen");
+ fullscreenContainer.style.visibility = "hidden";
+ exitFullscreen();
+});
diff --git a/assets/projects/downlight_bikelight/img/cad.jpeg b/assets/projects/downlight_bikelight/img/cad.jpeg
new file mode 100644
index 0000000..fbe5414
Binary files /dev/null and b/assets/projects/downlight_bikelight/img/cad.jpeg differ
diff --git a/assets/projects/downlight_bikelight/img/laid_out_front.jpeg b/assets/projects/downlight_bikelight/img/laid_out_front.jpeg
new file mode 100644
index 0000000..43b6551
Binary files /dev/null and b/assets/projects/downlight_bikelight/img/laid_out_front.jpeg differ
diff --git a/assets/projects/downlight_bikelight/img/laid_out_top.jpeg b/assets/projects/downlight_bikelight/img/laid_out_top.jpeg
new file mode 100644
index 0000000..cb016d6
Binary files /dev/null and b/assets/projects/downlight_bikelight/img/laid_out_top.jpeg differ
diff --git a/assets/projects/downlight_bikelight/img/original_location.jpeg b/assets/projects/downlight_bikelight/img/original_location.jpeg
new file mode 100644
index 0000000..7635094
Binary files /dev/null and b/assets/projects/downlight_bikelight/img/original_location.jpeg differ
diff --git a/assets/projects/downlight_bikelight/models/fbx_export.glb b/assets/projects/downlight_bikelight/models/fbx_export.glb
new file mode 100644
index 0000000..c0355a4
Binary files /dev/null and b/assets/projects/downlight_bikelight/models/fbx_export.glb differ
diff --git a/highlights.md b/highlights.md
index 9097d4f..6573e05 100644
--- a/highlights.md
+++ b/highlights.md
@@ -45,7 +45,7 @@ Welcome to my little home on the web! Below you'll find recent blog posts, proje
Last Modified
-{% assign projects = site.projects | sort_natural: "last_modified_at"%}
+{% assign projects = site.projects | sort_natural: "date" | reverse %}
{% for post in projects limit:5 %}
{% if post.draft == false or jekyll.environment == "development" %}
{% include project_summary.html %}