Compare commits

..

55 Commits

Author SHA1 Message Date
Cutieguwu
0505c02584 Add blog post Unsure U. 2025-08-09 16:12:12 -04:00
Cutieguwu
4fdaeadf1c Update build.sh 2025-08-09 16:11:51 -04:00
Cutieguwu
33b879d2f9 Use french spelling of French. 2025-08-09 12:35:28 -04:00
Cutieguwu
d1305799eb Update resume.html 2025-08-08 16:19:46 -04:00
Cutieguwu
06e2ea3d68 Update resume. 2025-08-08 15:37:30 -04:00
Cutieguwu
3392e086b8 Fix display issues for Disclosure page. 2025-08-08 14:28:46 -04:00
Cutieguwu
f638c29272 RWD; Update a bunch of stuff which I've forgotten what it is I've done. 2025-08-08 14:26:42 -04:00
Cutieguwu
c95c1c591c Add resume. 2025-08-08 14:26:10 -04:00
Cutieguwu
244f8c7971 Clean nav menu for a bit. 2025-08-08 14:25:34 -04:00
Cutieguwu
9c6b86371b Adjust all styles for box-sizing: border-box to begin working on RWD to add Mobile support. 2025-08-03 22:33:00 -04:00
Cutieguwu
5f3a07d51f Fix Minecraft page ref. 2025-08-03 16:28:20 -04:00
Cutieguwu
45e1dc8d3e Update build.sh 2025-08-03 16:11:59 -04:00
Cutieguwu
9bb38900b5 Update build.sh 2025-08-03 16:07:10 -04:00
Cutieguwu
6843579a05 Update balloon.py 2025-08-03 15:50:16 -04:00
Cutieguwu
06622abb9c Update balloon.py 2025-08-03 15:49:23 -04:00
Cutieguwu
8b185dde35 Remove pyenv dependency. 2025-08-03 15:46:22 -04:00
Cutieguwu
d65d2e48ae Lots of styling updates and fixes. 2025-08-01 22:26:20 -04:00
Cutieguwu
b2c5c75e80 Update disclosure.html 2025-08-01 22:26:00 -04:00
Cutieguwu
92eb9ac937 Add in some stuff so that I can put the site into live beta sooner. 2025-08-01 15:17:53 -04:00
Cutieguwu
b10f25159e Update build.sh 2025-08-01 15:17:18 -04:00
Cutieguwu
4321b3839d Fixed some script issues. 2025-07-31 21:23:45 -04:00
Cutieguwu
b7465c516d Improve build.sh 2025-07-31 21:07:59 -04:00
Cutieguwu
880799c06c Review styling roots. 2025-07-31 21:07:42 -04:00
Cutieguwu
31a5a00c82 Update nav menu links; Fix #51 2025-07-31 17:21:27 -04:00
Cutieguwu
c93bbb0dff Move path for blog posts. 2025-07-31 17:20:56 -04:00
Cutieguwu
134449f1b0 Update build.sh 2025-07-31 17:17:26 -04:00
Cutieguwu
6c8a34e380 Update build.sh 2025-07-31 17:10:55 -04:00
Cutieguwu
32b45d543a Move blog root page. 2025-07-31 17:10:40 -04:00
Cutieguwu
55ced0093c Add blog to website. 2025-07-29 21:24:33 -04:00
Cutieguwu
8c8fd1eac6 Update .gitignore 2025-07-29 17:55:18 -04:00
Cutieguwu
d1fbb7bc01 Update _pane_error.scss 2025-07-29 17:55:00 -04:00
Cutieguwu
cdd5a3f4c4 Make tailer an Include. 2025-07-29 17:54:42 -04:00
Cutieguwu
a9d1d47f5d Break out Chunk Lists. 2025-07-29 17:54:01 -04:00
Cutieguwu
28c9f10d6d Fix some CSS disasters related to the tailer, Split out some common
components.
2025-07-25 14:51:58 -04:00
Cutieguwu
1cc37c5b60 Add Tailers to other pages. 2025-07-25 12:40:26 -04:00
Cutieguwu
bf3d5c673e Fix footer bounds, Fix nav position. 2025-07-25 12:39:58 -04:00
Cutieguwu
4fce30b341 Indicate default colour scheme for site on all elements. 2025-07-25 11:43:11 -04:00
Cutieguwu
b6b7690e22 Add Copyright tailer. 2025-07-25 11:38:34 -04:00
Cutieguwu
2fcc4307ad Update index.html 2025-07-24 18:39:31 -04:00
Cutieguwu
7659269b8e Complete #42, 41; Support text in Quick Links, Quick Links Cloud body. 2025-07-24 18:39:25 -04:00
Cutieguwu
0d3aa50a14 Complete #43; Introduce generic nomenclature for common partials. 2025-07-24 10:59:40 -04:00
Cutieguwu
93ecade2f4 Add scaling on hover for Quick Links; A bit of clean up. 2025-07-23 21:58:33 -04:00
Cutieguwu
9f13c31424 Complete #24-29, #31; Added some base styling for h1-6, p. 2025-07-23 21:25:24 -04:00
Cutieguwu
915423256f Resolve #39; Make footer sticky to viewport. 2025-07-23 21:19:03 -04:00
Cutieguwu
6df54559e2 Resolve #38; Fix styling of error pages. 2025-07-23 19:37:59 -04:00
Cutieguwu
0c2b2672cf Split the error styling so that it's only served to pages that need it. 2025-07-23 19:08:26 -04:00
Cutieguwu
0c9bb0436e Update the other pages with footers; Do some clean up. 2025-07-23 18:48:05 -04:00
Cutieguwu
131b5f5e55 Add Footer as an include. 2025-07-23 18:30:35 -04:00
Cutieguwu
bfcbd971ea Add var for leaf border; Switch to Liberation Sans; Scale Quick Links. 2025-07-23 18:25:48 -04:00
Cutieguwu
1f8ff1ae10 Complete #16, adding YouTube link. 2025-07-23 14:20:39 -04:00
Cutieguwu
120d7fb6b1 Complete #18. 2025-07-23 14:14:54 -04:00
Cutieguwu
6d1a530001 Complete #17 2025-07-23 14:12:30 -04:00
Cutieguwu
9995094d66 Add new accent colours; Clean up Quick Links code. 2025-07-23 13:59:41 -04:00
Cutieguwu
c0b98a1f1d Add Quick Link to report issues with the site. 2025-07-22 22:39:47 -04:00
Cutieguwu
881027b292 Clean output of build script. 2025-07-22 21:39:04 -04:00
60 changed files with 3037 additions and 589 deletions

View File

