From d1e06b432d88eaf0e868241130730c2c1b749430 Mon Sep 17 00:00:00 2001 From: Cutieguwu Date: Wed, 20 Aug 2025 16:08:41 -0400 Subject: [PATCH] Complete #52, Optimize CSS, Reduce code duplication, Scrap templates; Massive refactor. --- src/about.html | 32 +- src/acknowledgements.html | 44 +- src/blog/index.html | 46 +- src/blog/posts/0_divergent_pathways.html | 217 +++--- src/blog/posts/1_unsure_u.html | 214 +++-- src/blog/style.scss | 2 - src/disclosure.html | 527 +++++++------ src/errors/400.html | 48 +- src/errors/401.html | 38 +- src/errors/403.html | 42 +- src/errors/404.html | 38 +- src/errors/500.html | 42 +- src/errors/501.html | 42 +- src/errors/502.html | 42 +- src/errors/503.html | 42 +- src/errors/504.html | 48 +- src/includes/_unused_menu_entries.html | 14 + src/includes/blog_recent_posts.html | 22 +- src/includes/footer.html | 4 +- src/includes/nav_header.html | 4 +- src/includes/nav_menu.html | 83 +- src/includes/nav_quick_links.html | 8 +- src/includes/tailer.html | 2 +- src/index.html | 61 +- src/minecraft/bearock/index.html | 32 +- src/minecraft/bearock/style.scss | 2 - src/minecraft/index.html | 32 +- src/minecraft/rebirth/index.html | 32 +- src/minecraft/rebirth/style.scss | 2 - src/minecraft/style.scss | 2 - src/partials/_a_chunk_list.scss | 22 +- src/partials/_a_colours.scss | 52 ++ src/partials/_a_common.scss | 45 +- src/partials/_a_footer.scss | 9 +- src/partials/_a_layouts.scss | 2 +- src/partials/_a_pages.scss | 3 - src/partials/_a_pane.scss | 23 + src/partials/_a_tailer.scss | 13 - src/partials/_blog_recent_posts.scss | 8 - src/partials/_nav_dropdown.scss | 22 +- src/partials/_nav_header.scss | 6 +- src/partials/_nav_menu.scss | 56 +- src/partials/_nav_quick_links.scss | 24 +- src/partials/_nav_title.scss | 4 +- src/partials/_page_resume.scss | 174 +---- src/partials/_pane_blog.scss | 47 +- src/partials/_pane_error.scss | 19 +- src/partials/_pane_main.scss | 38 +- src/partials/_pane_nav.scss | 20 +- src/partials/_pane_spacer.scss | 16 +- src/resume.html | 953 +++++++++++------------ src/style.scss | 2 +- src/templates/blog_post.html | 40 - src/templates/error.html | 36 - src/templates/main.html | 31 - 55 files changed, 1533 insertions(+), 1896 deletions(-) create mode 100644 src/partials/_a_colours.scss delete mode 100644 src/partials/_a_pages.scss create mode 100644 src/partials/_a_pane.scss delete mode 100644 src/partials/_a_tailer.scss delete mode 100644 src/partials/_blog_recent_posts.scss delete mode 100644 src/templates/blog_post.html delete mode 100644 src/templates/error.html delete mode 100644 src/templates/main.html diff --git a/src/about.html b/src/about.html index b674b05..ae677f4 100644 --- a/src/about.html +++ b/src/about.html @@ -6,24 +6,22 @@ -
- -
-

This page has not yet been filled out. Sorry!

- -
-
-

#AD

-

#AD

+ +
+

This page has not yet been filled out. Sorry!

+ +
+
+

#AD

+

#AD

diff --git a/src/acknowledgements.html b/src/acknowledgements.html index bd10234..b0515c8 100644 --- a/src/acknowledgements.html +++ b/src/acknowledgements.html @@ -6,31 +6,29 @@ -
- -
-
-

There are currently no acknowledgements

-

In terms of security, hopefully that means I'm doing a good-ish job.

-

- I will get my thanks to various open projects in here in time, but I'm still - busy getting the basics handled. -

-
- + +
+
+

There are currently no acknowledgements

+

In terms of security, hopefully that means I'm doing a good-ish job.

+

+ I will get my thanks to various open projects in here in time, but I'm still + busy getting the basics handled. +

+ +
+
+

#AD

+

#AD

diff --git a/src/blog/index.html b/src/blog/index.html index 1d45f2b..92e8ea5 100644 --- a/src/blog/index.html +++ b/src/blog/index.html @@ -6,33 +6,31 @@ -
- -
+ +
+
+
+

Blog

+

Last Edited: 03 August, 2025

+
-
-

Blog

-

Last Edited: 03 August, 2025

-
-
-

I have an RSS feed!

-

Just look for the RSS Quick Link in the Navigation pane.

-
+

I have an RSS feed!

+

Just look for the RSS Quick Link in the Navigation pane.

- -
-
- -

#AD

+ +
+
+ +

#AD

diff --git a/src/blog/posts/0_divergent_pathways.html b/src/blog/posts/0_divergent_pathways.html index 46808fa..0c97af0 100644 --- a/src/blog/posts/0_divergent_pathways.html +++ b/src/blog/posts/0_divergent_pathways.html @@ -6,119 +6,116 @@ -
- -
+ +
+
+
+

Divergent Pathways

+

Posted: 29 July, 2025

+

Last Edited: 29 July, 2025

+
-
-

Divergent Pathways

-

Posted: 29 July, 2025

-

Last Edited: 29 July, 2025

-
-
-

I can't say that this is how I wanted to start my blog.

-

- Although, in all honesty, I didn't really have an idea for how I wanted - it to start. That's not to say I didn't know what I *didn't* want. A - meaningless 'Welcome to my Blog' filled with my hopes and aspirations - that inevitably would never come to light was something I knew I didn't - want. I figured it more likely for me to have a semi-respectful rant - about whatever's causing me to 'crash out' on that particular day. That - would certainly be in character for me. -

-

- But no. Instead, I'm starting my blog on one of the last things I ever - expected to write about. -

-

Love.

-

Or rather, the passing of it due to life.

-

- I've been in two relationships now. Both ended mutually, although what I - consider mutual may not be everyone else's. We came to see the same side - of things, and we understood that we couldn't sustain our lives - together. We're all still friends at the end. -

-

- Me and my ex-boyfriend were struggling a lot with being able to see each - other. It's not like this relationship was geographically long distance; - we went to the same school. The distance came more from our schedules - and pathways. I have always been a relatively heavy academic. My parents - and teachers certainly made sure of that, and ultimately helped lead me - down a path of being the teacher's pet. Maybe I'll talk about my - experiences and struggles related to that another time, but the short of - it is that I am a high-acheiving workaholic as a result. My ex-boyfriend - on the other hand, didn't have that kind of an experience, and - ultimately was led down the college-level course stream in high school. -

-

- Now, as I began to struggle in my fourth year, particularly with my - mathematics continuing their downwards trend, I decided that the life of - a software engineer wasn't for me. I turned around, almost on a dime, - and set myself towards a career in Psychology. Now, on the surface, this - may look like it would help with our scheduling issues, but no. While I - was studying at school, and desperately trying to keep up my grades, my - boyfriend would be doing a co-op elsewhere. Even when that ended at the - end of the term, the problem remained. I was too much of a workaholic. -

-

- Ultimately, the break-up that I've just had has left me intent on not - spiralling downward. My first was rough on me, and I was not in a good - place for about a week. This time, we both kind of saw this coming. - Perhaps that makes it easier, but it still sucks for both of us. And, - why squander the motivation I have to better my self care, my habits, - and thus myself? I'm about to go into my first year of university. - Normally, I'm either scared of my inevitable death, or some past regret - of my life that chooses to grip me. But now, I'm also anxious for the - life ahead. -

-

- So what does this all mean in terms of dating for me? Well, it leaves me - considering the idea that some people are meant to walk through life - alone. I'm at a point in my life where dating is probably not a great - idea for me. I struggle enough with burnout spells that adding - heartbreak on top would likely kill my education. -

-

- On top of that are my concerns with online dating. Aside from data - privacy, breaches, and otherwise disgusting people who can't leave these - projects to be a good part of the internet, are the risks with being - trans. There are far too many stories, even if most of them are probably - from the US, of people 'trying it out' with a trans person. Ignoring how - slimy and disgusting you have to be to even do that without considering - the effects of those actions, the point of dating is for love (and to - meet societal expectations while seeking a dual income for the - household, among other things). -

-

- To make it extra clear, love != sex. The point at the end of it isn't so - you can run home and shag every night--this isn't some 1960s Bond film. -

-

- If you want to have kids, some trans people who are on HRT, may still be - able to if they've gone to the really awkward and expensive effort of - cryopreservation. -

-

- Anyway, being someone who was a 'test run' is crushing. I certainly - don't want to run that risk, and other people are in the same boat. -

