This commit is contained in:
2024-07-20 11:36:35 +02:00
commit 74b43cd8fa
81 changed files with 3131 additions and 0 deletions

24
frontend/.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

1098
frontend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

19
frontend/package.json Normal file
View File

@@ -0,0 +1,19 @@
{
"name": "frontend",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"autoprefixer": "^10.4.19",
"normalize.css": "^8.0.1",
"postcss": "^8.4.38",
"postcss-import": "^16.1.0",
"postcss-simple-vars": "^7.0.1",
"vite": "^5.2.0"
}
}

View File

@@ -0,0 +1,7 @@
module.exports = (ctx) => ({
plugins: [
require('postcss-import')(),
require('postcss-simple-vars')(),
require("autoprefixer")(),
]
})

View File

@@ -0,0 +1,35 @@
import 'vite/modulepreload-polyfill'
// import "../styles/app.css"
function getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== '') {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
(function(){
// DOM is ready.
setTimeout(async () => {
const response = await fetch("/hit/", {
method: "POST",
headers: {
"Content-Type": "application/json",
'X-CSRFToken': getCookie("csrftoken")
},
mode: 'same-origin',
body: JSON.stringify({
})
});
}, 1000)
})();

View File

@@ -0,0 +1,5 @@
import "../components/sidebar";
window.document.addEventListener("DOMContentLoaded", function () {
window.console.log("dom ready 2");
});

View File

@@ -0,0 +1,2 @@
import "../styles/blog.css"

View File

@@ -0,0 +1 @@
// import "../styles/cv.css"

View File

@@ -0,0 +1 @@
window.console.log("sidebar is loaded");

View File

@@ -0,0 +1,48 @@
@import "normalize.css";
html::-webkit-scrollbar {
display: none;
}
html{
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
body{
background-color: rgba(43, 43, 42, 0.8);
overflow-y: scroll;
}
ul{
list-style-type: none;
}
#main_header{
background-color: white;
margin-top: 0;
}
#main_header nav{
max-width: 90%;
margin: 0 auto;
padding: 0;
}
#main_header ul{
margin-top: 0;
display: flex;
justify-content: center;
}
#main_header li {
padding: 1rem;
}
#main_app{
max-width: 90%;
min-height: 50rem;
margin: 0 auto;
padding: 1rem;
background-color: white;
}

View File

@@ -0,0 +1,38 @@
/* hello */
#article_list{
/*background-color: grey;*/
}
#article_list article{
/*background-color: green;*/
display: flex;
border: 0.1rem solid green;
margin: 1rem;
/*height: 10rem;*/
}
#article_list a{
text-decoration: none;
color: black;
}
.article_image{
width: 30%;
background-color: grey;
}
.article_image img{
/*image-;*/
width: 100%;
height: 100%;
}
.article_text{
width: 70%;
margin: 1rem;
}
.article_text h2{
text-align: center;
}

150
frontend/src/styles/cv.css Normal file
View File