@@ -3,9 +3,7 @@ from __future__ import annotations
from dataclasses import dataclass
from types import NoneType
from typing import Optional
from icecream.icecream import print_function
from result import Result, Ok, Err
from icecream import ic
import os
import sys
@@ -49,7 +47,7 @@ class Tag:
return param_value
def write(self) -> str:
return f'<{self.value}>{self.trail if self.trail != None else ''}'
return f'<{self.value}>{self.trail if self.trail != None else ""}'
@dataclass
class HTML:
@@ -104,30 +102,27 @@ def main() -> None:
# Incorrect number of arguments
# Long help flag
# Short help flag
if len(sys.argv) != 2 or (
if len(sys.argv) != 3 or (
sys.argv[0] == '--help'
or sys.argv[0] == '-h'
):
help()
return
file_name = sys.argv[1].removeprefix('src/')
with open(str(WORK_DIR) + 'src/' + file_name, 'rt') as f:
with open(str(WORK_DIR) + sys.argv[1], 'rt') as f:
html_src = HTML(f.read())
# Patch to make sure that target paths are available.
try:
os.makedirs(str(WORK_DIR) + 'target/' + os.path.dirname(file_name))
os.makedirs(str(WORK_DIR) + os.path.dirname(sys.argv[2]))
except FileExistsError:
pass
with open(str(WORK_DIR) + 'target/' + file_name, 'w') as f:
with open(str(WORK_DIR) + sys.argv[2], 'w') as f:
f.write(html_src.write())
def help() -> None:
print('Usage: python balloon.py [OPTIONS] <SOURCE>')
print()
print('Note: balloon implicitly assumes that <SOURCE> is in src/, and should inflate into target/')
print('Usage: python balloon.py [OPTIONS] <SOURCE> <DESTINATION>')
print()
print()
print('Options:')

124
build.sh
View File

@@ -1,12 +1,13 @@
#! /usr/bin/bash
#!/usr/bin/bash
#
# I'm new to bash scripting, so give me a break.
# I know that this is probably crap, but it's cheap, dirty, and does the job.
python=~/.pyenv/versions/3.12.9/bin/python
green='\e[32m'
cyan='\e[36m'
src_prefix='src/'
# The "a" is just to make this work if no characters are present in $@
args=$@
args+=('a')
@@ -15,49 +16,107 @@ if [ $(expr length "$args") -gt 1 ]
then
args=$@
else
args='inflate style copy'
args='inflate style copy conv-img'
fi
# Cheap patch for copying in case the paths aren't present.
mkdir -p target
for x in $args
do
files=()
target_ext=''
target_opt=''
if [ "$x" == 'inflate' ]
then
echo -e "$green"Inflating...
cmd='python balloon.py'
files=(`ls src/*.html`)
files+=(`ls src/errors/*.html`)
files=(`
find src -not\
\(\
\(\
-path "src/.well-known/*" -o\
-path "src/feed/*" -o\
-path "src/img/*" -o\
-path "src/includes/*" -o\
-path "src/partials/*" -o\
-path "src/templates/*"\
\)\
-prune \)\
-a\
-type f\
-name "*.html"\
-print
`)
for html in "${files[@]}"
do
echo -e " $cyan$html -> target/"
target_ext='.html'
eval $python 'balloon.py' $html
done
action=Inflating...
elif [ "$x" == 'style' ]
then
echo -e "$green"Styling...
cmd='sass'
sass src/style.scss target/style.css
files=(`
find src -not\
\(\
\(\
-path "src/.well-known/*" -o\
-path "src/feed/*" -o\
-path "src/img/*" -o\
-path "src/includes/*" -o\
-path "src/partials/*" -o\
-path "src/templates/*"\
\)\
-prune \)\
-a\
-type f\
-name "*.scss"\
-print
`)
echo -e "$cyan"' src/style.scss -> target/style.css'
target_ext='.css'
action=Styling...
elif [ "$x" == 'copy' ]
then
echo -e "$green"Copying...
cmd='cp -R'
files=(
'.well-known/security.txt'
'img'
'robots.txt'
'src/.well-known/security.txt'
'src/feed/rss.xml'
'src/robots.txt'
)
for item in "${files[@]}"
do
echo -e "$cyan src/$item -> target/$item"
mkdir -p target/.well-known
mkdir -p target/feed
action=Copying...
elif [ "$x" == 'conv-img' ]
then
cmd='cwebp -z 9 -m 6'
files=(`find src/img -type f`)
target_ext='.webp'
target_opt='-o'
mkdir -p target/img/blog/posts
action='Converting and Copying Images...'
elif [ "$x" == 'clean' ]
then
echo -e "$green"Cleaning...
rm -R target
break
cp -R src/$item target/$item
done
else
echo -e "$green"Usage:"$cyan" build.sh [OPTIONS] [COMMAND]
echo
@@ -68,5 +127,24 @@ do
echo ' inflate Inflate the HTML source'
echo ' style Compile SCSS to CSS'
echo ' copy Copy assets to target'
echo ' clean Wipe the target dir'
break
fi
echo -e "$green$action"
for src in "${files[@]}"
do
filename=$(basename $src)
path="${src//$src_prefix}"
path="${path//$filename}"
target="target/$path${filename%.*}$target_ext"
echo -e "$cyan $src -> $target"
eval "$cmd $src $target_opt $target"
done
done
echo -e "$green"Done.

View File

@@ -2,9 +2,9 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="335mm"
width="390mm"
height="225mm"
viewBox="0 0 335 225"
viewBox="0 0 390 225"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
@@ -23,253 +23,323 @@
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
inkscape:zoom="0.7046647"
inkscape:cx="603.12373"
inkscape:cy="523.65331"
inkscape:zoom="0.7"
inkscape:cx="602.85714"
inkscape:cy="397.14286"
inkscape:window-width="1920"
inkscape:window-height="1042"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
inkscape:current-layer="layer1"
showguides="true" />
<defs
id="defs1" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Background Layer"
style="fill:#ffffff;fill-opacity:1">
inkscape:label="Background"
style="fill:#ffffff;fill-opacity:1"
inkscape:highlight-color="#ffa7ec">
<rect
style="fill:#353535;fill-opacity:1;stroke-width:0.290862"
style="fill:#353535;fill-opacity:1;stroke:none;stroke-width:0.313829"
id="rect1"
width="225"
height="335"
x="-280"
y="-55"
transform="rotate(-90,-2.9791666e-7,-55.000001)"
height="390"
x="-225"
y="7.0208336e-07"
transform="rotate(-90)"
inkscape:label="bg" />
</g>
<g
inkscape:label="Foreground Layer"
inkscape:label="Colour Swatches"
inkscape:groupmode="layer"
id="layer1"
style="fill:#ffffff;fill-opacity:1"
transform="translate(55.000001,-55.000001)">
transform="translate(55,-55.000001)"
inkscape:highlight-color="#c6ff8b">
<rect
style="fill:#f5f5f5;fill-opacity:1;stroke-width:0.246609;stroke:none;stroke-opacity:1"
style="fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-0-2"
width="50"
height="50"
x="-275"
y="170"
y="225"
transform="rotate(-90)"
inkscape:label="white-3" />
<rect
style="fill:#e5e5e5;fill-opacity:1;stroke-width:0.246609;stroke:#000000;stroke-opacity:1"
style="fill:#e5e5e5;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect3-9-3"
width="50"
height="50"
x="-220"
y="170"
x="-220.00002"
y="225"
transform="rotate(-90)"
inkscape:label="white-2" />
<rect
style="fill:#d9d9d9;fill-opacity:1;stroke-width:0.246609;stroke:#000000;stroke-opacity:1"
style="fill:#d9d9d9;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect4-3-6"
width="50"
height="50"
x="-165"
y="170"
x="-165.00002"
y="225"
transform="rotate(-90)"
inkscape:label="white-1" />
<rect
style="fill:#944db6;fill-opacity:1;display:inline;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
id="rect2"
width="50"
height="50"
x="-110"
y="225"
transform="rotate(-90)"
inkscape:label="highlight-hover" />
<rect
style="fill:#bfbfbf;fill-opacity:1;stroke-width:0.247;stroke-dasharray:none;stroke:#000000;stroke-opacity:1"
style="fill:#bfbfbf;fill-opacity:1;stroke:none;stroke-width:0.247;stroke-dasharray:none;stroke-opacity:1"
id="rect5-6-1"
width="50"
height="50"
x="-110"
y="170"
y="225"
transform="rotate(-90)"
inkscape:label="white-0" />
<rect
style="fill:#272727;fill-opacity:1;stroke-width:0.246609"
style="fill:#944db6;fill-opacity:1;display:inline;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-35"
width="50"
height="50"
x="-110"
y="280.12329"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="highlight-hover" />
<rect
style="fill:#272727;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect3-5-6"
width="50"
height="50"
x="-220"
y="115"
x="-220.00002"
y="170"
transform="rotate(-90)"
inkscape:label="block-2" />
<rect
style="fill:#1a1a1a;fill-opacity:1;stroke-width:0.246609"
style="fill:#1a1a1a;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect4-6-2"
width="50"
height="50"
x="-165"
y="115"
x="-165.00002"
y="170"
transform="rotate(-90)"
inkscape:label="block-1" />
<rect
style="fill:#0d0d0d;fill-opacity:1;stroke-width:0.246609"
style="fill:#0d0d0d;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect5-2-6"
width="50"
height="50"
x="-110"
y="115"
y="170"
transform="rotate(-90)"
inkscape:label="block-0" />
<rect
style="fill:#2a223e;fill-opacity:1;display:inline;stroke:none;stroke-width:0.246609;stroke-opacity:1"
style="display:inline;fill:#2a223e;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-3-0"
width="50"
height="50"
x="-275"
y="115"
y="170"
transform="rotate(-90)"
inkscape:label="background-4" />
<rect
style="fill:#211635;fill-opacity:1;stroke-width:0.246609"
style="fill:#211635;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect3-9"
width="50"
height="50"
x="-275"
y="60"
y="115"
transform="rotate(-90)"
inkscape:label="background-3" />
<rect
style="fill:#231833;fill-opacity:1;stroke-width:0.246609"
style="fill:#231833;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect4-3"
width="50"
height="50"
x="-220"
y="60"
x="-220.00002"
y="115"
transform="rotate(-90)"
inkscape:label="background-2" />
<rect
style="fill:#170d28;fill-opacity:1;stroke-width:0.247;stroke-dasharray:none"
style="fill:#170d28;fill-opacity:1;stroke:none;stroke-width:0.247;stroke-dasharray:none"
id="rect5-6"
width="50"
height="50"
x="-165"
y="60"
x="-165.00002"
y="115"
transform="rotate(-90)"
inkscape:label="background-1" />
<rect
style="fill:#130b21;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
style="fill:#130b21;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-0"
width="50"
height="50"
x="-110"
y="60"
y="115"
transform="rotate(-90)"
inkscape:label="background-0" />
<rect
style="display:inline;fill:#aa7ab7;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
style="fill:#ff9f9f;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect5-2"
width="50"
height="50"
x="-165.00002"
y="60"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="accent-pink" />
<rect
style="fill:#df67df;fill-opacity:1;display:inline;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect4-6-2-9"
width="50"
height="50"
x="-110"
y="60"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="accent-magenta" />
<rect
style="fill:#a355d3;fill-opacity:1;display:inline;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect4"
width="50"
height="50"
x="-275"
y="-50"
transform="rotate(-90)"
y="5.0000033"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="accent-purple" />
<rect
style="fill:#868ab7;fill-opacity:1;display:inline;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
id="rect3"
style="fill:#874ac0;fill-opacity:1;display:inline;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2"
width="50"
height="50"
x="-220"
y="-50"
transform="rotate(-90)"
inkscape:label="accent-blue" />
y="5.0000033"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="accent-indigo" />
<rect
style="fill:#ff9f9f;fill-opacity:1;stroke-width:0.246609"
id="rect5-2"
style="fill:#5f62e2;fill-opacity:1;display:inline;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect3"
width="50"
height="50"
x="-165"
y="-50"
transform="rotate(-90)"
inkscape:label="accent-pink" />
y="5.0000024"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="accent-blue" />
<rect
style="fill:#cfeb9e;fill-opacity:1;stroke-width:0.246609"
id="rect5"
style="display:inline;fill:#a7edef;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-3"
width="50"
height="50"
x="-110"
y="5.0000024"
transform="rotate(-90)"
inkscape:label="accent-cyan" />
<rect
style="fill:#c5e689;fill-opacity:1;stroke:none;stroke-width:0.246609"
id="rect5"
width="50"
height="50"
x="-275"
y="-50"
transform="rotate(-90)"
inkscape:label="accent-green" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
id="rect4-6-2-9"
width="50"
height="50"
x="-165"
y="225"
transform="rotate(-90)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect4-6"
width="50"
height="50"
x="-110"
y="5"
transform="rotate(-90)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
id="rect2-3"
width="50"
height="50"
x="-275"
y="5"
transform="rotate(-90)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
style="display:inline;fill:#e4d281;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect3-5"
width="50"
height="50"
x="-220"
y="5"
y="-50"
transform="rotate(-90)"
inkscape:label="unused" />
inkscape:label="accent-yellow" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
id="rect2-3-0-7"
width="50"
height="50"
x="-275"
y="225"
transform="rotate(-90)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
id="rect3-5-6-5"
width="50"
height="50"
x="-220"
y="225"
transform="rotate(-90)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246609;stroke-opacity:1"
style="display:inline;fill:#e18142;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect5-2-6-2"
width="50"
height="50"
x="-165"
y="5"
y="-50"
transform="rotate(-90)"
inkscape:label="accent-orange" />
<rect
style="display:inline;fill:#cb4c4c;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect4-6"
width="50"
height="50"
x="-110"
y="-50"
transform="rotate(-90)"
inkscape:label="accent-red" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-3-0-7-6"
width="50"
height="50"
x="-275"
y="280.12329"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect3-5-6-5-2"
width="50"
height="50"
x="-220"
y="280.12329"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect4-6-2-9-9"
width="50"
height="50"
x="-165"
y="280.12329"
transform="rotate(-90,4.9999999e-7,-6.2499999e-7)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect2-3-0-7"
width="50"
height="50"
x="-275"
y="60"
transform="rotate(-90)"
inkscape:label="unused" />
<rect
style="display:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.246609;stroke-opacity:1"
id="rect3-5-6-5"
width="50"
height="50"
x="-220"
y="60"
transform="rotate(-90)"
inkscape:label="unused" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Separators"
inkscape:highlight-color="#ff9254">
<path
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
d="M 112.5,57.500015 V 277.50002"
id="path1"
inkscape:label="Accent/Background"
transform="translate(55.000001,-55.000001)" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
d="M 277.5,57.499996 V 277.50001"
id="path1-9"
inkscape:label="White/CSS States"
transform="translate(55.000001,-55.000001)" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
d="M 222.5,57.500001 V 277.50001"
id="path2"
inkscape:label="Block U Background/White"
transform="translate(55.000001,-55.000001)" />
<path
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
d="M 167.5,57.500001 V 222.5 h 55"
id="path3"
sodipodi:nodetypes="cc"
inkscape:label="Background/Block"
transform="translate(55.000001,-55.000001)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

31
src/about.html Normal file
View File

@@ -0,0 +1,31 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>About | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">About</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="body"><p>This page has not yet been filled out. Sorry!</p></div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,28 +5,34 @@
<title>Acknowledgements | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">Acknowledgements</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Acknowledgements</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="body">
<p>There are currently no acknowledgements</p>
<p>In terms of security, hopefully that means I'm doing a good-ish job.</p>
<p>
I will get my thanks to various open projects in here in time, but I'm still
busy getting the basics handled.
</p>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<p>There are currently no acknowledgements</p>
<p>In terms of security, hopefully that means I'm doing a good-ish job.</p>
<p>
I will get my thanks to various open projects in here in time, but I'm still busy
getting the basics handled.
</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

40
src/blog/index.html Normal file
View File

@@ -0,0 +1,40 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Blog | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Blog</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="body">
<div class="header">
<h1 class="title">Blog</h1>
<p class="date">Last Edited: 03 August, 2025</p>
</div>
<div class="body">
<h2>I have an RSS feed!</h2>
<p>Just look for the RSS Quick Link in the Navigation pane.</p>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<include src="./includes/blog_recent_posts.html" />
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,126 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Divergent Pathways | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Blog - Divergent Pathways</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_blog">
<div class="body">
<div class="header">
<h1 class="title">Divergent Pathways</h1>
<p class="date">Posted: 29 July, 2025</p>
<p class="date">Last Edited: 29 July, 2025</p>
</div>
<div class="body">
<p>I can't say that this is how I wanted to start my blog.</p>
<p>
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.
</p>
<p>
But no. Instead, I'm starting my blog on one of the last things I ever
expected to write about.
</p>
<p>Love.</p>
<p>Or rather, the passing of it due to life.</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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).
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>Given all this, I'll probably tough it out on my own for a while.</p>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<include src="./includes/blog_recent_posts.html" />
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,125 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Unsure U. | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Blog - Unsure U.</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_blog">
<div class="body">
<div class="header">
<h1 class="title">Unsure U.</h1>
<p class="date">Posted: 08 August, 2025</p>
<p class="date">Last Edited: 08 August, 2025</p>
</div>
<div class="body">
<img
alt="A Coaster which reads 'focus on the good,' placed in front of a window."
src="/img/blog/posts/1_unsure_u.webp"
/>
<p>The little things, it's the little things that count.</p>
<p>Or so I'm told.</p>
<p>
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.
</p>
<p>
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".
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>I'm terrified.</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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
<a href="https://gitea.cutieguwu.ca/cutieguwu/falling_down_building_up"
>Building Up</a
>, a poem I wrote with the rust programming language for symbology.
</p>
<p>
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.
</p>
<p>
At the end of the day, I'm trying to take in the little things and not
worry too much.
</p>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<include src="./includes/blog_recent_posts.html" />
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,3 @@
@use "../../partials/a_common";
@use "../../partials/pane_blog";