-

Given all this, I'll probably tough it out on my own for a while.

-
+

I can't say that this is how I wanted to start my blog.

+

+ Although, in all honesty, I didn't really have an idea for how I wanted it + to start. That's not to say I didn't know what I *didn't* want. A + meaningless 'Welcome to my Blog' filled with my hopes and aspirations that + inevitably would never come to light was something I knew I didn't want. I + figured it more likely for me to have a semi-respectful rant about + whatever's causing me to 'crash out' on that particular day. That would + certainly be in character for me. +

+

+ But no. Instead, I'm starting my blog on one of the last things I ever + expected to write about. +

+

Love.

+

Or rather, the passing of it due to life.

+

+ I've been in two relationships now. Both ended mutually, although what I + consider mutual may not be everyone else's. We came to see the same side of + things, and we understood that we couldn't sustain our lives together. We're + all still friends at the end. +

+

+ Me and my ex-boyfriend were struggling a lot with being able to see each + other. It's not like this relationship was geographically long distance; we + went to the same school. The distance came more from our schedules and + pathways. I have always been a relatively heavy academic. My parents and + teachers certainly made sure of that, and ultimately helped lead me down a + path of being the teacher's pet. Maybe I'll talk about my experiences and + struggles related to that another time, but the short of it is that I am a + high-acheiving workaholic as a result. My ex-boyfriend on the other hand, + didn't have that kind of an experience, and ultimately was led down the + college-level course stream in high school. +

+

+ Now, as I began to struggle in my fourth year, particularly with my + mathematics continuing their downwards trend, I decided that the life of a + software engineer wasn't for me. I turned around, almost on a dime, and set + myself towards a career in Psychology. Now, on the surface, this may look + like it would help with our scheduling issues, but no. While I was studying + at school, and desperately trying to keep up my grades, my boyfriend would + be doing a co-op elsewhere. Even when that ended at the end of the term, the + problem remained. I was too much of a workaholic. +

+

+ Ultimately, the break-up that I've just had has left me intent on not + spiralling downward. My first was rough on me, and I was not in a good place + for about a week. This time, we both kind of saw this coming. Perhaps that + makes it easier, but it still sucks for both of us. And, why squander the + motivation I have to better my self care, my habits, and thus myself? I'm + about to go into my first year of university. Normally, I'm either scared of + my inevitable death, or some past regret of my life that chooses to grip me. + But now, I'm also anxious for the life ahead. +

+

+ So what does this all mean in terms of dating for me? Well, it leaves me + considering the idea that some people are meant to walk through life alone. + I'm at a point in my life where dating is probably not a great idea for me. + I struggle enough with burnout spells that adding heartbreak on top would + likely kill my education. +

+

+ On top of that are my concerns with online dating. Aside from data privacy, + breaches, and otherwise disgusting people who can't leave these projects to + be a good part of the internet, are the risks with being trans. There are + far too many stories, even if most of them are probably from the US, of + people 'trying it out' with a trans person. Ignoring how slimy and + disgusting you have to be to even do that without considering the effects of + those actions, the point of dating is for love (and to meet societal + expectations while seeking a dual income for the household, among other + things). +

+

+ To make it extra clear, love != sex. The point at the end of it isn't so you + can run home and shag every night--this isn't some 1960s Bond film. +

+

+ If you want to have kids, some trans people who are on HRT, may still be + able to if they've gone to the really awkward and expensive effort of + cryopreservation. +

+

+ Anyway, being someone who was a 'test run' is crushing. I certainly don't + want to run that risk, and other people are in the same boat. +

+

Given all this, I'll probably tough it out on my own for a while.

- -
-
- -

#AD

+ +
+
+ +

#AD

diff --git a/src/blog/posts/1_unsure_u.html b/src/blog/posts/1_unsure_u.html index 2a78eaa..8f786a7 100644 --- a/src/blog/posts/1_unsure_u.html +++ b/src/blog/posts/1_unsure_u.html @@ -6,118 +6,114 @@ -
- -
+ +
+
+
+

Unsure U.

+

Posted: 09 August, 2025

+

Last Edited: 09 August, 2025

+
-
-

Unsure U.

-

Posted: 09 August, 2025

-

Last Edited: 09 August, 2025

-
-
- A Coaster which reads 'focus on the good,' placed in front of a window. -

The little things, it's the little things that count.

-

Or so I'm told.

-

- All around me, all my friends are super excited for university, or - college, or appreticeship, or--post-secondary in general. They're - excited about meeting new [like-minded] people, clubs, increased - autonomy, the future promises of post-secondary education, and of - course, parties (within reason). They look to the hopeful side of - things. -

-

- Now, I have this set of coasters which I got a year or so ago at a local - market. They're meant to keep me in a more positive headspace, but half - the time they're covered up by drinks... Anyway, one of them advises me - to "focus on the good". -

-

- And boy, do I try hard to do that. But without a job, I'm left to my - hyperfixation and burnout routine. If I'm lucky, I just start going a - bit stir-crazy from sitting in my room, doing things that I consider - productive, with only the occasional break for the loo and another cup - of bean juice. Then, it's back to work, dawn until dinner, then maybe - I'll play a game briefly, but not until working some more. -

-

- There are of course plenty of things that I'd like to blame for why I'm - like this, but that's not the purpose of this post, nor more than - speculation. -

-

- Anyway, I'm currently writing this in a cheerful little café after an - appointment so that I take a break to process, and perhaps understand, - some emotions, while taking in this little thing. So, back to - university, since that's my academic trajectory. -

-

I'm terrified.

-

- I've struggled a lot to plan and get course selections which will allow - me to fulfill my degree, only to fail rather badly. Seriously, I will - probably do poorly in philosophy, and it doesn't help me with just about - any of my requirements. On top of that, I'm worried about the teachers - that I'll get. It was bad enough in grade 5, and I'd had a few years to - anticipate that teacher. In university, I have no knowledge going into - first year. The best resource I have is something like RateMyProf which - honestly kinda sucks and probably makes things worse unless there's a - resoundingly poor overall rating. -

-

- That's not to say that all of my course selections are bad; I still have - the ones within the interest of my degree and some in my hobbies, that - also contribute directly to the degree. One friend and I were also able - to get some courses together since I had to take them, and they wanted - to. This may sound silly given the struggles with course availabilities, - but I promise these decisions were made following a lot of logical - consideration of both of our degrees' completion. -

-

- Another concern is the fact that I know so little, and I get my - orientation the day before I need to use it... that's not a lot of time - to figure out if you're missing something. That then contributes to my - concerns about being able to move around campus fast enough to not miss - classes, on top of the fatigue that I'll have from waking up at 5h30. -

-

- Finally, because otherwise I could keep going on, are my concerns - regarding the ever-shoved-down-our-gullets AIs. I write oddly. This - blog, my poetry, and all of my past essays and analyses. My teachers can - attest, especially my grade 9 & 12 English teacher who had to consult - two other teachers and myself to fully understand - Building Up, a poem I wrote with the rust programming language for symbology. -

-

- The concerns about having to prove that I don't use AI were bad enough - in High School. Universities have far more strict policies, which likely - utilize a guilty until proven innocent model. -

-

- At the end of the day, I'm trying to take in the little things and not - worry too much. -

-
+ A Coaster which reads 'focus on the good,' placed in front of a window. +

The little things, it's the little things that count.

+

Or so I'm told.

+

+ All around me, all my friends are super excited for university, or college, + or appreticeship, or--post-secondary in general. They're excited about + meeting new [like-minded] people, clubs, increased autonomy, the future + promises of post-secondary education, and of course, parties (within + reason). They look to the hopeful side of things. +

+

+ Now, I have this set of coasters which I got a year or so ago at a local + market. They're meant to keep me in a more positive headspace, but half the + time they're covered up by drinks... Anyway, one of them advises me to + "focus on the good". +

+

+ And boy, do I try hard to do that. But without a job, I'm left to my + hyperfixation and burnout routine. If I'm lucky, I just start going a bit + stir-crazy from sitting in my room, doing things that I consider productive, + with only the occasional break for the loo and another cup of bean juice. + Then, it's back to work, dawn until dinner, then maybe I'll play a game + briefly, but not until working some more. +

+

+ There are of course plenty of things that I'd like to blame for why I'm like + this, but that's not the purpose of this post, nor more than speculation. +

+

+ Anyway, I'm currently writing this in a cheerful little café after an + appointment so that I take a break to process, and perhaps understand, some + emotions, while taking in this little thing. So, back to university, since + that's my academic trajectory. +

+

I'm terrified.

+

