diff --git a/src/assets/localization.js b/src/assets/localization.js deleted file mode 100644 index 24bb76f..0000000 --- a/src/assets/localization.js +++ /dev/null @@ -1,23 +0,0 @@ -const LANGUAGES = ["en-gb", "da-dk"]; - -const selected = select => select.options[select.selectedIndex]; -const getCookie = key => (document.cookie.split("; ").findLast(c => c.startsWith(key)) ?? "=").split("=").reverse()[0]; -const setCookie = (key, value) => (document.cookie = `${key}=${value}; path=/; SameSite=Strict;`); - -function localize() { - let currentLang = getCookie("lang"); - if (!currentLang) { - setCookie("lang", LANGUAGES[0]); - currentLang = LANGUAGES[0]; - } - let langIndex = LANGUAGES.indexOf(currentLang) ?? 0; - document.getElementById("lang").selectedIndex = langIndex; - [...document.querySelectorAll("[lang]")].forEach( - elem => (elem.hidden = elem.lang != currentLang && !elem.classList.contains("no-localize")), - ); -} - -function setLocale(language) { - setCookie("lang", language); - localize(); -} diff --git a/src/assets/main.css b/src/assets/main.css index 87c95d6..8db985c 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -13,9 +13,7 @@ :root { --primary: #202020; --secondary: #2b2b2b; - --border: darkgrey; --font-color: white; - --font-inverted: black; --link-color: tomato; } } @@ -26,7 +24,7 @@ html { box-sizing: border-box; } -html * { +* { color: var(--font-color); box-sizing: inherit; margin: 0px; @@ -129,52 +127,6 @@ a:hover { color: var(--font-inverted); } -ul { - padding-left: 1.4em; - margin-top: 0px; - margin-bottom: 2.5rem; -} - -li { - white-space: nowrap; - margin-bottom: 0.4em; -} - -table { - overflow-x: auto; - text-align: center; - width: 100%; - height: 100%; - border: 0.15rem solid var(--border); - border-radius: 0.5rem; - border-spacing: 0px; - overflow: scroll; - background-color: var(--primary); -} - -table tbody, -table thead { - width: 100%; -} - -td, -th { - border-bottom: 1px dotted var(--border); - text-overflow: ellipsis; - padding: 0.4rem; - font-size: 0.9rem; -} - -th { - border-bottom: 1px solid var(--border); -} - -thead, -tbody { - margin: 0; - padding: 0; -} - dl { display: grid; grid-template-columns: auto 1fr; @@ -190,37 +142,6 @@ dd { font-size: 0.9rem; } -label { - display: inline-block; - user-select: none; - text-align: right; -} - -button, -label, -input, -select, -progress, -meter { - box-sizing: border-box; - margin: 0; - padding: 0em 0.2em 0.1em 0.2em; - background-color: var(--secondary); - border: 1px solid var(--border); - border-radius: 1px; - font-family: inherit; - font-size: 100%; -} - -button:active { - background-color: var(--link-color); -} - -[hidden] { - display: none; -} - -/* custom */ .profile { width: 50%; height: auto; diff --git a/src/en/index.html b/src/en/index.html new file mode 100644 index 0000000..c0cd0dd --- /dev/null +++ b/src/en/index.html @@ -0,0 +1,183 @@ + + + + + + + + Home | Frederik Palmø + + + + + + + + + + + +
+

Frederik Palmø

+
+
+
+

Projekter

+
+
+ Tools for planning game characters + + project + + source + + +

+ This project makes use of fundamental web technologies + such as HTML, CSS and JavaScript. The + lack of good build planning tools for the game Elden + Ring made me embark on this project, + which consists of simple calculators for characters + statistics, armor efficiency and weapon + damage. Beyond the simple calculations, this project + also entailed extracting the item + values from the game files. This was done using Python, + and the resulting values were + converted to JSON files for ease of use with JavaScript. +

+
+
+ Implementation of hashing algorithms + + + project + + + source + + + docs + + +

+ With this project I wanted to focus on implementing a + simple API that would make it easy to + generate message digests for any data in Rust. I was + dissatisfied with the APIs of existing + packages, and sought reduce the amount of function calls + necessary to get a hash value. + Other focuses of this project were well-written + documentation and testing. +

+
+
+ Simple, efficient parsing library + + + project + + + source + + + docs + + +

+ Many problems in the yearly + Advent of Code + event consist of parsing some data and transforming + afterwards. I wanted to try implementing + my own simple parser, which parses strings using simple + templates and converts the parsing + results to specific data types. This was my first go at + creating a Rust crate, and I focused + on creating an idiomatic API as well as good + documentation so that others might be able to + use the crate. +

+
+
+ Outdoor IoT LED chain lights + +

+ A simple internet of things project consisting of a few + cheap LED chain lights, a power + supply and a WiFi-enabled microcontroller. The project + uses existing technologies (Home + Assistant, WLED) to provide a nice-looking and simple + interface. +

+
+
+ Clones of Galaga and Breakout + + + source + + +

+ As part of the Software Development course at UCPH we + created some small games in C\# using + the provided DIKUGames library. This class taught me + more efficient development patterns for + OOP, as well as how to delegate work in a group + environment in order to maintain development + speed. As part of this project we were taught basic OOP + principles such as SOLID and TDD. +

+
+
+ Private server + +

+ All of my projects are hosted on my private server, + located at my residence. As part of this + project I have learned a lot about server administration + work, web servers, package managers + and container architectures. From this I have adequate + level of experience with the + mentioned technologies. +

+
+
+
+ +
+ + + + \ No newline at end of file diff --git a/src/index.html b/src/index.html index ba75595..aafe27c 100644 --- a/src/index.html +++ b/src/index.html @@ -24,7 +24,6 @@

Projekter

-

Projects

Redskaber til planlægning af spilkarakterer @@ -159,139 +158,6 @@

-
-
- Tools for planning game characters - - project - - source - - -

- This project makes use of fundamental web technologies - such as HTML, CSS and JavaScript. The - lack of good build planning tools for the game Elden - Ring made me embark on this project, - which consists of simple calculators for characters - statistics, armor efficiency and weapon - damage. Beyond the simple calculations, this project - also entailed extracting the item - values from the game files. This was done using Python, - and the resulting values were - converted to JSON files for ease of use with JavaScript. -

-
-
- Implementation of hashing algorithms - - - project - - - source - - - docs - - -

- With this project I wanted to focus on implementing a - simple API that would make it easy to - generate message digests for any data in Rust. I was - dissatisfied with the APIs of existing - packages, and sought reduce the amount of function calls - necessary to get a hash value. - Other focuses of this project were well-written - documentation and testing. -

-
-
- Simple, efficient parsing library - - - project - - - source - - - docs - - -

- Many problems in the yearly - Advent of Code - event consist of parsing some data and transforming - afterwards. I wanted to try implementing - my own simple parser, which parses strings using simple - templates and converts the parsing - results to specific data types. This was my first go at - creating a Rust crate, and I focused - on creating an idiomatic API as well as good - documentation so that others might be able to - use the crate. -

-
-
- Outdoor IoT LED chain lights - -

- A simple internet of things project consisting of a few - cheap LED chain lights, a power - supply and a WiFi-enabled microcontroller. The project - uses existing technologies (Home - Assistant, WLED) to provide a nice-looking and simple - interface. -

-
-
- Clones of Galaga and Breakout - - - source - - -

- As part of the Software Development course at UCPH we - created some small games in C\# using - the provided DIKUGames library. This class taught me - more efficient development patterns for - OOP, as well as how to delegate work in a group - environment in order to maintain development - speed. As part of this project we were taught basic OOP - principles such as SOLID and TDD. -

-
-
- Private server - -

- All of my projects are hosted on my private server, - located at my residence. As part of this - project I have learned a lot about server administration - work, web servers, package managers - and container architectures. From this I have adequate - level of experience with the - mentioned technologies. -

-
-