3
src/blog/style.scss Normal file
View File

@@ -0,0 +1,3 @@
@use "../partials/a_common";
@use "../partials/pane_main";

301
src/disclosure.html Normal file
View File

@@ -0,0 +1,301 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Disclosure | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Disclosure</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="body">
<div class="header">
<h1 class="title">Disclosure</h1>
<p class="date">Last Edited: 01 August, 2025</p>
</div>
<div class="body">
<div class="layout_row">
<div class="item">
<h2 class="title">Website Security</h2>
<p>
This website uses a number of security features, most of which
are built into your browser, to protect my and your:
</p>
<ul>
<li>Infrastructure</li>
<li>Data, and</li>
<li>Experience</li>
</ul>
<p>
You can see some of the main methods that this website uses
below:
</p>
<div class="chunk_list">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Anubis</h3>
<span class="subtitle"
>AI Scraper Screening Utility</span
>
</div>
</div>
<div class="body">
<p>
This website is protected by a screening utility
known as
<a href="https://anubis.techaro.lol/" class="italic"
>Anubis</a
>. You may also have heard of this program as
<span class="italic">BotStopper</span> 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.
</p>
<p>
Despite what some fools at the FSF figure, Anubis IS
NOT malware. See:
<a
href="https://www.youtube.com/watch?v=YisGpdPjYM8"
class="italic"
>I Platformed A Linux "Cyber Criminal"</a
>. It does have
<span class="italic">similar</span> 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.
</p>
<p>
Additionally, if you have concerns about the
legality of my use of Anubis, please see
<a
href="https://github.com/TecharoHQ/anubis/issues/50"
>Anubis Issue #50</a
>
where concerns were looked into.
</p>
<p>
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):
</p>
<ol>
<li>
Don't allow JavaScript to run. (Have fun making
this work)
</li>
<li>Just don't use my website.</li>
</ol>
<p>
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.
</p>
<p>
If you do wish to raise an issue with the Anubis
dev(s), PLEASE DO NOT DO SOMETHING LIKE THIS:
</p>
<ul>
<li>
<a
href="https://github.com/TecharoHQ/anubis/issues/113"
>Anubis Issue #113</a
>
</li>
<li>
<a
href="https://github.com/TecharoHQ/anubis/discussions/114"
>Anubis Discussion #114</a
>
</li>
<li>
<a
href="https://github.com/TecharoHQ/anubis/discussions/117"
>Anubis Discussion #117</a
>
</li>
</ul>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Content Security Policy (CSP)</h3>
</div>
</div>
<div class="body">
<p>
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.
</p>
<p>
Further Reading:
<a
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP"
>https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP</a
>
</p>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">
HTTP Strict Transport Security (HSTS)
</h3>
</div>
</div>
<div class="body">
<p>
This website has a HSTS policy which indicates to
your browser to use a secure connection when
connecting.
</p>
<p>
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.
</p>
<p>
Further Reading:
<a
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security"
>https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security</a
>
</p>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Other Security Headers</h3>
</div>
</div>
<div class="body">
<p>Some include:</p>
<ul>
<li>X-Content-Type-Options</li>
<li>X-Frame-Options</li>
<li>X-XSS-Protection</li>
<li>Permissions-Policy</li>
<li>Referrer-Policy</li>
</ul>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Security.txt</h3>
</div>
</div>
<div class="body">
<p>
This file offers information to security researchers
to silently report any issues they find so that I
can resolve them.
</p>
</div>
</div>
</div>
</div>
<div class="item">
<h2 class="title">Cookies</h2>
<p>
This website only leaves cookies that are required for the
website's functioning. I do not place any trackers on your
system.
</p>
<p>
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.
</p>
<p>You can see all cookies that this website uses below:</p>
<div class="chunk_list">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Anubis</h3>
<span class="subtitle"
>AI Scraper Screening Utility</span
>
</div>
</div>
<div class="body">
<p>
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.
</p>
<p>
THEORETICALLY, this cookie, as with any JavaScript
cookie,
<span class="italic">can</span> be used to track
you.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
Under the current configuration, Anubis' cookies are
valid for 24h. This does not mean that the cookie is
necessarily gone from your system.
</p>
<p>
<a
href="https://github.com/TecharoHQ/anubis/issues/50"
>Anubis Issue #50</a
>
briefly looked into the possibility of abuse via the
cookie.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,29 +5,35 @@
<title>400 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">400</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">400</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>400</h1>
<h2>Bad Request!</h2>
<hr />
<p>
The server cannot or will not process this request due to apparent
client-side error or deception.
</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="error_pane">
<h1>400</h1>
<h2>Bad Request!</h2>
<hr />
<p>
The server cannot or will not process this request due to apparent client-side error
or deception.
</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,24 +5,30 @@
<title>401 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">401</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">401</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>401</h1>
<h2>Unauthorized!</h2>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>401</h1>
<h2>Unauthorized!</h2>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,26 +5,32 @@
<title>403 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">403</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">403</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>403</h1>
<h2>Forbidden!</h2>
<hr />
<p>The server is refusing to act upon your request.</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>403</h1>
<h2>Forbidden!</h2>
<hr />
<p>The server is refusing to act upon your request.</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,24 +5,30 @@
<title>404 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">404</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">404</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>404</h1>
<h2>Page not found!</h2>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>404</h1>
<h2>Page not found!</h2>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,26 +5,32 @@
<title>500 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">500</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">500</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>500</h1>
<h2>Internal Server Error!</h2>
<hr />
<p>The server has no clue WTF happened here.</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>500</h1>
<h2>Internal Server Error!</h2>
<hr />
<p>The server has no clue WTF happened here.</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,26 +5,32 @@
<title>501 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">501</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">501</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>501</h1>
<h2>Not Implemented!</h2>
<hr />
<p>Whatever you just tried doing, the server doesn't know how to handle it.</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>501</h1>
<h2>Not Implemented!</h2>
<hr />
<p>Whatever you just tried doing, the server doesn't know how to handle it.</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,26 +5,32 @@
<title>502 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">502</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">502</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>502</h1>
<h2>Bad Gateway!</h2>
<hr />
<p>This service may be offline.</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>502</h1>
<h2>Bad Gateway!</h2>
<hr />
<p>This service may be offline.</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,26 +5,32 @@
<title>503 | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">503</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">503</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>503</h1>
<h2>Service Unavailable!</h2>
<hr />
<p>The server may be overloaded or down for maintenance.</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>503</h1>
<h2>Service Unavailable!</h2>
<hr />
<p>The server may be overloaded or down for maintenance.</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,29 +5,35 @@
<title>Error Template | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">Error Template</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Error Template</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="body">
<h1>504</h1>
<h2>Gateway Timeout!</h2>
<hr />
<p>
The server acted as a proxy and didn't receive a timely response from the
upstream server.
</p>
</div>
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>504</h1>
<h2>Gateway Timeout!</h2>
<hr />
<p>
The server acted as a proxy and didn't receive a timely response from the upstream
server.
</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