+ I've struggled a lot to plan and get course selections which will allow me + to fulfill my degree, only to fail rather badly. Seriously, I will probably + do poorly in philosophy, and it doesn't help me with just about any of my + requirements. On top of that, I'm worried about the teachers that I'll get. + It was bad enough in grade 5, and I'd had a few years to anticipate that + teacher. In university, I have no knowledge going into first year. The best + resource I have is something like RateMyProf which honestly kinda sucks and + probably makes things worse unless there's a resoundingly poor overall + rating. +

+

+ That's not to say that all of my course selections are bad; I still have the + ones within the interest of my degree and some in my hobbies, that also + contribute directly to the degree. One friend and I were also able to get + some courses together since I had to take them, and they wanted to. This may + sound silly given the struggles with course availabilities, but I promise + these decisions were made following a lot of logical consideration of both + of our degrees' completion. +

+

+ Another concern is the fact that I know so little, and I get my orientation + the day before I need to use it... that's not a lot of time to figure out if + you're missing something. That then contributes to my concerns about being + able to move around campus fast enough to not miss classes, on top of the + fatigue that I'll have from waking up at 5h30. +

+

+ Finally, because otherwise I could keep going on, are my concerns regarding + the ever-shoved-down-our-gullets AIs. I write oddly. This blog, my poetry, + and all of my past essays and analyses. My teachers can attest, especially + my grade 9 & 12 English teacher who had to consult two other teachers and + myself to fully understand + Building Up, a poem I wrote with the rust programming language for symbology. +

+

+ The concerns about having to prove that I don't use AI were bad enough in + High School. Universities have far more strict policies, which likely + utilize a guilty until proven innocent model. +

+

+ At the end of the day, I'm trying to take in the little things and not worry + too much. +

- -
-
- -

#AD

+ +
+
+ +

#AD

diff --git a/src/blog/style.scss b/src/blog/style.scss index b1d1ea1..d395b0a 100644 --- a/src/blog/style.scss +++ b/src/blog/style.scss @@ -1,3 +1 @@ @use "../partials/a_common"; - -@use "../partials/pane_main"; diff --git a/src/disclosure.html b/src/disclosure.html index c74ae29..2978064 100644 --- a/src/disclosure.html +++ b/src/disclosure.html @@ -6,294 +6,287 @@ -
- -
+ +
+
+
+

Disclosure

+

Last Edited: 01 August, 2025

+
-
-

Disclosure

-

Last Edited: 01 August, 2025

-
-
-
-
-

Website Security

-

- This website uses a number of security features, most of which - are built into your browser, to protect my and your: -

-
    -
  • Infrastructure
  • -
  • Data, and
  • -
  • Experience
  • -
-

- You can see some of the main methods that this website uses - below: -

-
-
-
-
-

Anubis

- AI Scraper Screening Utility -
+
+
+

Website Security

+

+ This website uses a number of security features, most of which are + built into your browser, to protect my and your: +

+
    +
  • Infrastructure
  • +
  • Data, and
  • +
  • Experience
  • +
+

+ You can see some of the main methods that this website uses below: +

+
+
+
+
+

Anubis

+ AI Scraper Screening Utility
-
-

- This website is protected by a screening utility - known as - Anubis. You may also have heard of this program as - BotStopper for those who - purchase a commercial license because they somehow - can't live with a cute anime girl showing up on - their websites. UNESCO notably don't have a problem - with that, and proudly present an anime girl as of - writing this. -

-

- Despite what some fools at the FSF figure, Anubis IS - NOT malware. See: +

+
+

+ This website is protected by a screening utility known + as + Anubis. You may also have heard of this program as + BotStopper for those who purchase a + commercial license because they somehow can't live with + a cute anime girl showing up on their websites. UNESCO + notably don't have a problem with that, and proudly + present an anime girl as of writing this. +

+

+ I do not have a commercial license and do not pay in any + way for Anubis. If I had money to spare, I would + actively fund the project. +

+

+ Despite what some fools at the FSF figure, Anubis IS NOT + malware. See: + I Platformed A Linux "Cyber Criminal". It does have similar behaviour due to its + proof-of-work scheme, which asks your browser to run a + throwaway calculation in an effort to block or dissuade + AI scrapers. Many, if not nearly all clients, are + subject to screening based on various filters around + your browser's user agent string. +

+

+ Additionally, if you have concerns about the legality of + my use of Anubis, please see + Anubis Issue #50 + where concerns were looked into. +

+

+ Now, if you have a moral issue with this project, you + may do one of two things (because adjusting your UA will + just make me block the UA, or add a complete catch-all + rule): +

+
    +
  1. + Don't allow JavaScript to run. (Have fun making this + work) +
  2. +
  3. Just don't use my website.
  4. +
+

+ If you experience issues with Anubis blocking you, which + presumably hasn't happened on your way to this page, you + can email me with details. DO NOT bother the main + project as it may be an issue with a screening rule that + I've invoked. +

+

+ If you do wish to raise an issue with the Anubis dev(s), + PLEASE DO NOT DO SOMETHING LIKE THIS: +

+
    +
  • I Platformed A Linux "Cyber Criminal". It does have - similar behaviour due to - its proof-of-work scheme, which asks your browser to - run a throwaway calculation in an effort to block or - dissuade AI scrapers. Many, if not nearly all - clients, are subject to screening based on various - filters around your browser's user agent string. -

    -

    - Additionally, if you have concerns about the - legality of my use of Anubis, please see - Anubis Issue #50Anubis Issue #113 - where concerns were looked into. -

    -

    - Now, if you have a moral issue with this project, - you may do one of two things (because adjusting your - UA will just make me block the UA, or add a complete - catch-all rule): -

    -
      -
    1. - Don't allow JavaScript to run. (Have fun making - this work) -
    2. -
    3. Just don't use my website.
    4. -
    -

    - If you experience issues with Anubis blocking you, - which presumably hasn't happened on your way to this - page, you can email me with details. DO NOT bother - the main project as it may be an issue with a - screening rule that I've invoked. -

    -

    - If you do wish to raise an issue with the Anubis - dev(s), PLEASE DO NOT DO SOMETHING LIKE THIS: -

    - -
-
-
-
-
-

Content Security Policy (CSP)

-
-
-
-

- This website, unlike a scary number of sites - (including google.com and microsoft.com as of - writing) has a CSP configured. This helps prevent or - mitigate a number of possible attacks including - cross-site scripting and clickjacking. -

-

