redaction polishing #2

Merged
botalex merged 2 commits from dev into main 2025-10-09 07:25:21 +02:00
4 changed files with 137 additions and 117 deletions

View file

@ -46,16 +46,17 @@
} }
</script> </script>
<title>{$re?.name ?? "Alex"}'s CV {getFormattedDate()}</title> <div>
<meta content="{$re?.name ?? 'Alex'}'s CV" property="og:title" /> <title>{$re?.name ?? "Alex"}'s CV {getFormattedDate()}</title>
<meta <meta content="{$re?.name ?? 'Alex'}'s CV" property="og:title" />
<meta
content="This CV is made completely with svelte + html + css + js" content="This CV is made completely with svelte + html + css + js"
property="og:description" property="og:description"
/> />
<meta content={preveiwImage} property="og:image" /> <meta content={preveiwImage} property="og:image" />
<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" /> <meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
<div class="cv-info-container hide-on-print"> <div class="cv-info-container hide-on-print">
<div> <div>
Under here is my CV rev1 for an application made entirely in HTML and CSS. Under here is my CV rev1 for an application made entirely in HTML and CSS.
The page is designed to be saved as PDF. This can be done by pressing <div The page is designed to be saved as PDF. This can be done by pressing <div
@ -71,9 +72,22 @@
I have to sadly recommend chrome for this process. Firefox somehow messes with I have to sadly recommend chrome for this process. Firefox somehow messes with
the quality of the PDF :( the quality of the PDF :(
</div> </div>
</div> </div>
<div class="w-full h-full flex flex-col justify-center overflow-hidden">
<div class=" w-full flex h-[1131.25px] justify-center">
<RepeatedSkills
class="cozette-force text-5xl text-base-300 {$re?.name ? 'hidden' : ''}"
style="transform: translateY(-90rem)"
textOverride={["REDACTED VERSION"]}
targetTextHeight={90}
targetTextWidth={150}
textRowPadding={"1rem"}
/>
</div>
<div class="NotoSans cv-config cv-container-container include-in-print"> <div
class="NotoSans cv-config cv-container-container include-in-print absolute"
>
<div class="cv-container sections decorations"> <div class="cv-container sections decorations">
<div id="left-section" class="bg-grid-cv flex justify-center"> <div id="left-section" class="bg-grid-cv flex justify-center">
<LeftTopDecor /> <LeftTopDecor />
@ -97,7 +111,7 @@
</div> </div>
</div> </div>
<div id="leftSectionSeperator"></div> <div id="leftSectionSeperator"></div>
<div id="right-section" class="text-[var(--right-text-color)]"> <div id="right-section" class="text-[var(--right-text-color)] bg-white">
<AlexWatermark Style="pointer-events: none;" /> <AlexWatermark Style="pointer-events: none;" />
<div id="TopRightSkillsText"> <div id="TopRightSkillsText">
<RepeatedSkills <RepeatedSkills
@ -115,6 +129,8 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</div> </div>
<style lang="scss"> <style lang="scss">

View file

@ -19,11 +19,11 @@
<IconAndText2 <IconAndText2
logo={$re?.education[0].imageId.replace("[PB]", env.POCKETBASE_URL) ?? ""} logo={$re?.education[0].imageId.replace("[PB]", env.POCKETBASE_URL) ?? ""}
> >
<b>{$re?.education[0].name ?? ""}</b><br /> <b>{$re?.education[0].name ?? "University 🤮"}</b><br />
<p style="font-size: 0.5rem;">AI and data</p> <p style="font-size: 0.5rem;">AI and data</p>
</IconAndText2> </IconAndText2>
<IconAndText2 logo={$re?.education[1].imageId ?? ""}> <IconAndText2 logo={$re?.education[1].imageId ?? ""}>
<b>{$re?.education[0].name ?? ""}</b><br /> <b>{$re?.education[0].name ?? "High School 🤮"}</b><br />
<p style="font-size: 0.5rem;">Computer science</p> <p style="font-size: 0.5rem;">Computer science</p>
</IconAndText2> </IconAndText2>
<IconAndText2 logo={SasLogo}> <IconAndText2 logo={SasLogo}>
@ -31,7 +31,9 @@
<p style="font-size: 0.5rem;">SAS Programming</p> <p style="font-size: 0.5rem;">SAS Programming</p>
</IconAndText2> </IconAndText2>
<IconAndText2 logo={$re?.education[2].imageId ?? ""}> <IconAndText2 logo={$re?.education[2].imageId ?? ""}>
<span class="font-semibold">{$re?.education[2].name ?? ""}</span><br /> <span class="font-semibold"
>{$re?.education[2].name ?? "Paid vecation/certificate"}</span
><br />
<p style="font-size: 0.5rem;">VR development</p> <p style="font-size: 0.5rem;">VR development</p>
</IconAndText2> </IconAndText2>
</div> </div>

View file

@ -11,35 +11,36 @@
<div class="table-item"> <div class="table-item">
<IconAndText logo={$re?.experience[0].imageId ?? ""}> <IconAndText logo={$re?.experience[0].imageId ?? ""}>
<b>Full-stack</b><br /> <b>Full-stack</b><br />
{$re?.experience[0].name}<br /> {$re?.experience[0].name ?? "[REDACTED] Deprived devs"}<br />
<i>Feb 2025 - Now</i> <i>Feb 2025 - Now</i>
</IconAndText> </IconAndText>
</div> </div>
<div class="table-item"> <div class="table-item">
<IconAndText logo={$re?.experience[1].imageId ?? ""}> <IconAndText logo={$re?.experience[1].imageId ?? ""}>
<b>Data annotator</b><br /> <b>Data annotator</b><br />
{$re?.experience[1].name}<br /> {$re?.experience[1].name ?? "Some AI company"}<br />
<i>Jul 2024 - Now</i> <i>Jul 2024 - Now</i>
</IconAndText> </IconAndText>
</div> </div>
<div class="table-item"> <div class="table-item">
<IconAndText logo={$re?.experience[2].imageId ?? ""}> <IconAndText logo={$re?.experience[2].imageId ?? ""}>
<b>3D printer manager</b> - Volunteer<br /> <b>3D printer manager</b> - Volunteer<br />
{$re?.experience[2].name}<br /> {$re?.experience[2].name ?? "Actually Volunteering"}<br />
<i>Nov 2023 - Now</i> <i>Nov 2023 - Now</i>
</IconAndText> </IconAndText>
</div> </div>
<div class="table-item"> <div class="table-item">
<IconAndText logo={$re?.experience[3].imageId ?? ""}> <IconAndText logo={$re?.experience[3].imageId ?? ""}>
<b>Machine Learning Engineer</b> - Short term intern<br /> <b>Machine Learning Engineer</b> - Short term intern<br />
{$re?.experience[3].name}<br /> {$re?.experience[3].name ?? "YKYK"}<br />
<i>Apr 2024 - Apr 2024</i> <i>Apr 2024 - Apr 2024</i>
</IconAndText> </IconAndText>
</div> </div>
<div class="table-item"> <div class="table-item">
<IconAndText logo={$re?.experience[4].imageId ?? ""}> <IconAndText logo={$re?.experience[4].imageId ?? ""}>
<b>Assistant</b> - Short term intern<br /> <b>Assistant</b> - Short term intern<br />
{$re?.experience[4].name}<br /> {$re?.experience[4].name ??
"Awesome VR place, but got rejected 2 times after"}<br />
<i>Oct 2020 - Oct 2020</i> <i>Oct 2020 - Oct 2020</i>
</IconAndText> </IconAndText>
</div> </div>

View file

@ -2,13 +2,14 @@
// Width of num chars and height nom of chars // Width of num chars and height nom of chars
export let targetTextWidth: number; export let targetTextWidth: number;
export let targetTextHeight: number; export let targetTextHeight: number;
export let textRowPadding: string = "";
export let applyRotation: boolean = true; export let applyRotation: boolean = true;
export let textOverride: string[] | undefined = undefined; export let textOverride: string[] | undefined = undefined;
// Assign default value if textOverride is undefined // Assign default value if textOverride is undefined
let repeatingText : string[] = textOverride ?? [ let repeatingText: string[] = textOverride ?? [
"C++", "C++",
"C#", "C#",
"ARDUINO", "ARDUINO",
@ -27,10 +28,7 @@
function GrabRandomString() { function GrabRandomString() {
let outString: string = ""; let outString: string = "";
while (outString.length < targetTextWidth) { while (outString.length < targetTextWidth) {
outString += outString += repeatingText[getRandomInt(repeatingText.length)] + " ";
repeatingText[
getRandomInt(repeatingText.length)
] + " ";
} }
return outString; // At about target size return outString; // At about target size
@ -39,7 +37,10 @@
<div {...$$restProps}> <div {...$$restProps}>
{#each { length: targetTextHeight } as _, i} {#each { length: targetTextHeight } as _, i}
<span class="{applyRotation ? "rotate45" : ""} SkillsText"> <span
class="{applyRotation ? 'rotate45' : ''} SkillsText"
style="padding: {textRowPadding};"
>
{GrabRandomString()} {GrabRandomString()}
</span> </span>
{/each} {/each}