3
src/errors/style.scss Normal file
View File

@@ -0,0 +1,3 @@
@use "../partials/a_common";
@use "../partials/pane_error";

22
src/feed/rss.xml Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Cutieguwu Yaps</title>
<link>https://www.cutieguwu.ca/</link>
<description
>Cutieguwu's blog where she discusses various things.</description>
<language>en-ca</language>
<category>Technology/IT/Life/Mental Health/Health</category>
<item>
<title>Splitting Pathways</title>
<link
>https://www.cutieguwu.ca/blog/posts/0_divergent_pathways.html</link>
<description>Discussing my struggles in love.</description>
<category>Life</category>
<category>Mental Health</category>
<category>Health</category>
</item>
</channel>
</rss>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -0,0 +1,11 @@
<!-- Minecraft -->
<li class="nav_dropdown">
<div class="dropdown_header nav_item">
<a class="nav_title" href="/minecraft/">Minecraft</a>
<ion-icon name="chevron-forward-outline"></ion-icon>
</div>
<div class="dropdown_body">
<a class="nav_title" href="/minecraft/bearock/">Bearock SMP</a>
<a class="nav_title" href="/minecraft/rebirth/">Rebirth SMP</a>
</div>
</li>

View File

@@ -0,0 +1,14 @@
<div class="spacer_container spacer_posts">
<h2>Recent</h2>
<div class="chunk_list recent_posts">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Divergent Pathways</h3>
<span class="subtitle">29 July, 2025</span>
</div>
<a href="/blog/posts/0_divergent_pathways.html" class="status"> View </a>
</div>
</div>
</div>
</div>

1
src/includes/footer.html Normal file
View File

@@ -0,0 +1 @@
<p class="footer">Made with love in Canada 🇨🇦</p>

View File

@@ -1,11 +1,9 @@
<meta charset="utf-8" />
<meta name="description" content="Cutieguwu's Official website" />
<meta
name="viewport"
content="width=device-width, height=device-height, initial-scale=1.0"
/>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0" />
<meta name="keywords" content="cutieguwu" />
<link rel="icon" type="image/x-icon" href="img/test-favicon.jpg" />
<link rel="stylesheet" type="text/css" href="style.css" />

View File

