Migrated my old word document archive to this website.
2025-08-23
Optimizations continue. Homepage is now 19.3kB. Blog is 21.0kB.
Removed Montserrat as it needed to be transferred to the client. Switched to Consolas which should be available on all operating systems.
2025-08-09
Major optimization overhaul, automated JS/CSS minifiy and reduced total requests per page by at least 25%
All pages are now under 50kB transfer-size (minimum 30% reduction)
Made fonts slightly thinner
2025-07-20
Removed PrismJS and replaced with keylighter for server-side code highlighting to remove reliance on Cloudflare CDN. Significantly reduces page load time and improves performance.
importrequestsprint("It seems to work fine")
2025-06-24
Small cleanup to dead code in post handler
2025-05-31
Added support for unlisted posts
2025-05-30
Fixed mobile layout for blog index
2025-05-25
Fix image centering for any sized image
Support custom image sizing via custom markdown processing: {50%}
Increase width from fixed pixel sizing to 60vw
Create (and backdate) changelog file
Update scrollbar styling to use shared roots
Moved common CSS rules from various pages into a shared CSS file
Externalized page-specific CSS from /index.html to /assets/css/main-index.css
Externalized page-specific CSS from /colors/index.php to /colors/css/colors.css
Externalized page-specific CSS from /banned/index.php to /banned/css/banned.css
Externalized page-specific CSS from /error.php to /assets/css/error.css
Externalized page-specific JavaScript from /index.html to /assets/js/main-index.js
Externalized page-specific JavaScript from /colors/index.php to /colors/js/colors.js, passing PHP data via a global JS object.
Externalized page-specific JavaScript from /banned/index.php to /banned/js/banned.js.
Externalized page-specific JavaScript from /error.php to /assets/js/error.js.
Consolidated blog CSS:
Merged /blog/css/password-protection.css into /blog/css/blog-post.css.
Centralized common tag styling into /blog/css/blog.css.
Cleaned /blog/css/blog.css of rules now in /assets/css/shared.css.
Consolidated blog JavaScript:
Merged /blog/js/blog-filter.js into /blog/js/blog-index.js.
Merged /blog/js/password-protection.js into /blog/js/blog-post.js and moved its CSS keyframes to /blog-post.css.
Moved "Copy" button logic from /blog/js/blog.js to /blog/js/blog-post.js and de-duplicated.
Created /assets/js/utils.js for shared utility functions like isInViewport.
Added timeline-view-class to the posts container in /blog/index.php to activate the timeline-specific styles that handle the center line and post positioning.
Fixed container width conflict in /blog/css/blog.css, to ensure that the timeline has the correct width while preserving to 60vw width for other blog pages.
Fixed a bug in /blog/js/blog-index.js where timeline branches weren't fading out properly during filtering because it was using dot.style.opacity instead of branch.style.opacity.
Fix hardcoded box-shadow value in /assets/css/error.css to use primary accent color from roots.
2025-05-23
Replace ThreeJS with custom Canvas API particle system
Support multi-coloured particle effects
Cleanup dependencies
2025-05-22
Consistent styling across all pages (exception for /colors as this is a sandbox page)
Remove all server-side blog filtering, all post filtering is now handled client-side
Improve filter transition states
Fix regression allowing direct read access to blog posts without authentication
Add testing for direct read access to blog post markdown files
2025-05-21
Support sorting for posts made on the same day via sort metadata
Fix index tag selection
Move from card-based to timeline-based blog index
2025-05-20
Implement authentication for specific blog posts
Proper authentication session state management
2025-05-19
Support proper syntax highlighting for code blocks