@@ -0,0 +1,150 @@
#cv_main{
display: flex;
justify-content: normal;
flex-direction: row;
}
#cv_main > #cv_left{
background-color: beige;
max-width: 30%;
padding: 1rem;
}
#cv_main > #cv_right{
background-color: cadetblue;
min-width: 70%;
padding: 1rem;
}
article header{
display: flex;
flex-direction: row;
align-items: center;
background-color: #e0e0e0;
justify-content: center;
position: relative;
}
article header>div:first-child{
margin-left: 1rem;
position: absolute;
left: 0;
text-align: center;
}
.cv_header_title{
margin: auto;
display: flex;
flex-direction: column;
align-items: center;
}
.cv_header_title>*{
padding: 0;
margin: 0.1rem;
}
.cv_content_competence{
max-width: 30%;
display: grid;
grid-template-columns: repeat(4, 2fr);
column-gap: 1rem;
row-gap: 1rem;
}
/*article header{*/
/* display: flex;*/
/* flex-direction: row;*/
/* align-items: center;*/
/* background-color: #e0e0e0;*/
/* justify-content: center;*/
/* position: relative;*/
/*}*/
/*article header>div:first-child{*/
/* margin-left: 1rem;*/
/*}*/
/*.cv_header_title{*/
/* margin: auto;*/
/* display: flex;*/
/* flex-direction: column;*/
/* align-items: center;*/
/*}*/
/*.cv_header_title>*{*/
/* padding: 0;*/
/* margin: 0.1rem;*/
/*}*/
/*.g_pas_idee {*/
/* position: absolute;*/
/* left: 0;*/
/* background-color: red;*/
/* text-align: center;*/
/*}*/
/*@media screen and (max-width: 700px) {*/
/* .g_pas_idee {*/
/* position: inherit;*/
/* width: 100%;*/
/* }*/
/* article header{*/
/* flex-direction: column;*/
/* }*/
/*}*/
/*article header{*/
/* display: grid;*/
/* grid-template-columns: 3fr 5fr;*/
/* align-items: center;*/
/* background-color: #e0e0e0;*/
/*}*/
/*article header>div:first-child{*/
/* margin-left: 1rem;*/
/*}*/
/*.cv_header_title{*/
/* text-align: center;*/
/* margin-right: auto;*/
/*}*/
/*.cv_header_title>h2,h3{*/
/* margin: .5rem;*/
/*}*/
/*article header>div{*/
/* max-width: 60%;*/
/* text-align: center;*/
/*}*/
/*.cv_header_title{*/
/* display: flex;*/
/* flex-direction: column;*/
/*}*/
.cv_content h4 {
text-decoration: underline;
}
@media (max-width: 800px) {
#cv_main{
flex-direction: column;
}
#cv_main > #cv_left{
max-width: 90%;
}
#cv_main > #cv_right{
min-width: 90%;
padding: 1rem;
}
}

View File

@@ -0,0 +1,17 @@
@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";
//.jumbotron {
// // should be relative path of the entry scss file
// background-image: url("../../vendors/images/sample.jpg");
// background-size: cover;
//}
//
//.btn-blue {
// @apply inline-block px-4 py-2;
// @apply font-semibold rounded-lg shadow-md;
// @apply bg-blue-500 text-white;
// @apply hover:bg-blue-700 focus:outline-none;
// @apply focus:ring-2 focus:ring-blue-400 focus:ring-opacity-75;
//}

49
frontend/vite.config.js Normal file
View File

@@ -0,0 +1,49 @@
import {defineConfig, loadEnv} from "vite";
import {resolve, join} from "path";
// const postcssConfig = {
// plugins: [
// require('postcss-import')(),
// require('postcss-simple-vars')(),
// require('autoprefixer')(),
// ],
// };
export default defineConfig((mode) => {
const env = loadEnv(mode, "..", ""),
SRC_DIR = resolve("./src"),
OUT_DIR = resolve("./dist")
return {
plugins: [
],
resolve: {
alias: {
"@": resolve(SRC_DIR)
}
},
root: SRC_DIR,
base: "/static/",
// css: {
// postcss: postcssConfig
// },
server: {
host: env.DEV_SERVER_HOST,
port: env.DEV_SERVER_PORT
},
build: {
manifest: "manifest.json",
emptyOutDir: true,
outDir: OUT_DIR,
rollupOptions: {
input: {
app: join(SRC_DIR, "application/app.js"),
app2: join(SRC_DIR, "application/app2.js"),
blog: join(SRC_DIR, "application/blog.js"),
cv: join(SRC_DIR, "application/cv.js")
}
}
}
}
})

241
frontend/yarn.lock Normal file
View File