@@ -1,29 +1,21 @@
<ul class="nav_menu">
<!-- Home -->
<li class="nav_body">
<a class="nav_title" href="index.html">Home</a>
<li class="nav_item">
<a class="nav_title" href="/">Home</a>
</li>
<!-- Minecraft -->
<li class="nav_dropdown">
<div class="dropdown_header nav_body">
<p class="nav_title" href="#">Minecraft</p>
<ion-icon name="chevron-forward-outline"></ion-icon>
</div>
<div class="dropdown_body">
<a class="nav_title" href="#">Bearock SMP</a>
<a class="nav_title" href="#">Rebirth SMP</a>
</div>
<li class="nav_item">
<a class="nav_title" href="/blog/">Blog</a>
</li>
<hr />
<!-- About -->
<li class="nav_body"><a class="nav_title" href="#">About</a></li>
<li class="nav_item"><a class="nav_title" href="/about.html">About</a></li>
<!-- Pronoun Pages -->
<li class="nav_dropdown">
<a class="dropdown_header nav_body" href="https://pronouns.page/@Cutieguwu">
<a class="dropdown_header nav_item" href="https://pronouns.page/@Cutieguwu">
<p class="nav_title">Pronoun Pages</p>
<ion-icon name="chevron-forward-outline"></ion-icon>
</a>
@@ -35,13 +27,14 @@
<!-- External Links -->
<li class="nav_dropdown">
<div class="dropdown_header nav_body">
<div class="dropdown_header nav_item">
<p class="nav_title">External Links</p>
<ion-icon name="chevron-forward-outline"></ion-icon>
</div>
<div class="dropdown_body">
<a class="nav_title" href="https://github.com/Cutieguwu">Github</a>
<a class="nav_title" href="https://github.com/Cutieguwu">Github (Mirror)</a>
<a class="nav_title" href="https://www.twitch.tv/cutieguwu">Twitch</a>
<a class="nav_title" href="https://www.youtube.com/@Cutieguwu">YouTube</a>
</div>
</li>
@@ -49,7 +42,7 @@
<!-- Public Services -->
<li class="nav_dropdown">
<div class="dropdown_header nav_body">
<div class="dropdown_header nav_item">
<p class="nav_title">Public Services</p>
<ion-icon name="chevron-forward-outline"></ion-icon>
</div>
@@ -60,22 +53,22 @@
<!-- Services -->
<li class="nav_dropdown">
<div class="dropdown_header nav_body">
<div class="dropdown_header nav_item">
<p class="nav_title">Services</p>
<ion-icon name="chevron-forward-outline"></ion-icon>
</div>
<div class="dropdown_body">
<a class="nav_title" href="https://gitea.cutieguwu.ca/Cutieguwu">Gitea</a>
<a class="nav_title" href="https://jellyfin.cutieguwu.ca">Jellyfin</a>
<a class="nav_title" href="https://nextcloud.cutieguwu.ca">Nextcloud</a>
<a class="nav_title" href="https://play.cutieguwu.ca">Rebirth</a>
<a class="nav_title" href="https://zotero.cutieguwu.ca">Zotero</a>
</div>
</li>
<hr />
<!-- Website Disclosure -->
<li class="nav_body"><a class="nav_title" href="#">Website Disclosure</a></li>
<li class="nav_body"><a class="nav_title" href="acknowledgements.html">Acknowledgements</a></li>
<li class="nav_item">
<a class="nav_title" href="/disclosure.html">Disclosure</a>
</li>
<li class="nav_item">
<a class="nav_title" href="/acknowledgements.html">Acknowledgements</a>
</li>
</ul>

View File

@@ -1,17 +1,18 @@
<div class="nav_quick_links">
<div class="quick_links">
<a href="https://gitea.cutieguwu.ca/Cutieguwu/cutieguwu-site" title="Website Source">
<ion-icon
name="git-branch-outline"
class="icon_gitea"
alt="(Gitea) Website Source"
></ion-icon>
</a>
<a href="https://github.com/Cutieguwu/cutieguwu-site" title="(Mirror) Website Source">
<ion-icon name="logo-github" class="icon_github" alt="(Mirror) Website Source"></ion-icon>
<ion-icon name="git-branch-outline" alt="(Gitea) Website Source" class="gitea"></ion-icon>
</a>
<a
href="https://gitea.cutieguwu.ca/Cutieguwu/cutieguwu-site/src/branch/main/LICENSE"
title="MIT License"
><ion-icon name="book-outline" class="icon_license" alt="MIT License"></ion-icon
></a>
>
<ion-icon name="book-outline" alt="MIT License" class="license"></ion-icon>
</a>
<a href="https://gitea.cutieguwu.ca/Cutieguwu/cutieguwu-site/issues" title="Report Issues">
<ion-icon name="alert-circle-outline" alt="Report Issues" class="issue_tracker"></ion-icon>
</a>
<a href="https://www.cutieguwu.ca/feed/rss.xml" title="RSS Feed" download>
<ion-icon name="logo-rss" alt="RSS Feed" class="rss"></ion-icon>
</a>
<a class="phantom"></a>
</div>

1
src/includes/tailer.html Normal file
View File

@@ -0,0 +1 @@
<p class="tailer">Copyright (c) 2025 Olivia Brooks</p>

View File

@@ -5,24 +5,291 @@
<title>Home | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">Home</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Home</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="body">
<div class="header">
<h1 class="title">Home</h1>
<p class="date">Last Edited: 03 August, 2025</p>
</div>
<div class="body">
<p>lorem ipsum idk what else there is in this latin phrase</p>
<p>
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.
</p>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<h1>Home</h1>
<p>lorem ipsum idk what else there is in this latin phrase</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,31 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Bearock SMP | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Bearock SMP</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="main_body"><p>This page has not yet been filled out. Sorry!</p></div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,3 @@
@use "../../partials/a_common";
@use "../../partials/pane_main";

31
src/minecraft/index.html Normal file
View File

@@ -0,0 +1,31 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Minecraft | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Minecraft</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="main_body"><p>This page has not yet been filled out. Sorry!</p></div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,31 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Rebirth SMP | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Rebirth SMP</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="main_body"><p>This page has not yet been filled out. Sorry!</p></div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -0,0 +1,3 @@
@use "../../partials/a_common";
@use "../../partials/pane_main";

3
src/minecraft/style.scss Normal file
View File

@@ -0,0 +1,3 @@
@use "../partials/a_common";
@use "../partials/pane_main";

View File

@@ -0,0 +1,85 @@
/*
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 {
display: grid;
width: 100%;
.chunk + .chunk {
margin-top: var(--spacing-horizontal);
}
.chunk {
width: inherit;
> .header {
display: grid;
grid-auto-flow: row;
grid-template-columns: 1fr min-content;
column-gap: calc(var(--spacing-horizontal) * 2);
background-color: var(--background-3);
border-radius: var(--border-radius-leaf);
padding: var(--spacing-horizontal);
text-align: start;
width: inherit;
.name,
.subtitle,
.status {
margin: inherit;
}
.subtitle {
display: inline-block;
font-size: 0.85rem;
font-weight: normal;
font-style: italic;
font-family: var(--font-family-generic);
}
.status {
align-self: center;
white-space: nowrap;
text-decoration: none;
font-size: 1.17rem;
font-weight: bold;
}
}
> .body {
padding: 0 calc(var(--spacing-horizontal) * 2);
ul {
font-family: var(--font-family-generic);
li + li {
margin-top: 0.5em;
}
}
}
}
}
@media only screen and (max-width: 500px) {
.chunk_list .chunk {
> .header {
column-gap: var(--spacing-horizontal);
}
> .body {
/* Collapse the L/R padding to maximize usable space */
padding: 0;
}
}
}

148
src/partials/_a_common.scss Normal file
View File

@@ -0,0 +1,148 @@
@use "a_chunk_list";
@use "a_footer";
@use "a_layouts";
@use "a_quick_links";
@use "a_pages";
@use "pane_nav";
@use "pane_spacer";
:root {
/*
0: Base of an element. Example: the viewport class.
The higher the integer, the lighter the colour, the higher it should be visually, meaning more nested in the cascade.
Odd numbers should be used as intermediate colours between the fore and back elements. Excepting white--white's special.
Eg. Current dropdown menu.
*/
font-size: var(--font-size-generic);
--accent-red: #cb4c4cff;
--accent-orange: #e18142ff;
--accent-yellow: #e4d281ff;
--accent-green: #c5e689ff;
--accent-cyan: #a7edefff;
--accent-blue: #5f62e2ff;
--accent-indigo: #874ac0ff;
--accent-purple: #a355d3ff;
--accent-magenta: #df67dfff;
--accent-pink: #ff9f9fff;
--background-0: #130b21ff;
--background-1: #170d28ff;
--background-2: #231833ff;
--background-3: #211635ff;
--background-4: #2a223eff;
--block-0: #0d0d0dff;
--block-1: #1a1a1aff;
--block-2: #272727ff;
--highlight-hover: #944db6ff;
--white-0: #bfbfbfff;
--white-1: #d9d9d9ff;
--white-2: #e5e5e5ff;
--white-3: #f5f5f5ff;
--font-size-generic: 1.85vh;
--font-family-generic: "Liberation Sans", Arial, Sans-Serif;
--font-family-title: "Liberation Serif", Arial, Sans-Serif;
--border-radius-small: calc(var(--border-radius-large) / 2);
--border-radius-large: 1rem;
--border-radius-leaf: var(--border-radius-small)
var(--border-radius-large);
--margin-pane: 1.5rem;
--spacing-horizontal: 0.75rem;
--spacing-menu-gap: 1rem;
--spacing-thicc: calc(var(--margin-pane) * 4);
--transition-fade: 0.4s ease-out;
--transition-cut: none;
--transform-scale-x: scaleX(1.15);
--transform-scale-y: scaleY(1.15);
body {
background-color: var(--background-0);
margin: 0;
color: var(--white-3);
}
}
* {
color-scheme: dark;
box-sizing: border-box;
/* outline: 1px solid red; */
}
h1 {
font-size: 3.3vh;
font-family: var(--font-family-title);
}
h2 {
font-size: 2.5vh;
font-family: var(--font-family-title);
}
h3,
h4,
h5,
h6,
p,
a {
font-family: var(--font-family-generic);
}
ion-icon {
width: 1rem;
height: 1rem;
}
.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;
}
@media only screen and (max-width: 500px) {
.viewport {
grid-auto-flow: row;
grid-template-columns: none;
/* Compress spacings to maximize useable area. */
padding: var(--spacing-horizontal);
justify-items: center;
}
.pane_nav,
.pane_spacer,
.footer {
position: static;
top: auto;
left: auto;
right: auto;
}
.pane_nav,
.pane_main,
.pane_blog,
.pane_error,
.pane_spacer {
margin: 0;
}
}
.italic {
font-style: italic;
}