- Further Reading: + +

  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSPAnubis Discussion #114 -

    -
  • -
    -
    -
    -
    -

    - HTTP Strict Transport Security (HSTS) -

    -
    -
    -
    -

    - This website has a HSTS policy which indicates to - your browser to use a secure connection when - connecting. -

    -

    - Additionally, the server will force redirect ALL - connections over to HTTPS for any browsers which do - not use this header or have a HTTPS-only mode - enabled. -

    -

    - Further Reading: + +

  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-SecurityAnubis Discussion #117 -

    -
  • + +
    -
    -
    -
    -

    Other Security Headers

    -
    -
    -
    -

    Some include:

    -
      -
    • X-Content-Type-Options
    • -
    • X-Frame-Options
    • -
    • X-XSS-Protection
    • -
    • Permissions-Policy
    • -
    • Referrer-Policy
    • -
    + +
    +
    +
    +

    Content Security Policy (CSP)

    +
    +
    +

    + This website, unlike a scary number of sites (including + google.com and microsoft.com as of writing) has a CSP + configured. This helps prevent or mitigate a number of + possible attacks including cross-site scripting and + clickjacking. +

    +

    + Further Reading: + https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP +

    -
    -
    -
    -

    Security.txt

    -
    -
    -
    -

    - This file offers information to security researchers - to silently report any issues they find so that I - can resolve them. -

    +
    +
    +
    +
    +

    + HTTP Strict Transport Security (HSTS) +

    +
    +
    +

    + This website has a HSTS policy which indicates to your + browser to use a secure connection when connecting. +

    +

    + Additionally, the server will force redirect ALL + connections over to HTTPS for any browsers which do not + use this header or have a HTTPS-only mode enabled. +

    +

    + Further Reading: + https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security +

    -
    + +
    +
    +
    +

    Other Security Headers

    +
    +
    +
    +

    Some include:

    +
      +
    • X-Content-Type-Options
    • +
    • X-Frame-Options
    • +
    • X-XSS-Protection
    • +
    • Permissions-Policy
    • +
    • Referrer-Policy
    • +
    +
    +
    +
    +
    +
    +

    Security.txt

    +
    +
    +
    +

    + This file offers information to security researchers to + silently report any issues they find so that I can + resolve them. +

    +
    +
    -
    -

    Cookies

    -

    - This website only leaves cookies that are required for the - website's functioning. I do not place any trackers on your - system. -

    -

    - Note: I cannot say what cookies may be left by services that I - host (such as Gitea and Web Check). For more details, please see - those projects' documentation. -

    -

    You can see all cookies that this website uses below:

    -
    -
    -
    -
    -

    Anubis

    - AI Scraper Screening Utility -
    -
    -
    -

    - This website does utilize a cookie. This cookie is - made by Anubis to keep your system from having to - pass the proof-of-work check every time you request - a resource from this site. -

    -

    - THEORETICALLY, this cookie, as with any JavaScript - cookie, - can be used to track - you. -

    -

    - HOWEVER, I do not use it for tracking, Anubis does - not use it for tracking, and there is no evidence - that 3rd parties are abusing the cookie. There are - far more attractive targets. -

    -

    - IF this becomes an issue, until the lead - developer(s) and/or community can find a solution, - Anubis will be reconfigured to send out challenges - even more frequently, and an advisory notice to wipe - your browser cookies at the end of your session will - be made. -

    -

    - Under the current configuration, Anubis' cookies are - valid for 24h. This does not mean that the cookie is - necessarily gone from your system. -

    -

    - Anubis Issue #50 - briefly looked into the possibility of abuse via the - cookie. -

    +
    +
    +

    Cookies

    +

    + This website only leaves cookies that are required for the website's + functioning. I do not place any trackers on your system. +

    +

    + Note: I cannot say what cookies may be left by services that I host + (such as Gitea and Web Check). For more details, please see those + projects' documentation. +

    +

    You can see all cookies that this website uses below:

    +
    +
    +
    +
    +

    Anubis

    + AI Scraper Screening Utility
    +
    +
    +

    + This website does utilize a cookie. This cookie is made + by Anubis to keep your system from having to pass the + proof-of-work check every time you request a resource + from this site. +

    +

    + THEORETICALLY, this cookie, as with any JavaScript + cookie, + can be used to track you. +

    +

    + HOWEVER, I do not use it for tracking, Anubis does not + use it for tracking, and there is no evidence that 3rd + parties are abusing the cookie. There are far more + attractive targets. +

    +

    + IF this becomes an issue, until the lead developer(s) + and/or community can find a solution, Anubis will be + reconfigured to send out challenges even more + frequently, and an advisory notice to wipe your browser + cookies at the end of your session will be made. +

    +

    + Under the current configuration, Anubis' cookies are + valid for 24h. This does not mean that the cookie is + necessarily gone from your system. +

    +

    + Anubis Issue #50 + briefly looked into the possibility of abuse via the + cookie. +

    -
    +
    - -
    -
    -

    #AD

    -

    #AD

    + +
    +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/400.html b/src/errors/400.html index 0c92113..8045355 100644 --- a/src/errors/400.html +++ b/src/errors/400.html @@ -6,32 +6,32 @@ -
    - -
    -
    -

    400

    + +
    +
    +
    +

    400

    Bad Request!

    -
    -

    - The server cannot or will not process this request due to apparent - client-side error or deception. -

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    + The server cannot or will not process this request due to apparent client-side + error or deception. +

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/401.html b/src/errors/401.html index 1ac1e52..4a530e3 100644 --- a/src/errors/401.html +++ b/src/errors/401.html @@ -6,27 +6,27 @@ -
    - -
    -
    -

    401

    + +
    +
    +
    +

    401

    Unauthorized!

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    +
    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/403.html b/src/errors/403.html index 10c7e7c..5998b63 100644 --- a/src/errors/403.html +++ b/src/errors/403.html @@ -6,29 +6,29 @@ -
    - -
    -
    -

    403

    + +
    +
    +
    +

    403

    Forbidden!

    -
    -

    The server is refusing to act upon your request.

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    The server is refusing to act upon your request.

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/404.html b/src/errors/404.html index 7bd62e2..c08d359 100644 --- a/src/errors/404.html +++ b/src/errors/404.html @@ -6,27 +6,27 @@ -
    - -
    -
    -

    404

    + +
    +
    +
    +

    404

    Page not found!

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    +
    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/500.html b/src/errors/500.html index b40328e..172dd47 100644 --- a/src/errors/500.html +++ b/src/errors/500.html @@ -6,29 +6,29 @@ -
    - -
    -
    -

    500

    + +
    +
    +
    +

    500

    Internal Server Error!

    -
    -

    The server has no clue WTF happened here.

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    The server has no clue WTF happened here.

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/501.html b/src/errors/501.html index 21e1b96..8452a88 100644 --- a/src/errors/501.html +++ b/src/errors/501.html @@ -6,29 +6,29 @@ -
    - -
    -
    -

    501

    + +
    +
    +
    +

    501

    Not Implemented!

    -
    -

    Whatever you just tried doing, the server doesn't know how to handle it.

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    Whatever you just tried doing, the server doesn't know how to handle it.

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/502.html b/src/errors/502.html index 73b2840..acc6526 100644 --- a/src/errors/502.html +++ b/src/errors/502.html @@ -6,29 +6,29 @@ -
    - -
    -
    -

    502

    + +
    +
    +
    +

    502

    Bad Gateway!

    -
    -

    This service may be offline.

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    This service may be offline.

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/503.html b/src/errors/503.html index 2cd5548..13bec76 100644 --- a/src/errors/503.html +++ b/src/errors/503.html @@ -6,29 +6,29 @@ -
    - -
    -
    -

    503

    + +
    +
    +
    +

    503

    Service Unavailable!

    -
    -

    The server may be overloaded or down for maintenance.

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    The server may be overloaded or down for maintenance.

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/errors/504.html b/src/errors/504.html index da31dbb..6be7184 100644 --- a/src/errors/504.html +++ b/src/errors/504.html @@ -6,32 +6,32 @@ -
    - -
    -
    -

    504

    + +
    +
    +
    +

    504

    Gateway Timeout!

    -
    -

    - The server acted as a proxy and didn't receive a timely response from the - upstream server. -

    -
    -

    Copyright (c) 2025 Olivia Brooks

    -
    -
    -

    #AD

    -

    #AD

    + +
    +

    + The server acted as a proxy and didn't receive a timely response from the + upstream server. +

    + + +
    +

    #AD

    +

    #AD

    diff --git a/src/includes/_unused_menu_entries.html b/src/includes/_unused_menu_entries.html index 01d7a30..300587e 100644 --- a/src/includes/_unused_menu_entries.html +++ b/src/includes/_unused_menu_entries.html @@ -9,3 +9,17 @@ Rebirth SMP
    + + + diff --git a/src/includes/blog_recent_posts.html b/src/includes/blog_recent_posts.html index f2c9208..d4dbd78 100644 --- a/src/includes/blog_recent_posts.html +++ b/src/includes/blog_recent_posts.html @@ -1,23 +1,23 @@ -
    -

    Recent

    -
    -
    -
    +
    +

    Recent Posts

    +
    +
    +

    Unsure U.

    09 August, 2025
    View -
    -
    -
    -
    + + +
    +

    Divergent Pathways

    29 July, 2025
    View -
    -
    + +
    diff --git a/src/includes/footer.html b/src/includes/footer.html index b164d16..dc3a308 100644 --- a/src/includes/footer.html +++ b/src/includes/footer.html @@ -1 +1,3 @@ - +
    +

    Made with love in Canada 🇨🇦

    +
    diff --git a/src/includes/nav_header.html b/src/includes/nav_header.html index e683bad..99f8bcb 100644 --- a/src/includes/nav_header.html +++ b/src/includes/nav_header.html @@ -1,5 +1,5 @@ -
    - + + -
    +

  • -
    -
    - Web Check -
    + + -
    -
    - Gitea -
    + + -
    +

  • -
  • + Disclosure
  • -
  • + Acknowledgements
  • diff --git a/src/includes/nav_quick_links.html b/src/includes/nav_quick_links.html index ff84202..0cbb832 100644 --- a/src/includes/nav_quick_links.html +++ b/src/includes/nav_quick_links.html @@ -1,18 +1,18 @@ diff --git a/src/includes/tailer.html b/src/includes/tailer.html index 59b9503..6cba5ad 100644 --- a/src/includes/tailer.html +++ b/src/includes/tailer.html @@ -1 +1 @@ -

    Copyright (c) 2025 Olivia Brooks

    +

    Copyright (c) 2025 Olivia Brooks

    diff --git a/src/index.html b/src/index.html index 368a10c..84ca4aa 100644 --- a/src/index.html +++ b/src/index.html @@ -6,41 +6,38 @@ -
    - -
    + +
    +
    +
    +

    Home

    +

    Last Edited: 03 August, 2025

    +
    -
    -

    Home

    -

    Last Edited: 03 August, 2025

    -
    -
    -

    lorem ipsum idk what else there is in this latin phrase

    -

    - Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus - ex sapien vitae pellentesque sem placerat. In id cursus mi pretium - tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. - Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis - massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper - vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra - inceptos himenaeos. -

    -
    +

    lorem ipsum idk what else there is in this latin phrase

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex + sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis + convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus + fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada + lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti + sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos. +

    - -
    -
    -

    #AD

    -

    #AD

    + +
    +
    +

    #AD

    +

    #AD

    diff --git a/src/minecraft/bearock/index.html b/src/minecraft/bearock/index.html index bc80c91..235ab18 100644 --- a/src/minecraft/bearock/index.html +++ b/src/minecraft/bearock/index.html @@ -6,24 +6,22 @@ -
    - -
    -

    This page has not yet been filled out. Sorry!

    - -
    -
    -

    #AD

    -

    #AD

    + +
    +

    This page has not yet been filled out. Sorry!

    + +
    +
    +

    #AD

    +

    #AD

    diff --git a/src/minecraft/bearock/style.scss b/src/minecraft/bearock/style.scss index 62a9a29..51b17da 100644 --- a/src/minecraft/bearock/style.scss +++ b/src/minecraft/bearock/style.scss @@ -1,3 +1 @@ @use "../../partials/a_common"; - -@use "../../partials/pane_main"; diff --git a/src/minecraft/index.html b/src/minecraft/index.html index caefac4..8da6a94 100644 --- a/src/minecraft/index.html +++ b/src/minecraft/index.html @@ -6,24 +6,22 @@ -
    - -
    -

    This page has not yet been filled out. Sorry!

    - -
    -
    -

    #AD

    -

    #AD

    + +
    +

    This page has not yet been filled out. Sorry!

    + +
    +
    +

    #AD

    +

    #AD

    diff --git a/src/minecraft/rebirth/index.html b/src/minecraft/rebirth/index.html index d986741..3845c3a 100644 --- a/src/minecraft/rebirth/index.html +++ b/src/minecraft/rebirth/index.html @@ -6,24 +6,22 @@ -
    - -
    -

    This page has not yet been filled out. Sorry!

    - -
    -
    -

    #AD

    -

    #AD

    + +
    +

    This page has not yet been filled out. Sorry!

    + +
    +
    +

    #AD

    +

    #AD

    diff --git a/src/minecraft/rebirth/style.scss b/src/minecraft/rebirth/style.scss index 62a9a29..51b17da 100644 --- a/src/minecraft/rebirth/style.scss +++ b/src/minecraft/rebirth/style.scss @@ -1,3 +1 @@ @use "../../partials/a_common"; - -@use "../../partials/pane_main"; diff --git a/src/minecraft/style.scss b/src/minecraft/style.scss index b1d1ea1..d395b0a 100644 --- a/src/minecraft/style.scss +++ b/src/minecraft/style.scss @@ -1,3 +1 @@ @use "../partials/a_common"; - -@use "../partials/pane_main"; diff --git a/src/partials/_a_chunk_list.scss b/src/partials/_a_chunk_list.scss index b1c3809..1f0ffc5 100644 --- a/src/partials/_a_chunk_list.scss +++ b/src/partials/_a_chunk_list.scss @@ -4,19 +4,19 @@ All specificities to do with Chunk Lists are a disaster. Hopefully, I will attempt to clean up this steaming pile of shit so that I don't have to deal with conflicts (.main_body .body vs. .chunk .body in particular), but we'll see. */ -.chunk_list { +.section_list { display: grid; width: 100%; - .chunk + .chunk { + > section + section { margin-top: var(--spacing-small); } - .chunk { + > section { width: inherit; - > .header { + > header { display: grid; grid-auto-flow: row; grid-template-columns: 1fr min-content; @@ -71,9 +71,19 @@ Hopefully, I will attempt to clean up this steaming pile of shit so that I don't } } +.spacer_container { + justify-content: start; + + .section_list > section > header { + background-color: var(--background-1); + + white-space: nowrap; + } +} + @media only screen and (max-width: 500px) { - .chunk_list .chunk { - > .header { + .section_list section { + > header { column-gap: var(--spacing-small); } diff --git a/src/partials/_a_colours.scss b/src/partials/_a_colours.scss new file mode 100644 index 0000000..c1d8d4d --- /dev/null +++ b/src/partials/_a_colours.scss @@ -0,0 +1,52 @@ +.red { + color: var(--accent-red); +} + +.orange { + color: var(--accent-orange); +} + +.yellow { + color: var(--accent-yellow); +} + +.green { + color: var(--accent-green); +} + +.cyan { + color: var(--accent-cyan); +} + +.blue { + color: var(--accent-blue); +} + +.indigo { + color: var(--accent-indigo); +} + +.purple { + color: var(--accent-purple); +} + +.magenta { + color: var(--accent-magenta); +} + +.pink { + color: var(--accent-pink); +} + +.white { + color: var(--white-0); +} + +.docker { + /* + Docker is protective of their colours. + https://www.docker.com/company/newsroom/media-resources/ + */ + + color: #1d63edff; +} diff --git a/src/partials/_a_common.scss b/src/partials/_a_common.scss index 383193e..4638df8 100644 --- a/src/partials/_a_common.scss +++ b/src/partials/_a_common.scss @@ -1,11 +1,9 @@ @use "a_chunk_list"; +@use "a_colours"; @use "a_footer"; @use "a_layouts"; +@use "a_pane"; @use "a_quick_links"; -@use "a_pages"; - -@use "pane_nav"; -@use "pane_spacer"; :root { // 0: Base of an element. Example: the viewport class. @@ -53,8 +51,7 @@ --border-radius-small: calc(var(--border-radius-large) / 2); --border-radius-large: 1rem; - --border-radius-leaf: var(--border-radius-small) - var(--border-radius-large); + --border-radius-leaf: var(--border-radius-small) var(--border-radius-large); --spacing-small: 0.75rem; // Previously: --spacing-horizontal --spacing-medium: 1rem; // Previously: --spacing-menu-gap @@ -68,11 +65,18 @@ --transform-scale-y: scaleY(1.15); font-size: var(--font-size-generic); + color: var(--white-1); body { background-color: var(--background-0); + + // Adds a margin otherwise for some reason. margin: 0; - color: var(--white-3); + + display: grid; + grid-auto-flow: column dense; + grid-template-columns: min-content 1fr min-content; + grid-template-areas: "nav main spacer"; } } @@ -102,47 +106,26 @@ a { font-family: var(--font-family-generic); } -.viewport { - // Adds a margin otherwise for some reason. - margin: inherit; - - display: grid; - grid-auto-flow: column dense; - grid-template-columns: min-content 1fr min-content; - grid-template-areas: "nav main spacer"; -} - @media only screen and (max-width: 500px) { :root { --spacing-large: var(--spacing-small); } - .viewport { + body { grid-auto-flow: row; grid-template-columns: none; grid-template-areas: "nav" "main" "spacer"; // Compress spacings to maximize useable area. - padding: var(--spacing-small); + // padding: var(--spacing-small); justify-items: center; } - .pane_spacer, + .pane.spacer, .footer { position: static; top: auto; left: auto; right: auto; } - - .pane_main, - .pane_blog, - .pane_error, - .pane_spacer { - margin: 0; - } -} - -.italic { - font-style: italic; } diff --git a/src/partials/_a_footer.scss b/src/partials/_a_footer.scss index 9b6939b..940158c 100644 --- a/src/partials/_a_footer.scss +++ b/src/partials/_a_footer.scss @@ -1,14 +1,17 @@ -.footer { - margin: 0; +body > footer { padding: var(--spacing-small); width: min-content; background-color: var(--background-2); - border-top-right-radius: var(--border-radius-large); + border-radius: 0 var(--border-radius-large) 0 0; font-size: 1.65vh; white-space: nowrap; position: fixed; bottom: 0; + + > p { + margin: 0; + } } diff --git a/src/partials/_a_layouts.scss b/src/partials/_a_layouts.scss index 6b93065..83e0857 100644 --- a/src/partials/_a_layouts.scss +++ b/src/partials/_a_layouts.scss @@ -3,7 +3,7 @@ grid-auto-flow: column; gap: var(--spacing-small); - .item { + > .item { padding: calc(var(--spacing-small) * 2); background-color: var(--background-1); diff --git a/src/partials/_a_pages.scss b/src/partials/_a_pages.scss deleted file mode 100644 index 3b8d357..0000000 --- a/src/partials/_a_pages.scss +++ /dev/null @@ -1,3 +0,0 @@ -@use "blog_recent_posts"; - -@use "page_resume"; diff --git a/src/partials/_a_pane.scss b/src/partials/_a_pane.scss new file mode 100644 index 0000000..20feada --- /dev/null +++ b/src/partials/_a_pane.scss @@ -0,0 +1,23 @@ +@use "pane_main"; +@use "pane_nav"; +@use "pane_spacer"; + +.pane { + margin: var(--spacing-large); +} + +@media only screen and (max-width: 500px) { + .pane { + width: 100%; + } +} + +nav.pane, +.pane.spacer { + width: min-content; + gap: var(--spacing-medium); + + position: sticky; + top: var(--spacing-large); + right: var(--spacing-large); +} diff --git a/src/partials/_a_tailer.scss b/src/partials/_a_tailer.scss deleted file mode 100644 index 4a213dd..0000000 --- a/src/partials/_a_tailer.scss +++ /dev/null @@ -1,13 +0,0 @@ -.tailer { - margin: var(--spacing-large) auto 0; - width: min-content; - - font-size: 1.65vh; - white-space: nowrap; - - background-color: var(--background-2); - border-radius: var(--border-radius-leaf); - padding: var(--spacing-small); - - text-align: center; -} diff --git a/src/partials/_blog_recent_posts.scss b/src/partials/_blog_recent_posts.scss deleted file mode 100644 index 506778d..0000000 --- a/src/partials/_blog_recent_posts.scss +++ /dev/null @@ -1,8 +0,0 @@ -.spacer_posts { - justify-content: start !important; - - .recent_posts .chunk .header { - background-color: var(--background-1); - white-space: nowrap; - } -} diff --git a/src/partials/_nav_dropdown.scss b/src/partials/_nav_dropdown.scss index 0899ae0..8ae449c 100644 --- a/src/partials/_nav_dropdown.scss +++ b/src/partials/_nav_dropdown.scss @@ -1,40 +1,44 @@ -.nav_dropdown { - > .header { +.dropdown { + > header { display: grid; grid-template-columns: 1fr min-content; align-items: center; - ion-icon { + > ion-icon { align-self: center; transition-duration: 0.25s; } } - > .body { + > ul { display: none; border-bottom-left-radius: var(--border-radius-small); border-bottom-right-radius: var(--border-radius-small); background-color: var(--background-1); + + // Remove default padding and style applied to ul for bullets. + padding: 0 var(--spacing-small); + list-style: none; } } -.nav_dropdown:hover { - > .header { +.dropdown:hover { + > header { transform: var(--transform-scale-x); - ion-icon { + > ion-icon { rotate: 90deg; transition-duration: 0.25s; } } - > .body { + > ul { display: grid; } } @media only screen and (max-width: 500px) { - .nav_dropdown > .header ion-icon { + .dropdown > header > ion-icon { margin-right: var(--padding-mobile); } } diff --git a/src/partials/_nav_header.scss b/src/partials/_nav_header.scss index 5e813f6..a2a09f1 100644 --- a/src/partials/_nav_header.scss +++ b/src/partials/_nav_header.scss @@ -1,4 +1,4 @@ -.pane_nav > .header { +nav.pane > .nav_header { display: grid; grid-template-columns: none; grid-template-areas: "logo"; @@ -17,7 +17,7 @@ } @media only screen and (max-width: 500px) { - .pane_nav > .header { + nav.pane > .nav_header { grid-template-columns: min-content 1fr min-content; grid-template-areas: "logo blank hamburger"; @@ -27,7 +27,7 @@ } } -.nav_logo { +nav .logo { grid-area: logo; font-family: var(--font-family-generic); diff --git a/src/partials/_nav_menu.scss b/src/partials/_nav_menu.scss index 9763b6e..1697a29 100644 --- a/src/partials/_nav_menu.scss +++ b/src/partials/_nav_menu.scss @@ -1,7 +1,7 @@ @use "nav_dropdown"; @use "nav_title"; -.nav_menu { +nav .menu { grid-area: menu; // Remove default padding and style applied to ul for bullets. @@ -20,39 +20,43 @@ } } -.nav_item { - // Need to force inheritence, otherwise would require - // overrides for all color states from base styling for element. - color: inherit; - text-decoration: none; +.menu { + .item { + // Need to force inheritence, otherwise would require + // overrides for all color states from base styling for element. + color: inherit; + text-decoration: none; - padding: 0 var(--spacing-small); + padding: 0 var(--spacing-small); - background-color: var(--background-2); - border-radius: var(--border-radius-small); - transition: var(--transition-fade); -} + background-color: var(--background-2); + border-radius: var(--border-radius-small); + transition: var(--transition-fade); + } -.nav_item:hover, -.nav_dropdown:hover .nav_item { - transform: var(--transform-scale-x); - transition: var(--transition-cut); - - .nav_title, - ion-icon { - color: var(--highlight-hover); + .item:hover, + .dropdown:hover .item { + transform: var(--transform-scale-x); transition: var(--transition-cut); + + .title, + ion-icon { + color: var(--highlight-hover); + transition: var(--transition-cut); + } } } @media only screen and (max-width: 500px) { - .nav_item { - padding: var(--padding-mobile); - background-color: var(--background-1); - } + .menu { + .item { + padding: var(--padding-mobile); + background-color: var(--background-1); + } - .nav_item:hover, - .nav_dropdown:hover .nav_item { - transform: none; + .item:hover, + .dropdown:hover .item { + transform: none; + } } } diff --git a/src/partials/_nav_quick_links.scss b/src/partials/_nav_quick_links.scss index 681a3eb..3c5a7e4 100644 --- a/src/partials/_nav_quick_links.scss +++ b/src/partials/_nav_quick_links.scss @@ -1,4 +1,4 @@ -.pane_nav .quick_links { +nav.pane .quick_links { grid-area: quick_links; --item-padding: 0.25rem; @@ -37,28 +37,8 @@ } } -.gitea { - color: var(--accent-green); -} - -.github { - color: var(--accent-blue); -} - -.license { - color: var(--accent-indigo); -} - -.issue_tracker { - color: var(--accent-magenta); -} - -.rss { - color: var(--accent-orange); -} - @media only screen and (max-width: 500px) { - .pane_nav .quick_links { + nav.pane .quick_links { margin-bottom: var(--spacing-small); --item-padding: var(--padding-mobile); diff --git a/src/partials/_nav_title.scss b/src/partials/_nav_title.scss index 87f8251..8e632dd 100644 --- a/src/partials/_nav_title.scss +++ b/src/partials/_nav_title.scss @@ -1,4 +1,4 @@ -.nav_title { +.menu .title { // Need to force inheritence, otherwise would require // overrides for all color states from base styling for element. color: inherit; @@ -13,7 +13,7 @@ display: block; } -.nav_title:hover { +.menu .title:hover { color: var(--highlight-hover); transition: var(--transition-cut); } diff --git a/src/partials/_page_resume.scss b/src/partials/_page_resume.scss index 967c879..3370a8d 100644 --- a/src/partials/_page_resume.scss +++ b/src/partials/_page_resume.scss @@ -1,3 +1,7 @@ +.r90 { + rotate: 90deg; +} + .pane_details { display: flex !important; flex-direction: column; @@ -11,17 +15,6 @@ } } -.spacer_contact { - justify-content: start !important; - - .contact_info .chunk .header { - background-color: var(--background-1); - - white-space: nowrap; - text-align: justify; - } -} - .about_me { padding: 0 var(--spacing-thicc) var(--spacing-small); } @@ -41,165 +34,6 @@ grid-template-columns: 60% auto; } -.software { - .three_dimensional_printing { - color: var(--accent-magenta); - } - - .android { - color: var(--accent-green); - } - - .anubis { - color: var(--accent-green); - } - - .blender { - color: var(--accent-orange); - } - - .davinci_resolve { - color: var(--accent-blue); - } - - .gimp { - color: var(--accent-magenta); - } - - .git { - color: var(--accent-orange); - } - - .ios { - color: var(--white-0); - } - - .libreoffice { - color: var(--accent-green); - } - - .linux { - color: var(--white-0); - } - - .macos { - color: var(--white-0); - } - - .ms_office { - color: var(--accent-orange); - } - - .ms_windows { - color: var(--accent-blue); - } - - .musescore { - color: var(--accent-cyan); - } - - .nextcloud { - color: var(--accent-cyan); - } - - .nginx { - color: var(--accent-green); - } - - .obs { - color: var(--white-0); - } - - .photoshop { - color: var(--accent-blue); - } - - .premiere_pro { - color: var(--accent-purple); - } - - .prusaslicer { - color: var(--accent-orange); - } - - .shopbot_control_software { - color: var(--accent-blue); - } - - .cnc_machining, - .vectric_aspire { - color: var(--accent-red); - rotate: 90deg; - } - - .zotero { - color: var(--accent-orange); - } -} - -.prog_languages { - .asciidoc { - color: var(--accent-cyan); - } - - .css { - color: var(--accent-purple); - } - - .html { - color: var(--accent-orange); - } - - .json { - color: var(--accent-cyan); - } - - .markdown { - color: var(--accent-indigo); - } - - .nginx { - color: var(--accent-green); - } - - .python { - color: var(--accent-blue); - } - - .ron { - color: var(--accent-orange); - } - - .rust { - color: var(--accent-orange); - } - - .scss { - color: var(--accent-magenta); - } - - .toml { - color: var(--accent-orange); - } - - .shell { - color: var(--accent-green); - } - - .yaml { - color: var(--accent-yellow); - } -} - -.docker { - /* - Docker is protective of their colours. - https://www.docker.com/company/newsroom/media-resources/ - */ - - color: #1d63edff; -} - @media only screen and (max-width: 500px) { .awards, .certifications, diff --git a/src/partials/_pane_blog.scss b/src/partials/_pane_blog.scss index 983ba64..efb8720 100644 --- a/src/partials/_pane_blog.scss +++ b/src/partials/_pane_blog.scss @@ -1,43 +1,14 @@ -@use "a_tailer"; - -.pane_blog { - grid-area: main; - +.pane.blog { flex: 1; flex-direction: column; - margin: var(--spacing-large); - justify-content: center; > .body { - background-color: var(--background-2); - border-radius: var(--border-radius-leaf); - padding-top: var(--spacing-small); - - > .header { - text-align: center; - padding: var(--spacing-small); - width: min-content; + padding: var(--spacing-small) 0 0; + > header { white-space: nowrap; - - margin: 0 auto; - - .title { - background-color: var(--background-1); - border-radius: var(--border-radius-leaf); - padding: var(--spacing-small); - } - - .date { - display: block; - - font-size: 0.85rem; - font-weight: normal; - font-style: italic; - font-family: var(--font-family-generic); - } } > .body { @@ -45,10 +16,6 @@ padding: 0 var(--spacing-thicc) var(--spacing-thicc); - p { - color: var(--white-1); - } - img { max-width: 100%; max-height: 65vh; @@ -61,11 +28,7 @@ } @media only screen and (max-width: 500px) { - .pane_blog { - width: 100%; - - .body > .body { - padding: var(--spacing-small); - } + .pane.blog .body > .body { + padding: var(--spacing-small); } } diff --git a/src/partials/_pane_error.scss b/src/partials/_pane_error.scss index d045015..aaba62f 100644 --- a/src/partials/_pane_error.scss +++ b/src/partials/_pane_error.scss @@ -1,25 +1,12 @@ -@use "a_tailer"; - -.pane_error { - grid-area: main; - +.pane.error { width: max-content; margin: auto; - > .body, - .tailer { - background-color: var(--background-2); - border-radius: var(--border-radius-leaf); - padding: var(--spacing-small); - - text-align: center; - } + text-align: center; } @media only screen and (max-width: 500px) { - .pane_error { - width: 100%; - + .pane.error { margin-top: var(--spacing-large); margin-bottom: var(--spacing-large); } diff --git a/src/partials/_pane_main.scss b/src/partials/_pane_main.scss index 46ab308..6ff7c43 100644 --- a/src/partials/_pane_main.scss +++ b/src/partials/_pane_main.scss @@ -1,16 +1,16 @@ -@use "a_tailer"; - -.pane_main { +main.pane { grid-area: main; - margin: var(--spacing-large); - - > .body { + > .body, + > footer { background-color: var(--background-2); border-radius: var(--border-radius-leaf); + } + + > .body { padding: var(--spacing-small); - > .header { + > header { text-align: center; padding: var(--spacing-small); width: max-content; @@ -35,16 +35,22 @@ > .body { text-align: start; + } + } - p { - color: var(--white-1); - } + > footer { + margin: var(--spacing-large) auto 0; + width: min-content; + + font-size: 1.65vh; + white-space: nowrap; + + padding: var(--spacing-small); + + text-align: center; + + > p { + margin: 0; } } } - -@media only screen and (max-width: 500px) { - .pane_main { - width: 100%; - } -} diff --git a/src/partials/_pane_nav.scss b/src/partials/_pane_nav.scss index 9d79245..26e976b 100644 --- a/src/partials/_pane_nav.scss +++ b/src/partials/_pane_nav.scss @@ -3,17 +3,15 @@ @use "nav_location"; @use "nav_quick_links"; -.pane_nav { +nav.pane { + grid-area: nav; + --padding-mobile: 0.35rem; - margin: var(--spacing-large); - - width: min-content; height: min-content; display: flex; flex-direction: column; - gap: var(--spacing-medium); position: sticky; top: var(--spacing-large); @@ -27,14 +25,12 @@ } @media only screen and (max-width: 500px) { - .pane_nav { + nav.pane { width: calc( - calc(50% - var(--spacing-large) + var(--spacing-small)) * - 2 + calc(50% - var(--spacing-large) + var(--spacing-small)) * 2 ); background-color: var(--background-2); - border-radius: var(--border-radius-leaf); padding: 0 var(--spacing-small); .nav_menu, @@ -48,11 +44,11 @@ } } - .pane_nav > #toggle:checked { - + .header { + nav.pane > #toggle:checked { + + .nav_header { color: var(--highlight-hover); - + .nav_menu { + + .menu { display: grid; + .location + .quick_links { diff --git a/src/partials/_pane_spacer.scss b/src/partials/_pane_spacer.scss index 3ae61d9..b22bb84 100644 --- a/src/partials/_pane_spacer.scss +++ b/src/partials/_pane_spacer.scss @@ -1,18 +1,10 @@ -.pane_spacer { +.pane.spacer { grid-area: spacer; - margin: var(--spacing-large); - - width: min-content; height: calc(100vh - calc(var(--spacing-large) * 2)); display: grid; grid-auto-flow: row dense; - gap: var(--spacing-medium); - - position: sticky; - top: var(--spacing-large); - right: var(--spacing-large); .spacer_container { padding: var(--spacing-small); @@ -32,8 +24,6 @@ } } -@media only screen and (max-width: 500px) { - .pane_spacer { - width: 100%; - } +.spacer_container.blog_recent_posts { + justify-content: start !important; } diff --git a/src/resume.html b/src/resume.html index 9c95dee..315bc68 100644 --- a/src/resume.html +++ b/src/resume.html @@ -7,535 +7,498 @@ -
    - -
    + +
    +
    +
    +

    Olivia Brooks

    +

    Last Edited: 08 August, 2025

    +
    -
    -

    Olivia Brooks

    -

    Last Edited: 08 August, 2025

    +
    +

    + Hello, I'm Olivia Brooks. I am a passionate, hard-working, and + dependable individual with an inate interest in sharing and expanding my + knowledge and expertise. +

    +

    + For the better part of a decade, I've specced, built, identified and + removed bottlenecks, and breathed new life into both desktops and + laptops. I have experience with all major operating systems including + Linux (which I've daily-driven for 5 years), Windows, MacOS, Android, + and iOS. +

    +

    + Over the years, my technical skills have branched to 3D printing, CNC + machining, basic CAD modelling, programming, and homelabbing. These + interests have garnered me experience with hardware and software from a + variety of vendors, architectures, and ecosystems, big and niche. +

    +

    + I have extensive experience in both leadership and non-leadership + positions across a variety of contexts. This has allowed me to develop a + wide range of skills which I draw upon daily to rapidly develop new + understandings. This additionally gives me the capacity to interact and + excel in unfamiliar situations and novel endeavours. +

    +

    + I am always willing to lend a hand where I can, no matter the learning + curve ahead. +

    +

    + I sincerely appreciate your consideration of me as a candidate, and look + forward to hearing from you. +

    -
    -
    -

    - Hello, I'm Olivia Brooks. I am a passionate, hard-working, and - dependable individual with an inate interest in sharing and - expanding my knowledge and expertise. -

    -

    - For the better part of a decade, I've specced, built, identified and - removed bottlenecks, and breathed new life into both desktops and - laptops. I have experience with all major operating systems - including Linux (which I've daily-driven for 5 years), Windows, - MacOS, Android, and iOS. -

    -

    - Over the years, my technical skills have branched to 3D printing, - CNC machining, basic CAD modelling, programming, and homelabbing. - These interests have garnered me experience with hardware and - software from a variety of vendors, architectures, and ecosystems, - big and niche. -

    -

    - I have extensive experience in both leadership and non-leadership - positions across a variety of contexts. This has allowed me to - develop a wide range of skills which I draw upon daily to rapidly - develop new understandings. This additionally gives me the capacity - to interact and excel in unfamiliar situations and novel endeavours. -

    -

    - I am always willing to lend a hand where I can, no matter the - learning curve ahead. -

    -

    - I sincerely appreciate your consideration of me as a candidate, and - look forward to hearing from you. -

    -
    - -
    -
    -

    Work History

    -
    -
    -
    -
    -

    OTHS Tech Crew

    - September 2024 - June 2025 -
    -
    -
    -

    Project Manager

    -
      -
    • - First year that the crew was entirely - student-led. -
    • -
    • Identified project scope and requirements.
    • -
    • Ensured timely completion of tasks.
    • -
    • - Coordinated crew setup and take-down efforts. -
    • -
    • - Effectively worked around live program changes - and weather patterns. -
    • -
    • Additionally handled equipment maintenance.
    • -
    • Acted as administrative liason.
    • -
    +
    +
    +

    Work History

    +
    +
    +
    +
    +

    OTHS Tech Crew

    + September 2024 - June 2025
    +
    +
    +

    Project Manager

    +
      +
    • + First year that the crew was entirely student-led. +
    • +
    • Identified project scope and requirements.
    • +
    • Ensured timely completion of tasks.
    • +
    • Coordinated crew setup and take-down efforts.
    • +
    • + Effectively worked around live program changes and + weather patterns. +
    • +
    • Additionally handled equipment maintenance.
    • +
    • Acted as administrative liason.
    • +
    -
    -
    -
    -

    Farmers' Market

    - Wee Youngn' - 2020, Summer 2023 -
    -
    -
    -

    Volunteer - Various Roles

    -
      -
    • - Started as a young child attracting customers to - a fudge stall by looking cute with divine, - glorious red hair. -
    • -
    • Handled the sale of goods.
    • -
    • - Handled the preparation of farm-grown goods. -
    • -
    • Stocked the displays.
    • -
    • - Ran the Kids' Corner activities. (Summer 2023) -
    • -
    +
    +
    +
    +
    +

    Farmers' Market

    + Wee Youngn' - 2020, Summer 2023
    +
    +
    +

    Volunteer - Various Roles

    +
      +
    • + Started as a young child attracting customers to a + fudge stall by looking cute with divine, glorious + red hair. +
    • +
    • Handled the sale of goods.
    • +
    • Handled the preparation of farm-grown goods.
    • +
    • Stocked the displays.
    • +
    • Ran the Kids' Corner activities. (Summer 2023)
    • +
    -
    -
    -
    -

    MPS Audio-Visual Club

    - September 2018 - 2020 -
    -
    -
    -

    Supervisor

    -
      -
    • Identified project scope and requirements.
    • -
    • Ensured timely completion of tasks.
    • -
    • - Coordinated crew setup and take-down efforts. -
    • -
    +
    +
    +
    +
    +

    MPS Audio-Visual Club

    + September 2018 - 2020
    +
    +
    +

    Supervisor

    +
      +
    • Identified project scope and requirements.
    • +
    • Ensured timely completion of tasks.
    • +
    • Coordinated crew setup and take-down efforts.
    • +
    -
    -
    - -
    -

    Education

    -
    -
    -
    -
    -

    Carleton University

    - September 2025 to Present - Ottawa, ON -
    -

    IN PROGRESS

    -
    -
    -

    Bachelor of Arts (Honours)

    -
      -
    • Major in Psychology
    • -
    • - [Intended] Minor in Women's and Gender Studies -
    • -
    • - Concentration in Social/Personality Psychology -
    • -
    -
    -
    -
    -
    -
    -

    Osgoode Township High School

    - September 2021 to 2025 - Ottawa, ON -
    -
    -
    -

    Gr. 9 to 12

    -
      -
    • French Immersion Studies
    • -
    -
    -
    -
    -
    -
    -

    Air Cadets, Squadron 742

    - November 2019 to September 2022 - Ottawa, - ON -
    -
    -
    -

    Sergeant

    -
      -
    • Drone Pilot Training Course (August 2022)
    • -
    • Cadet Actitivy Program (August 2022)
    • -
    • Poppy Drive (November 2021)
    • -
    • Music (June - July 2021)
    • -
    • Music (March 2021)
    • -
    • Music (August 2020)
    • -
    • Web Programming (April 2020)
    • -
    • Advanced Cybertraining Course (August 2020)
    • -
    • - Cadet Band Member (September 2020 - February - 2022) -
    • -
    -
    -
    -

    - Earlier history available by request. -

    -
    +
    -
    - -
    -

    Awards

    -
    -
    -
    -
    -

    Ontario Scholar

    - Obtained an average of at least eighty percent - in any six applicable Grade 12 courses. -
    + +
    +

    Education

    +
    +
    +
    +
    +

    Carleton University

    + September 2025 to Present - Ottawa, ON
    +

    IN PROGRESS

    +
    +
    +

    Bachelor of Arts (Honours)

    +
      +
    • Major in Psychology
    • +
    • [Intended] Minor in Women's and Gender Studies
    • +
    • Concentration in Social/Personality Psychology
    • +
    -
    -
    -
    -

    Silver Medalist

    - Average over 90% -
    -

    x2

    +
    +
    +
    +
    +

    Osgoode Township High School

    + September 2021 to 2025 - Ottawa, ON
    +
    +
    +

    Gr. 9 to 12

    +
      +
    • French Immersion Studies
    • +
    -

    - Queries about other awards available by request. -

    -
    -
    - -
    -

    Certifications and Diplomas

    -
    -
    -
    -

    Ontario Secondary School Diploma

    + +
    +
    +
    +

    Air Cadets, Squadron 742

    + November 2019 to September 2022 - Ottawa, ON
    +
    +
    +

    Sergeant

    +
      +
    • Drone Pilot Training Course (August 2022)
    • +
    • Cadet Actitivy Program (August 2022)
    • +
    • Poppy Drive (November 2021)
    • +
    • Music (June - July 2021)
    • +
    • Music (March 2021)
    • +
    • Music (August 2020)
    • +
    • Web Programming (April 2020)
    • +
    • Advanced Cybertraining Course (August 2020)
    • +
    • + Cadet Band Member (September 2020 - February 2022) +
    • +
    -
    -
    -

    DELF

    -

    Niveau B2

    -
    -
    -
    -
    -

    Red Cross Swimming

    -

    Level 10

    -
    -
    -
    -
    -

    Canadian Firearms Safety Course

    -

    PAL

    -
    -
    -

    - Queries about certifications available by request. -

    -
    + +

    Earlier history available by request.

    -
    - - -
    -

    Software

    - +
    + +
    +

    Awards

    +
    +
    +
    +
    +

    Ontario Scholar

    + Obtained an average of at least eighty percent in + any six applicable Grade 12 courses. +
    +
    +
    +
    +
    +
    +

    Silver Medalist

    + Average over 90% +
    +

    x2

    +
    +
    +

    + Queries about other awards available by request. +

    +
    +
    + +
    +

    Certifications and Diplomas

    +
    +
    +
    +

    Ontario Secondary School Diploma

    +
    +
    +
    +
    +

    DELF

    +

    Niveau B2

    +
    +
    +
    +
    +

    Red Cross Swimming

    +

    Level 10

    +
    +
    +
    +
    +

    Canadian Firearms Safety Course

    +

    PAL

    +
    +
    +

    + Queries about certifications available by request. +

    +
    +
    +
    +
    -
    -
    -
    -

    Contact Info

    -
    -
    -
    -
    -

    - Email -

    - olivia.a.brooks77@gmail.com -
    + +
    +
    +
    +

    Contact Info

    +
    +
    +
    +
    +

    + Email +

    + olivia.a.brooks77@gmail.com
    -
    -
    + +
    -
    -

    Spoken Languages

    -
    -
    -
    -
    -

    English

    - Fluent -
    +
    +
    +

    Spoken Languages

    +
    +
    +
    +
    +

    English

    + Fluent
    -
    -
    -
    -
    -

    Français

    - DELF B2 -
    + + +
    +
    +
    +

    Français

    + DELF B2
    -
    -
    + +
    -
    -

    References

    -
    -
    -
    -
    -

    By Request

    -
    +
    +
    +

    References

    +
    +
    +
    +
    +

    By Request

    -
    -
    + +
    diff --git a/src/style.scss b/src/style.scss index a10de67..461c384 100644 --- a/src/style.scss +++ b/src/style.scss @@ -1,3 +1,3 @@ @use "partials/a_common"; -@use "partials/pane_main"; +@use "partials/page_resume"; diff --git a/src/templates/blog_post.html b/src/templates/blog_post.html deleted file mode 100644 index 7b0ab27..0000000 --- a/src/templates/blog_post.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Blog Post Template | Cutieguwu - - - -
    - -
    -
    -
    -

    Blog Post Template

    -

    Posted: 01 January, 2025

    -

    Last Edited: 01 January, 2025

    -
    -
    -

    Blog Post Content

    -
    -
    - -
    -
    - -

    #AD

    -
    -
    - - - - diff --git a/src/templates/error.html b/src/templates/error.html deleted file mode 100644 index 4f72f2c..0000000 --- a/src/templates/error.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - Error Template | Cutieguwu - - - -
    - -
    -
    -

    Error Code

    -

    Error Title

    -
    -

    Error details and explaination.

    -
    - -
    -
    -

    #AD

    -

    #AD

    -
    -
    - - - - diff --git a/src/templates/main.html b/src/templates/main.html deleted file mode 100644 index 1dba0b3..0000000 --- a/src/templates/main.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - Main Template | Cutieguwu - - - -
    - -
    -
    - -
    -
    -

    #AD

    -

    #AD

    -
    -
    - - - -