@@ -0,0 +1,241 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@esbuild/win32-x64@0.20.2":
version "0.20.2"
resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz"
integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
"@rollup/rollup-win32-x64-msvc@4.17.2":
version "4.17.2"
resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz"
integrity sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==
"@types/estree@1.0.5":
version "1.0.5"
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
autoprefixer@^10.4.19:
version "10.4.19"
resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz"
integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==
dependencies:
browserslist "^4.23.0"
caniuse-lite "^1.0.30001599"
fraction.js "^4.3.7"
normalize-range "^0.1.2"
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
browserslist@^4.23.0, "browserslist@>= 4.21.0":
version "4.23.0"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz"
integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
dependencies:
caniuse-lite "^1.0.30001587"
electron-to-chromium "^1.4.668"
node-releases "^2.0.14"
update-browserslist-db "^1.0.13"
caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599:
version "1.0.30001617"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz"
integrity sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==
electron-to-chromium@^1.4.668:
version "1.4.762"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.762.tgz"
integrity sha512-rrFvGweLxPwwSwJOjIopy3Vr+J3cIPtZzuc74bmlvmBIgQO3VYJDvVrlj94iKZ3ukXUH64Ex31hSfRTLqvjYJQ==
esbuild@^0.20.1:
version "0.20.2"
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz"
integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
optionalDependencies:
"@esbuild/aix-ppc64" "0.20.2"
"@esbuild/android-arm" "0.20.2"
"@esbuild/android-arm64" "0.20.2"
"@esbuild/android-x64" "0.20.2"
"@esbuild/darwin-arm64" "0.20.2"
"@esbuild/darwin-x64" "0.20.2"
"@esbuild/freebsd-arm64" "0.20.2"
"@esbuild/freebsd-x64" "0.20.2"
"@esbuild/linux-arm" "0.20.2"
"@esbuild/linux-arm64" "0.20.2"
"@esbuild/linux-ia32" "0.20.2"
"@esbuild/linux-loong64" "0.20.2"
"@esbuild/linux-mips64el" "0.20.2"
"@esbuild/linux-ppc64" "0.20.2"
"@esbuild/linux-riscv64" "0.20.2"
"@esbuild/linux-s390x" "0.20.2"
"@esbuild/linux-x64" "0.20.2"
"@esbuild/netbsd-x64" "0.20.2"
"@esbuild/openbsd-x64" "0.20.2"
"@esbuild/sunos-x64" "0.20.2"
"@esbuild/win32-arm64" "0.20.2"
"@esbuild/win32-ia32" "0.20.2"
"@esbuild/win32-x64" "0.20.2"
escalade@^3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz"
integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
fraction.js@^4.3.7:
version "4.3.7"
resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
hasown@^2.0.0:
version "2.0.2"
resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
is-core-module@^2.13.0:
version "2.13.1"
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz"
integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
dependencies:
hasown "^2.0.0"
nanoid@^3.3.7:
version "3.3.7"
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
node-releases@^2.0.14:
version "2.0.14"
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz"
integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
normalize.css@^8.0.1:
version "8.0.1"
resolved "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz"
integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
postcss-import@^16.1.0:
version "16.1.0"
resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.0.tgz"
integrity sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==
dependencies:
postcss-value-parser "^4.0.0"
read-cache "^1.0.0"
resolve "^1.1.7"
postcss-simple-vars@^7.0.1:
version "7.0.1"
resolved "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-7.0.1.tgz"
integrity sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==
postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.1, postcss@^8.4.38:
version "8.4.38"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz"
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
dependencies:
nanoid "^3.3.7"
picocolors "^1.0.0"
source-map-js "^1.2.0"
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
dependencies:
pify "^2.3.0"
resolve@^1.1.7:
version "1.22.8"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
dependencies:
is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
rollup@^4.13.0:
version "4.17.2"
resolved "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz"
integrity sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.17.2"
"@rollup/rollup-android-arm64" "4.17.2"
"@rollup/rollup-darwin-arm64" "4.17.2"
"@rollup/rollup-darwin-x64" "4.17.2"
"@rollup/rollup-linux-arm-gnueabihf" "4.17.2"
"@rollup/rollup-linux-arm-musleabihf" "4.17.2"
"@rollup/rollup-linux-arm64-gnu" "4.17.2"
"@rollup/rollup-linux-arm64-musl" "4.17.2"
"@rollup/rollup-linux-powerpc64le-gnu" "4.17.2"
"@rollup/rollup-linux-riscv64-gnu" "4.17.2"
"@rollup/rollup-linux-s390x-gnu" "4.17.2"
"@rollup/rollup-linux-x64-gnu" "4.17.2"
"@rollup/rollup-linux-x64-musl" "4.17.2"
"@rollup/rollup-win32-arm64-msvc" "4.17.2"
"@rollup/rollup-win32-ia32-msvc" "4.17.2"
"@rollup/rollup-win32-x64-msvc" "4.17.2"
fsevents "~2.3.2"
source-map-js@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
update-browserslist-db@^1.0.13:
version "1.0.15"
resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz"
integrity sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==
dependencies:
escalade "^3.1.2"
picocolors "^1.0.0"
vite@^5.2.0:
version "5.2.11"
resolved "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz"
integrity sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==
dependencies:
esbuild "^0.20.1"
postcss "^8.4.38"
rollup "^4.13.0"
optionalDependencies:
fsevents "~2.3.3"