View File

@@ -0,0 +1,14 @@
.footer {
margin: 0;
padding: var(--spacing-horizontal);
width: min-content;
background-color: var(--background-2);
border-top-right-radius: var(--border-radius-large);
font-size: 1.65vh;
white-space: nowrap;
position: fixed;
bottom: 0;
}

View File

@@ -0,0 +1,26 @@
.layout_row {
display: grid;
grid-auto-flow: column;
gap: var(--spacing-horizontal);
.item {
padding: calc(var(--spacing-horizontal) * 2);
background-color: var(--background-1);
border-radius: var(--border-radius-leaf);
.title {
text-align: center;
}
}
}
.layout_row + .layout_row {
margin-top: var(--spacing-horizontal);
}
@media only screen and (max-width: 500px) {
.layout_row {
grid-auto-flow: row;
}
}

View File

@@ -0,0 +1,3 @@
@use "blog_recent_posts";
@use "page_resume";

View File

@@ -0,0 +1,34 @@
.quick_links {
--item-padding: 0.35rem;
--item-size: calc(1rem + var(--item-padding));
display: flex;
flex-wrap: wrap;
justify-content: center;
> a,
> div {
display: grid;
background-color: var(--background-3);
border-radius: var(--border-radius-leaf);
padding: var(--item-padding);
gap: var(--item-padding);
align-items: center;
justify-content: center;
grid-auto-flow: column;
text-decoration: none;
color: var(--white-1);
> * {
margin: 0;
padding: 0;
font-size: var(--font-size-generic);
}
}
}

View File

@@ -0,0 +1,13 @@
.tailer {
margin: var(--margin-pane) 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-horizontal);
text-align: center;
}

View File

@@ -0,0 +1,8 @@
.spacer_posts {
justify-content: start !important;
.recent_posts .chunk .header {
background-color: var(--background-1);
white-space: nowrap;
}
}

View File

@@ -2,8 +2,7 @@
margin: 0;
padding: var(--spacing-horizontal);
background-color: var(--background-2);
border-radius: var(--border-radius-small)
var(--border-radius-large);
border-radius: var(--border-radius-leaf);
text-align: center;
.location_header {
@@ -13,6 +12,5 @@
.location_page {
margin: 0;
padding: 0;
}
}

View File

@@ -20,8 +20,10 @@
}
}
.nav_body {
/* Need to force inheritence, otherwise <a> would require overrides for all color states from base styling for element. */
.nav_item {
/*
Need to force inheritence, otherwise <a> would require overrides for all color states from base styling for element.
*/
color: inherit;
text-decoration: none;
@@ -30,8 +32,8 @@
transition: var(--transition-fade);
}
.nav_body:hover,
.nav_dropdown:hover .nav_body {
.nav_item:hover,
.nav_dropdown:hover .nav_item {
transform: var(--transform-scale-x);
transition: var(--transition-cut);

View File

@@ -1,54 +1,62 @@
.nav_quick_links {
--cols: 5;
--item-padding: 0.35rem;
--item-edge-length: 1.25rem;
--item-size: calc(
var(--item-edge-length) + calc(var(--item-padding) * 2)
);
.pane_nav .quick_links {
--item-padding: 0.25rem;
justify-content: space-between;
/*
display: flex;
flex-flow: row wrap;
align-items: center;
margin-right: auto;
To colour the icons, apply inline styling.
*/
display: grid;
grid-template-columns:
var(--item-size) var(--item-size) var(--item-size)
var(--item-size) var(--item-size);
align-items: center;
gap: var(--spacing-menu-gap)
calc(
calc(100% - calc(var(--item-size) * var(--cols))) /
calc(var(--cols) - 1)
);
a {
width: var(--item-size);
height: var(--item-size);
background-color: var(--background-2);
* {
width: var(--item-edge-length);
height: var(--item-edge-length);
padding: var(--item-padding);
transition: var(--transition-fade);
background-color: var(--background-2);
border-radius: var(--border-radius-small)
var(--border-radius-large);
}
.icon_gitea {
color: var(--accent-green);
}
.icon_github {
color: var(--accent-blue);
}
.icon_license {
color: var(--accent-purple);
ion-icon {
width: var(--item-size);
}
}
a:hover {
transition: var(--transition-cut);
transform: var(--transform-scale-x) var(--transform-scale-y);
}
.phantom {
width: calc(var(--item-size) + calc(var(--item-padding) * 2));
/*
Fake hiding the element.
Due to how flexboxes function, settings `display: none`
will result in the box just scaling as if the element
never existed.
phantom needs to sit beside a element in hierarchy, otherwise
phantom will inherit from a like this:
.pane_nav > .quick_links > a > .phantom
*/
background-color: inherit;
}
}
.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);
}

View File

@@ -9,7 +9,6 @@
margin: inherit;
padding: 0 var(--spacing-horizontal);
transition: var(--transition-fade);
text-transform: uppercase;
display: block;
}

View File

@@ -0,0 +1,212 @@
.pane_details {
display: flex !important;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
.spacer_container {
height: min-content !important;
width: 100%;
padding-top: 0 !important;
}
}
.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-horizontal);
}
.early_history {
justify-self: center;
}
.prog_languages,
.software {
* {
margin: 0.5rem;
}
}
.software_row {
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,
.education,
.prog_languages,
.software,
.work_history {
width: 100%;
}
}

View File

@@ -0,0 +1,61 @@
@use "a_tailer";
.pane_blog {
flex: 1;
flex-direction: column;
margin: var(--margin-pane);
justify-content: center;
> .body {
background-color: var(--background-2);
border-radius: var(--border-radius-leaf);
padding-top: var(--spacing-horizontal);
> .header {
text-align: center;
padding: var(--spacing-horizontal);
width: min-content;
white-space: nowrap;
margin: 0 auto;
.title {
background-color: var(--background-1);
border-radius: var(--border-radius-leaf);
padding: var(--spacing-horizontal);
}
.date {
display: block;
font-size: 0.85rem;
font-weight: normal;
font-style: italic;
font-family: var(--font-family-generic);
}
}
> .body {
text-align: start;
padding: 0 var(--spacing-thicc) var(--spacing-thicc);
p {
color: var(--white-1);
}
}
}
}
@media only screen and (max-width: 500px) {
.pane_blog {
width: 100%;
.body > .body {
padding: var(--spacing-horizontal);
}
}
}

View File

@@ -1,6 +1,25 @@
@use "a_tailer";
.pane_error {
width: max-content;
margin: auto; /* center object */
text-align: center;
background-color: var(--background-2);
> .body,
.tailer {
background-color: var(--background-2);
border-radius: var(--border-radius-leaf);
padding: var(--spacing-horizontal);
text-align: center;
}
}
@media only screen and (max-width: 500px) {
.pane_error {
width: 100%;
margin-top: var(--margin-pane);
margin-bottom: var(--margin-pane);
}
}

View File

@@ -1,10 +1,48 @@
.pane_main {
flex: 1;
text-align: center;
background-color: var(--background-2);
margin: var(--margin-pane);
padding: 0;
@use "a_tailer";
border-radius: var(--border-radius-small)
var(--border-radius-large);
.pane_main {
margin: var(--margin-pane);
> .body {
background-color: var(--background-2);
border-radius: var(--border-radius-leaf);
padding: var(--spacing-horizontal);
> .header {
text-align: center;
padding: var(--spacing-horizontal);
width: max-content;
margin: 0 auto;
.title {
background-color: var(--background-1);
border-radius: var(--border-radius-leaf);
padding: var(--spacing-horizontal);
}
.date {
display: block;
font-size: 0.85rem;
font-weight: normal;
font-style: italic;
font-family: var(--font-family-generic);
}
}
> .body {
text-align: start;
p {
color: var(--white-1);
}
}
}
}
@media only screen and (max-width: 500px) {
.pane_main {
width: 100%;
}
}

View File

@@ -4,14 +4,26 @@
@use "nav_quick_links";
.pane_nav {
--spacing-horizontal: 0.75rem;
--transform-scale-x: scaleX(1.15);
margin: var(--margin-pane);
padding: 0;
gap: var(--spacing-menu-gap);
width: min-content;
align-content: start;
height: min-content;
display: grid;
grid-auto-flow: row;
grid-template-rows: repeat(4, min-content);
gap: var(--spacing-menu-gap);
align-content: start;
position: sticky;
top: var(--margin-pane);
left: var(--margin-pane);
color: var(--accent-pink);
}
@media only screen and (max-width: 500px) {
.pane_nav {
width: 75%;
}
}

View File

@@ -1,25 +1,25 @@
.pane_spacer {
margin: var(--margin-pane);
padding: 0;
width: 10vw;
width: min-content;
height: calc(100vh - calc(var(--margin-pane) * 2));
display: grid;
grid-auto-flow: row;
grid-auto-flow: row dense;
gap: var(--spacing-menu-gap);
.spacer_container {
margin: 0;
background-color: var(--background-2);
height: calc(
50vh - var(--margin-pane) - calc(
var(--spacing-menu-gap) / 2
)
);
flex: 1;
border-radius: var(--border-radius-small)
var(--border-radius-large);
position: sticky;
top: var(--margin-pane);
right: var(--margin-pane);
.spacer_container {
padding: var(--spacing-horizontal);
background-color: var(--background-2);
height: 100%;
border-radius: var(--border-radius-leaf);
/* Vertical Text Align */
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
@@ -29,3 +29,9 @@
}
}
}
@media only screen and (max-width: 500px) {
.pane_spacer {
width: 100%;
}
}

545
src/resume.html Normal file
View File

@@ -0,0 +1,545 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Resume | Cutieguwu</title>
<meta name="robots" content="noindex" />
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Resume</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="body">
<div class="header">
<h1 class="title">Olivia Brooks</h1>
<p class="date">Last Edited: 08 August, 2025</p>
</div>
<div class="body">
<div class="about_me">
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
I am always willing to lend a hand where I can, no matter the
learning curve ahead.
</p>
<p>
I sincerely appreciate your consideration of me as a candidate, and
look forward to hearing from you.
</p>
</div>
<!--
Add a table of contents?... or just one disguised as a few shortcuts.
Also make this look less long by making chunks into dropdowns.
-->
<div class="layout_row">
<div class="item work_history">
<h2 class="title">Work History</h2>
<div class="chunk_list">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">OTHS Tech Crew</h3>
<span class="subtitle"
>September 2024 - June 2025</span
>
</div>
</div>
<div class="body">
<p>Project Manager</p>
<ul>
<li>
First year that the crew was entirely
student-led.
</li>
<li>Identified project scope and requirements.</li>
<li>Ensured timely completion of tasks.</li>
<li>
Coordinated crew setup and take-down efforts.
</li>
<li>
Effectively worked around live program changes
and weather patterns.
</li>
<li>Additionally handled equipment maintenance.</li>
<li>Acted as administrative liason.</li>
</ul>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Farmers' Market</h3>
<span class="subtitle"
>Wee Youngn' - 2020, Summer 2023</span
>
</div>
</div>
<div class="body">
<p>Volunteer - Various Roles</p>
<ul>
<li>
Started as a young child attracting customers to
a fudge stall by looking cute with divine,
glorious red hair.
</li>
<li>Handled the sale of goods.</li>
<li>
Handled the preparation of farm-grown goods.
</li>
<li>Stocked the displays.</li>
<li>
Ran the Kids' Corner activities. (Summer 2023)
</li>
</ul>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">MPS Audio-Visual Club</h3>
<span class="subtitle">September 2018 - 2020</span>
</div>
</div>
<div class="body">
<p>Supervisor</p>
<ul>
<li>Identified project scope and requirements.</li>
<li>Ensured timely completion of tasks.</li>
<li>
Coordinated crew setup and take-down efforts.
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Education -->
<div class="item education">
<h2 class="title">Education</h2>
<div class="chunk_list">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Carleton University</h3>
<span class="subtitle"
>September 2025 to Present - Ottawa, ON</span
>
</div>
<h3 class="status">IN PROGRESS</h3>
</div>
<div class="body">
<p>Bachelor of Arts (Honours)</p>
<ul>
<li>Major in Psychology</li>
<li>
[Intended] Minor in Women's and Gender Studies
</li>
<li>
Concentration in Social/Personality Psychology
</li>
</ul>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Osgoode Township High School</h3>
<span class="subtitle"
>September 2021 to 2025 - Ottawa, ON</span
>
</div>
</div>
<div class="body">
<p>Gr. 9 to 12</p>
<ul>
<li>French Immersion Studies</li>
</ul>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Air Cadets, Squadron 742</h3>
<span class="subtitle"
>November 2019 to September 2022 - Ottawa,
ON</span
>
</div>
</div>
<div class="body">
<p>Sergeant</p>
<ul>
<li>Drone Pilot Training Course (August 2022)</li>
<li>Cadet Actitivy Program (August 2022)</li>
<li>Poppy Drive (November 2021)</li>
<li>Music (June - July 2021)</li>
<li>Music (March 2021)</li>
<li>Music (August 2020)</li>
<li>Web Programming (April 2020)</li>
<li>Advanced Cybertraining Course (August 2020)</li>
<li>
Cadet Band Member (September 2020 - February
2022)
</li>
</ul>
</div>
</div>
<h3 class="early_history">
Earlier history available by request.
</h3>
</div>
</div>
</div>
<div class="layout_row">
<!-- Awards -->
<div class="item awards">
<h2 class="title">Awards</h2>
<div class="chunk_list">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Ontario Scholar</h3>
<span class="subtitle"
>Obtained an average of at least eighty percent
in any six applicable Grade 12 courses.</span
>
</div>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Silver Medalist</h3>
<span class="subtitle">Average over 90%</span>
</div>
<h3 class="status">x2</h3>
</div>
</div>
<h3 class="early_history">
Queries about other awards available by request.
</h3>
</div>
</div>
<!-- Certifications -->
<div class="item certifications">
<h2 class="title">Certifications and Diplomas</h2>
<div class="chunk_list">
<div class="chunk">
<div class="header">
<h3 class="name">Ontario Secondary School Diploma</h3>
</div>
</div>
<div class="chunk">
<div class="header">
<h3 class="name">DELF</h3>
<h3 class="status">Niveau B2</h3>
</div>
</div>
<div class="chunk">
<div class="header">
<h3 class="name">Red Cross Swimming</h3>
<h3 class="status">Level 10</h3>
</div>
</div>
<div class="chunk">
<div class="header">
<h3 class="name">Canadian Firearms Safety Course</h3>
<h3 class="status">PAL</h3>
</div>
</div>
<h3 class="early_history">
Queries about certifications available by request.
</h3>
</div>
</div>
</div>
<div class="layout_row software_row">
<!-- Software and Prog. Languages -->
<!-- Software -->
<div class="item software">
<h2 class="title">Software</h2>
<div class="quick_links">
<div>
<ion-icon
name="cube-outline"
class="three_dimensional_printing"
></ion-icon>
<p>3D Printing</p>
</div>
<div>
<ion-icon name="logo-android" class="android"></ion-icon>
<p>Android</p>
</div>
<a href="https://anubis.techaro.lol/">
<ion-icon name="globe-outline" class="anubis"></ion-icon>
<p>Anubis</p>
</a>
<a href="https://www.blender.org/">
<ion-icon name="cube-outline" class="blender"></ion-icon>
<p>Blender</p>
</a>
<div>
<ion-icon
name="play-skip-forward-outline"
class="vectric_aspire"
></ion-icon>
<p>CNC Machining</p>
</div>
<a href="https://www.docker.com/">
<ion-icon name="logo-docker" class="docker"></ion-icon>
<p>Docker</p>
</a>
<a href="https://www.gimp.org/">
<ion-icon name="image-outline" class="gimp"></ion-icon>
<p>GIMP</p>
</a>
<a href="https://git-scm.com/">
<ion-icon name="git-branch-outline" class="git"></ion-icon>
<p>Git</p>
</a>
<a href="https://gitea.cutieguwu.ca">
<ion-icon name="cafe-outline" class="gitea"></ion-icon>
<p>Gitea</p>
</a>
<a href="https://github.com/Cutieguwu">
<ion-icon name="logo-github" class="github"></ion-icon>
<p>Github</p>
</a>
<a href="https://www.apple.com/ca/os/ios/">
<ion-icon name="logo-apple" class="ios"></ion-icon>
<p>iOS</p>
</a>
<a href="https://www.libreoffice.org/">
<ion-icon
name="document-outline"
class="libreoffice"
></ion-icon>
<p>LibreOffice</p>
</a>
<a href="https://www.kernel.org/category/about.html">
<ion-icon name="logo-tux" class="linux"></ion-icon>
<p>Linux</p>
</a>
<a href="https://www.apple.com/ca/os/macos/">
<ion-icon name="logo-apple" class="macos"></ion-icon>
<p>MacOS</p>
</a>
<a href="https://www.office.com/">
<ion-icon name="apps-outline" class="ms_office"></ion-icon>
<p>MS Office</p>
</a>
<a href="https://www.microsoft.com/en-ca/windows">
<ion-icon name="logo-windows" class="ms_windows"></ion-icon>
<p>MS Windows</p>
</a>
<a href="https://musescore.org/en">
<ion-icon name="musical-notes" class="musescore"></ion-icon>
<p>MuseScore Studio</p>
</a>
<a href="https://nextcloud.com/">
<ion-icon name="apps-outline" class="nextcloud"></ion-icon>
<p>Nextcloud</p>
</a>
<a href="https://nginx.org/en/">
<ion-icon name="globe-outline" class="nginx"></ion-icon>
<p>Nginx</p>
</a>
<a href="https://obsproject.com/">
<ion-icon name="aperture-outline" class="obs"></ion-icon>
<p>OBS</p>
</a>
<a href="https://www.adobe.com/ca/products/photoshop.html">
<ion-icon name="image-outline" class="photoshop"></ion-icon>
<p>Photoshop</p>
</a>
<a href="https://www.prusa3d.com/page/prusaslicer_424/">
<ion-icon
name="layers-outline"
class="prusaslicer"
></ion-icon>
<p>PrusaSlicer</p>
</a>
<a
href="https://shopbottools.com/support-resources/control-software/"
>
<ion-icon
name="keypad-outline"
class="shopbot_control_software"
></ion-icon>
<p>ShopBot Control Software</p>
</a>
<a href="https://www.vectric.com/products/aspire/">
<ion-icon
name="play-skip-forward-outline"
class="vectric_aspire"
></ion-icon>
<p>Vectric Aspire</p>
</a>
<a href="https://www.zotero.org/">
<ion-icon
name="document-attach-outline"
class="zotero"
></ion-icon>
<p>Zotero</p>
</a>
</div>
</div>
<!-- Prog. Languages -->
<div class="item prog_languages">
<h2 class="title">Prog. Languages</h2>
<div class="quick_links">
<a href="https://asciidoc.org/">
<ion-icon
name="document-text-outline"
class="asciidoc"
></ion-icon>
<p>AsciiDoc</p>
</a>
<a href="https://developer.mozilla.org/en-US/docs/Web/CSS">
<ion-icon name="logo-css3" class="css"></ion-icon>
<p>CSS</p>
</a>
<a href="https://docs.docker.com/compose/">
<ion-icon name="logo-docker" class="docker"></ion-icon>
<p>Docker Compose</p>
</a>
<a href="https://developer.mozilla.org/en-US/docs/Web/HTML">
<ion-icon name="logo-html5" class="html"></ion-icon>
<p>HTML</p>
</a>
<a href="https://www.json.org/json-en.html">
<ion-icon name="shapes-outline" class="json"></ion-icon>
<p>JSON</p>
</a>
<a href="https://www.markdownguide.org/">
<ion-icon name="logo-markdown" class="markdown"></ion-icon>
<p>Markdown</p>
</a>
<a href="https://nginx.org/en/docs/">
<ion-icon name="globe-outline" class="nginx"></ion-icon>
<p>Nginx</p>
</a>
<a href="https://www.python.org/">
<ion-icon name="logo-python" class="python"></ion-icon>
<p>Python</p>
</a>
<a href="https://github.com/ron-rs/ron">
<ion-icon name="shapes-outline" class="ron"></ion-icon>
<p>RON</p>
</a>
<a href="https://www.rust-lang.org/">
<ion-icon name="cog-outline" class="rust"></ion-icon>
<p>Rust</p>
</a>
<a href="https://sass-lang.com/">
<ion-icon name="logo-sass" class="scss"></ion-icon>
<p>SCSS</p>
</a>
<a href="https://toml.io/en/">
<ion-icon name="shapes-outline" class="toml"></ion-icon>
<p>TOML</p>
</a>
<a href="https://www.gnu.org/software/bash/manual/bash.html">
<ion-icon name="terminal-outline" class="shell"></ion-icon>
<p>[Bash] Shell</p>
</a>
<a href="https://yaml.org/">
<ion-icon name="shapes-outline" class="yaml"></ion-icon>
<p>YAML</p>
</a>
</div>
</div>
</div>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer pane_details">
<div class="spacer_container spacer_contact">
<h2>Contact Info</h2>
<div class="chunk_list contact_info">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">
<a href="mailto:olivia.a.brooks77@gmail.com"> Email </a>
</h3>
<span class="subtitle">olivia.a.brooks77@gmail.com</span>
</div>
</div>
</div>
</div>
</div>
<div class="spacer_container spacer_contact">
<h2>Spoken Languages</h2>
<div class="chunk_list contact_info">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">English</h3>
<span class="subtitle">Fluent</span>
</div>
</div>
</div>
<div class="chunk">
<div class="header">
<div>
<h3 class="name">Français</h3>
<span class="subtitle">DELF B2</span>
</div>
</div>
</div>
</div>
</div>
<div class="spacer_container spacer_contact">
<h2>References</h2>
<div class="chunk_list contact_info">
<div class="chunk">
<div class="header">
<div>
<h3 class="name">By Request</h3>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -1,83 +1,3 @@
@use "partials/a_common";
@use "partials/pane_main";
@use "partials/pane_nav";
@use "partials/pane_spacer";
@use "partials/pane_error";
:root {
/*
0: Base of an element. Example: the viewport class.
The higher the integer, the lighter the colour, the higher it should be visually, meaning more nested in the cascade.
Odd numbers should be used as intermediate colours between the fore and back elements. Excepting white--white's special.
Eg. Current dropdown menu.
*/
font-size: var(--font-size-generic);
--accent-green: #cfeb9eff;
--accent-pink: #ff9f9fff;
--accent-blue: #868ab7ff;
--accent-purple: #aa7ab7ff;
--background-0: #130b21ff;
--background-1: #170d28ff;
--background-2: #231833ff;
--background-3: #211635ff;
--background-4: #2a223eff;
--block-0: #0d0d0dff;
--block-1: #1a1a1aff;
--block-2: #272727ff;
--highlight-hover: #944db6ff;
--white-0: #bfbfbfff;
--white-1: #d9d9d9ff;
--white-2: #e5e5e5ff;
--white-3: #f5f5f5ff;
--font-size-generic: 1.65vh;
--font-family-generic: Arial, Sans-Serif, Helvetica;
--transition-fade: 0.4s ease-out;
--transition-cut: none;
--border-radius-large: 1rem;
--border-radius-small: calc(var(--border-radius-large) / 2);
--margin-pane: 1.5rem;
--spacing-menu-gap: 1rem;
}
/*
* {
outline: 1px solid red;
}
*/
h1 {
font-size: 3.3vh;
}
h2 {
font-size: 2.5vh;
}
ion-icon {
width: 1rem;
height: 1rem;
}
.viewport {
/* Adds a margin otherwise for some reason. */
margin: 0;
background-color: var(--background-0);
color: var(--white-3);
display: flex;
flex-flow: row wrap;
align-items: flex-start;
}

View File

@@ -0,0 +1,40 @@
<!doctype html>
<html lang="en-ca">
<head>
<title>Blog Post Template | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Blog - Blog Post Template</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_blog">
<div class="blog_body">
<div class="header">
<h1 class="title">Blog Post Template</h1>
<p class="date">Posted: 01 January, 2025</p>
<p class="date">Last Edited: 01 January, 2025</p>
</div>
<div class="body">
<p>Blog Post Content</p>
</div>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<include src="./includes/blog_recent_posts.html" />
<div class="spacer_container"><p>#AD</p></div>
</div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,26 +5,32 @@
<title>Error Template | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">Error Template</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Error Template</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<div class="error_body">
<h1>Error Code</h1>
<h2>Error Title</h2>
<hr />
<p>Error details and explaination.</p>
</div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_error">
<h1>Error Code</h1>
<h2>Error Title</h2>
<hr />
<p>Error details and explaination.</p>
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>

View File

@@ -5,21 +5,27 @@
<title>Main Template | Cutieguwu</title>
<include src="includes/meta.html" />
</head>
<body class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<p class="location_header">You are here:</p>
<p class="location_page">Main Template</p>
<body>
<div class="viewport">
<nav class="pane_nav">
<include src="includes/nav_logo.html" />
<include src="includes/nav_menu.html" />
<div class="location">
<h4 class="location_header">You are here:</h4>
<h5 class="location_page">Main Template</h5>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main">
<div class="main_body"></div>
<include src="includes/tailer.html" />
</div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/nav_quick_links.html" />
</nav>
<div class="pane_main"></div>
<div class="pane_spacer">
<div class="spacer_container"><p>#AD</p></div>
<div class="spacer_container"><p>#AD</p></div>
</div>
<include src="includes/footer.html" />
<include src="includes/scripts.html" />
</body>
</html>