Compare commits
12 Commits
106aefb85b
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0b3c6e030 | ||
|
|
521797dd12 | ||
| 9dd9940e55 | |||
| 297521efdc | |||
| bbdb1d4453 | |||
| 6d387986e0 | |||
|
|
283ebb35c9 | ||
|
|
eabc979c62 | ||
|
|
0d090ee2e6 | ||
|
|
1669eeff4d | ||
|
|
1ff883e624 | ||
|
|
369586b8fe |
59
.drone.yml
59
.drone.yml
@@ -1,29 +1,48 @@
|
|||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
name: deploy
|
name: deploy-production
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build-site
|
- name: build-site
|
||||||
image: node:latest
|
image: node:16
|
||||||
commands:
|
commands:
|
||||||
- npm install
|
- npm install
|
||||||
- npm run build
|
- npm run build
|
||||||
|
|
||||||
- name: deploy
|
- name: deploy
|
||||||
image: mwienk/docker-lftp
|
image: mwienk/docker-lftp
|
||||||
environment:
|
environment:
|
||||||
USERNAME: pettinattk
|
USERNAME: pettinattk
|
||||||
PASSWORD:
|
PASSWORD:
|
||||||
from_secret: password
|
from_secret: password
|
||||||
HOST: ftp.cluster027.hosting.ovh.net
|
HOST: ftp.cluster027.hosting.ovh.net
|
||||||
commands:
|
commands:
|
||||||
- "ls"
|
- lftp -c "open -u $USERNAME,$PASSWORD $HOST; mirror -Rnev ./build ./www --ignore-time --parallel=10 --exclude .htaccess --exclude-glob .git* --exclude .git/"
|
||||||
- echo $USERNAME
|
|
||||||
- echo $HOST
|
|
||||||
- echo $PASSWORD
|
|
||||||
- lftp -c "open -u $USERNAME,$PASSWORD $HOST; mirror -Rnev ./build ./www --ignore-time --parallel=10 --exclude .htaccess --exclude-glob .git* --exclude .git/"
|
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- main
|
- main
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: deploy-develop
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build-site
|
||||||
|
image: node:16
|
||||||
|
commands:
|
||||||
|
- npm install
|
||||||
|
- npm run build
|
||||||
|
|
||||||
|
- name: deploy
|
||||||
|
image: ictu/sshpass
|
||||||
|
environment:
|
||||||
|
SSHPASS:
|
||||||
|
from_secret: ssh_key
|
||||||
|
commands:
|
||||||
|
- sshpass -e rsync -arP -e "ssh -p 69 -o StrictHostKeyChecking=no" ./build/ root@192.168.178.25:/mnt/user/appdata/binhex-nginx/nginx/html/
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- develop
|
||||||
|
|||||||
26
.gitea/workflows/develop-deploy.yml
Normal file
26
.gitea/workflows/develop-deploy.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
name: Build Site Develop
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Build-Site:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Use Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '18.18.2'
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run build
|
||||||
|
- name: Publish
|
||||||
|
uses: nogsantos/scp-deploy@master
|
||||||
|
with:
|
||||||
|
src: ./build/*
|
||||||
|
host: ${{ secrets.SSH_HOST }}
|
||||||
|
remote: /mnt/user/appdata/binhex-nginx/nginx/html/
|
||||||
|
port: 69
|
||||||
|
user: ${{ secrets.SSH_USER }}
|
||||||
|
key: ${{ secrets.SSH_KEY }}
|
||||||
27
.gitea/workflows/main-deploy.yml
Normal file
27
.gitea/workflows/main-deploy.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
name: Build Site Main
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Build-Site:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Use Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run build
|
||||||
|
|
||||||
|
- name: Upload via SFTP
|
||||||
|
uses: appleboy/scp-action@master
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.SFTP_HOST }}
|
||||||
|
username: ${{ secrets.SFTP_USER }}
|
||||||
|
password: ${{ secrets.SFTP_PASSWORD }}
|
||||||
|
port: 22
|
||||||
|
source: "build/*"
|
||||||
|
target: "/home/pettinattk/www"
|
||||||
18
.gitea/workflows/pr-build.yml
Normal file
18
.gitea/workflows/pr-build.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: Build Site PR
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'feat/**'
|
||||||
|
- 'develop'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Build-Site:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Use Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run build
|
||||||
12862
package-lock.json
generated
12862
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"update-model": "json2ts ./src/lib/model/schemas/job.json ./src/lib/model/job.ts && json2ts ./src/lib/model/schemas/logo.json ./src/lib/model/logo.ts",
|
"update-model": "json2ts ./src/lib/model/schemas/job.json ./src/lib/model/job.ts && json2ts ./src/lib/model/schemas/logo.json ./src/lib/model/logo.ts",
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
|
"dev-exposed": "vite dev --host",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"postbuild": "npx svelte-sitemap --domain https://pettinato.eu",
|
"postbuild": "npx svelte-sitemap --domain https://pettinato.eu",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
|
|||||||
23
src/app.html
23
src/app.html
@@ -1,12 +1,15 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html lang="it">
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
<head>
|
||||||
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
||||||
%sveltekit.head%
|
<meta name="viewport" content="width=device-width" />
|
||||||
</head>
|
%sveltekit.head%
|
||||||
<body data-sveltekit-preload-data="hover">
|
</head>
|
||||||
<div style="display: contents">%sveltekit.body%</div>
|
|
||||||
</body>
|
<body data-sveltekit-preload-data="hover">
|
||||||
|
<div style="display: contents">%sveltekit.body%</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -11,13 +11,45 @@
|
|||||||
import type { CurrentLanguage } from '$lib/types';
|
import type { CurrentLanguage } from '$lib/types';
|
||||||
export let job: Job;
|
export let job: Job;
|
||||||
export let currentLanguage: CurrentLanguage = 'it';
|
export let currentLanguage: CurrentLanguage = 'it';
|
||||||
|
const dialogs: { [k: string]: HTMLDialogElement } = {};
|
||||||
|
export let modalOpen: boolean;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
{#each job.images as image}
|
||||||
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||||
|
<dialog
|
||||||
|
bind:this={dialogs[window.btoa(image)]}
|
||||||
|
on:scroll|preventDefault
|
||||||
|
on:click={() => {
|
||||||
|
dialogs[window.btoa(image)].close();
|
||||||
|
modalOpen = false;
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src={image}
|
||||||
|
alt={image}
|
||||||
|
loading="lazy"
|
||||||
|
on:scroll={(e) => {
|
||||||
|
console.log(e);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</dialog>
|
||||||
|
{/each}
|
||||||
|
|
||||||
<div class="job-container">
|
<div class="job-container">
|
||||||
<h3>{job.title[currentLanguage]}</h3>
|
<h3>{job.title[currentLanguage]}</h3>
|
||||||
<div class="image-container">
|
<div class="image-container">
|
||||||
{#each job.images as image}
|
{#each job.images as image}
|
||||||
<img src={image} alt={image} loading="lazy" />
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||||
|
<img
|
||||||
|
src={image}
|
||||||
|
alt={image}
|
||||||
|
loading="lazy"
|
||||||
|
on:click={() => {
|
||||||
|
dialogs[window.btoa(image)].showModal();
|
||||||
|
modalOpen = true;
|
||||||
|
}}
|
||||||
|
/>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-content">
|
<div class="text-content">
|
||||||
@@ -47,11 +79,11 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{#if job.tecnologies.length != 0}
|
{#if job.technologies.length != 0}
|
||||||
Tech:
|
Tech:
|
||||||
{/if}
|
{/if}
|
||||||
{#each job.tecnologies as tecnology, index}
|
{#each job.technologies as tecnology, index}
|
||||||
{tecnology}{index != job.tecnologies.length - 1 ? ', ' : ''}
|
{tecnology}{index != job.technologies.length - 1 ? ', ' : ''}
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -71,9 +103,66 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
img {
|
img {
|
||||||
background-color: $text-color;
|
background-color: $text-color;
|
||||||
|
cursor: zoom-in;
|
||||||
}
|
}
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.modal {
|
||||||
|
display: flex;
|
||||||
|
position: fixed;
|
||||||
|
position: -webkit-sticky;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 999;
|
||||||
|
background-color: rgba($color: #000000, $alpha: 0.4);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.modal-open {
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
.modal-closed {
|
||||||
|
overflow-y: unset;
|
||||||
|
}
|
||||||
|
dialog {
|
||||||
|
img {
|
||||||
|
max-width: 80vw;
|
||||||
|
max-height: 80vh;
|
||||||
|
height: auto;
|
||||||
|
margin: auto;
|
||||||
|
background-color: $text-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog::backdrop {
|
||||||
|
background: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog[open] {
|
||||||
|
animation: zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
||||||
|
}
|
||||||
|
@keyframes zoom {
|
||||||
|
from {
|
||||||
|
transform: scale(0.95);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog[open]::backdrop {
|
||||||
|
animation: fade 0.2s ease-out;
|
||||||
|
}
|
||||||
|
@keyframes fade {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -4,11 +4,12 @@
|
|||||||
import JobElement from './JobElement.svelte';
|
import JobElement from './JobElement.svelte';
|
||||||
export let currentLanguage: CurrentLanguage = 'it';
|
export let currentLanguage: CurrentLanguage = 'it';
|
||||||
export let jobs: Job[] = [];
|
export let jobs: Job[] = [];
|
||||||
|
export let modalOpen: boolean;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="jobs-container">
|
<div class="jobs-container">
|
||||||
{#each jobs as job}
|
{#each jobs as job}
|
||||||
<div class="job-card"><JobElement {job} {currentLanguage} /></div>
|
<div class="job-card"><JobElement {job} {currentLanguage} bind:modalOpen /></div>
|
||||||
{/each}
|
{/each}
|
||||||
{#if jobs.length % 2 !== 0}
|
{#if jobs.length % 2 !== 0}
|
||||||
<div class="job-card hide" />
|
<div class="job-card hide" />
|
||||||
|
|||||||
@@ -32,10 +32,17 @@
|
|||||||
|
|
||||||
const globeLookup: svgCore.IconLookup = { prefix: 'fas', iconName: 'globe-europe' };
|
const globeLookup: svgCore.IconLookup = { prefix: 'fas', iconName: 'globe-europe' };
|
||||||
const globeDefinition: svgCore.IconDefinition = svgCore.findIconDefinition(globeLookup);
|
const globeDefinition: svgCore.IconDefinition = svgCore.findIconDefinition(globeLookup);
|
||||||
|
const buttonLabel: { [key: CurrentLanguage[number]]: string } = {
|
||||||
|
it: 'seleziona la lingua',
|
||||||
|
en: 'select language'
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="language-selector">
|
<div class="language-selector">
|
||||||
<button on:click={setOpen}> <FontAwesomeIcon icon={globeDefinition} size="2x" /> </button>
|
<button on:click={setOpen}>
|
||||||
|
<FontAwesomeIcon icon={globeDefinition} size="2x" /><span>{buttonLabel[currentLanguage]}</span
|
||||||
|
></button
|
||||||
|
>
|
||||||
<div class="button-container" bind:this={langSelect}>
|
<div class="button-container" bind:this={langSelect}>
|
||||||
<button
|
<button
|
||||||
class="custom-button {currentLanguage == 'it' ? 'custom-button-active' : ''}"
|
class="custom-button {currentLanguage == 'it' ? 'custom-button-active' : ''}"
|
||||||
@@ -76,6 +83,16 @@
|
|||||||
border: none;
|
border: none;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
|
span {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0 0 0 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.custom-button {
|
.custom-button {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
function setOpen() {
|
function setOpen() {
|
||||||
menuOpen = !menuOpen;
|
menuOpen = !menuOpen;
|
||||||
const animation = menuContainer.animate([{ height: '0px' }, { height: '360px' }], {
|
const animation = menuContainer.animate([{ height: '0px' }, { height: '240px' }], {
|
||||||
duration: 100,
|
duration: 100,
|
||||||
fill: 'both'
|
fill: 'both'
|
||||||
});
|
});
|
||||||
@@ -61,12 +61,14 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="menu-container">
|
<div class="menu-container">
|
||||||
<div class="header">
|
<div class="header {menuOpen ? 'borderclass' : ''}">
|
||||||
<button on:click={setOpen} tabindex="0" title={menuButton[Number(menuOpen)][currentLanguage]}>
|
<button on:click={setOpen} tabindex="0" title={menuButton[Number(menuOpen)][currentLanguage]}>
|
||||||
{#if !menuOpen}<FontAwesomeIcon icon={barsDefinition} size="lg" />
|
<i>
|
||||||
{:else}
|
{#if !menuOpen}<FontAwesomeIcon icon={barsDefinition} />
|
||||||
<FontAwesomeIcon icon={xDefinition} size="lg" />
|
{:else}
|
||||||
{/if}
|
<FontAwesomeIcon icon={xDefinition} />
|
||||||
|
{/if}
|
||||||
|
</i>
|
||||||
</button>
|
</button>
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<h1>Gianmarco Pettinato</h1>
|
<h1>Gianmarco Pettinato</h1>
|
||||||
@@ -75,7 +77,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<ul class="wrapper" bind:this={menuContainer}>
|
<ul class="wrapper" bind:this={menuContainer}>
|
||||||
<li>
|
<li>
|
||||||
<a class="menu-element" href="#top">
|
<a on:click={setOpen} class="menu-element" href="#top">
|
||||||
<i>
|
<i>
|
||||||
<FontAwesomeIcon icon={homeIconDefinition} />
|
<FontAwesomeIcon icon={homeIconDefinition} />
|
||||||
</i>
|
</i>
|
||||||
@@ -83,28 +85,28 @@
|
|||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="menu-element" href="#jobs"
|
<a on:click={setOpen} class="menu-element" href="#jobs"
|
||||||
><i>
|
><i>
|
||||||
<FontAwesomeIcon icon={userTieDefinition} />
|
<FontAwesomeIcon icon={userTieDefinition} />
|
||||||
</i><span>{menu.job[currentLanguage]}</span></a
|
</i><span>{menu.job[currentLanguage]}</span></a
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="menu-element" href="#training"
|
<a on:click={setOpen} class="menu-element" href="#training"
|
||||||
><i>
|
><i>
|
||||||
<FontAwesomeIcon icon={graduationDefinition} />
|
<FontAwesomeIcon icon={graduationDefinition} />
|
||||||
</i><span>{menu.school[currentLanguage]}</span></a
|
</i><span>{menu.school[currentLanguage]}</span></a
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="menu-element" href="#portfolio"
|
<a on:click={setOpen} class="menu-element" href="#portfolio"
|
||||||
><i>
|
><i>
|
||||||
<FontAwesomeIcon icon={userClockDefinition} />
|
<FontAwesomeIcon icon={userClockDefinition} />
|
||||||
</i><span>{menu.portfolio[currentLanguage]}</span></a
|
</i><span>{menu.portfolio[currentLanguage]}</span></a
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<!-- <li>
|
<!-- <li>
|
||||||
<a class="menu-element" href="/blog"
|
<a on:click={setOpen} class="menu-element" href="/blog"
|
||||||
><i>
|
><i>
|
||||||
<FontAwesomeIcon icon={addressCardDefinition} />
|
<FontAwesomeIcon icon={addressCardDefinition} />
|
||||||
</i><span>{menu.blog[currentLanguage]}</span></a
|
</i><span>{menu.blog[currentLanguage]}</span></a
|
||||||
@@ -115,26 +117,50 @@
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import '../../app.scss';
|
@import '../../app.scss';
|
||||||
|
.borderclass {
|
||||||
|
border-bottom: solid $border-hover-color 2px;
|
||||||
|
border-radius: $default-border-radius;
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
justify-content: space-evenly;
|
||||||
padding-top: 10px;
|
|
||||||
height: 10%;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
button {
|
button {
|
||||||
height: 80px;
|
|
||||||
width: 80px;
|
|
||||||
border: none;
|
border: none;
|
||||||
font-size: 40px;
|
|
||||||
background: none;
|
background: none;
|
||||||
|
margin-left: 3rem;
|
||||||
|
height: 50px;
|
||||||
|
width: 50px;
|
||||||
|
i {
|
||||||
|
text-align: center;
|
||||||
|
height: 50px;
|
||||||
|
width: 50px;
|
||||||
|
border: none;
|
||||||
|
font-size: 30px;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
justify-content: center;
|
||||||
|
text-align: right;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 3rem;
|
||||||
|
h1,
|
||||||
|
h2 {
|
||||||
|
margin-top: 0.5px;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-left: 2.5rem;
|
||||||
|
@media (min-width: 450px) {
|
||||||
|
margin-left: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-container {
|
.menu-container {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
width: 80%;
|
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
ul {
|
ul {
|
||||||
@@ -145,31 +171,36 @@
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
a {
|
a {
|
||||||
padding-left: 10px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: start;
|
justify-content: space-evenly;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: $basecolor2;
|
background-color: $basecolor2;
|
||||||
font-size: larger;
|
font-size: 20px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
border-bottom: solid $border-hover-color 2px;
|
||||||
|
border-radius: 0px 0px $default-border-radius $default-border-radius;
|
||||||
i {
|
i {
|
||||||
margin-right: 10%;
|
text-align: center;
|
||||||
|
height: 50px;
|
||||||
|
width: 50px;
|
||||||
|
border: none;
|
||||||
|
font-size: 30px;
|
||||||
|
background: none;
|
||||||
|
margin-left: 3rem;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
justify-content: center;
|
||||||
|
text-align: right;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 3rem;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
li {
|
|
||||||
border-left: 1px solid;
|
|
||||||
border-right: 1px solid;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
}
|
|
||||||
li:first-of-type {
|
|
||||||
border-top: 1px solid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
background-color: $default-active-color;
|
background-color: $default-active-color;
|
||||||
outline: solid 1px;
|
|
||||||
}
|
}
|
||||||
.wrapper {
|
.wrapper {
|
||||||
height: 0px;
|
height: 0px;
|
||||||
|
border-radius: 0px 0px $default-border-radius $default-border-radius;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<h3>{school.title[currentLanguage]}</h3>
|
<h3>{school.title[currentLanguage]}</h3>
|
||||||
<p>{school.content[currentLanguage]}</p>
|
<p>{school.content[currentLanguage]}</p>
|
||||||
<p>{school.year.start} - {school.year.end}</p>
|
<p>{school.year.start} {#if school.year.end} - {school.year.end}{/if}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
|
|||||||
@@ -25,6 +25,6 @@ export interface Job {
|
|||||||
ref: string;
|
ref: string;
|
||||||
}[];
|
}[];
|
||||||
languages: string[];
|
languages: string[];
|
||||||
tecnologies: string[];
|
technologies: string[];
|
||||||
images: string[];
|
images: string[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,44 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"year": {
|
"year": {
|
||||||
"start": "2022-01-03",
|
"start": "2024-09-23",
|
||||||
"end": ""
|
"end": ""
|
||||||
},
|
},
|
||||||
|
"title": {
|
||||||
|
"en": "Corley Cloud",
|
||||||
|
"it": "Corley Cloud"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"en": "In September 2024, I joined Corley Cloud, a company focused on building scalable and resilient cloud-native solutions.\nMy role involves designing and developing **serverless architectures** and **event-driven applications** using **AWS** services such as Lambda, API Gateway, DynamoDB, and Step Functions.\nThe main technologies I use are **Node.js** and **Python**.\nI contribute to the definition of **DevOps pipelines**, infrastructure as code with **Terraform** and **AWS SAM**, and best practices for CI/CD in cloud environments.",
|
||||||
|
"it": "Nel settembre 2024 ho iniziato a lavorare in Corley Cloud, un'azienda specializzata nella creazione di soluzioni cloud-native scalabili e resilienti.\nIl mio ruolo prevede la progettazione e lo sviluppo di **architetture serverless** e **applicazioni event-driven** utilizzando servizi **AWS** come Lambda, API Gateway, DynamoDB e Step Functions.\nLe tecnologie principali che utilizzo sono **Node.js** e **Python**.\nContribuisco alla definizione delle **pipeline DevOps**, dell’infrastruttura come codice con **Terraform** e **AWS SAM**, e delle best practice per CI/CD in ambienti cloud."
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"languages": [
|
||||||
|
"TypeScript",
|
||||||
|
"Python",
|
||||||
|
"Node.js",
|
||||||
|
"yaml",
|
||||||
|
"json",
|
||||||
|
"bash"
|
||||||
|
],
|
||||||
|
"technologies": [
|
||||||
|
"AWS Lambda",
|
||||||
|
"API Gateway",
|
||||||
|
"DynamoDB",
|
||||||
|
"Step Functions",
|
||||||
|
"Terraform",
|
||||||
|
"AWS SAM",
|
||||||
|
"GitHub Actions"
|
||||||
|
],
|
||||||
|
"images": [
|
||||||
|
"corley.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2022-01-03",
|
||||||
|
"end": "2024-09-06"
|
||||||
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "ALTEN italy",
|
"en": "ALTEN italy",
|
||||||
"it": "ALTEN italia"
|
"it": "ALTEN italia"
|
||||||
@@ -22,7 +57,7 @@
|
|||||||
"TypeScript",
|
"TypeScript",
|
||||||
"Python"
|
"Python"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Vue.js",
|
"Vue.js",
|
||||||
"Node.js",
|
"Node.js",
|
||||||
"Laravel",
|
"Laravel",
|
||||||
@@ -54,7 +89,7 @@
|
|||||||
"yaml",
|
"yaml",
|
||||||
"json"
|
"json"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Vue.js",
|
"Vue.js",
|
||||||
"Node.js",
|
"Node.js",
|
||||||
"Nuxt",
|
"Nuxt",
|
||||||
@@ -85,7 +120,7 @@
|
|||||||
"HTML",
|
"HTML",
|
||||||
"CSS"
|
"CSS"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Vue.js",
|
"Vue.js",
|
||||||
"Node.js",
|
"Node.js",
|
||||||
"Nuxt",
|
"Nuxt",
|
||||||
@@ -112,7 +147,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"PHP"
|
"PHP"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Telegram",
|
"Telegram",
|
||||||
"Composer",
|
"Composer",
|
||||||
"Docker"
|
"Docker"
|
||||||
@@ -136,7 +171,7 @@
|
|||||||
},
|
},
|
||||||
"collaborators": [],
|
"collaborators": [],
|
||||||
"languages": [],
|
"languages": [],
|
||||||
"tecnologies": [],
|
"technologies": [],
|
||||||
"images": [
|
"images": [
|
||||||
"/saxonhilllogo.webp"
|
"/saxonhilllogo.webp"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"TypeScript",
|
"TypeScript",
|
||||||
"JSON-schema"
|
"JSON-schema"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Svelte",
|
"Svelte",
|
||||||
"Node.js"
|
"Node.js"
|
||||||
],
|
],
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"TypeScript"
|
"TypeScript"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Node.js"
|
"Node.js"
|
||||||
],
|
],
|
||||||
"images": [
|
"images": [
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"C"
|
"C"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"QMK"
|
"QMK"
|
||||||
],
|
],
|
||||||
"images": [
|
"images": [
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
"bash",
|
"bash",
|
||||||
"python"
|
"python"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"raspberry"
|
"raspberry"
|
||||||
],
|
],
|
||||||
"images": [
|
"images": [
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"YAML"
|
"YAML"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Docker",
|
"Docker",
|
||||||
"Unraid",
|
"Unraid",
|
||||||
"GNU/Linux"
|
"GNU/Linux"
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
},
|
},
|
||||||
"collaborators": [],
|
"collaborators": [],
|
||||||
"languages": [],
|
"languages": [],
|
||||||
"tecnologies": [],
|
"technologies": [],
|
||||||
"images": [
|
"images": [
|
||||||
"/workstation.webp"
|
"/workstation.webp"
|
||||||
]
|
]
|
||||||
@@ -194,7 +194,7 @@
|
|||||||
"Solidity",
|
"Solidity",
|
||||||
"YAML"
|
"YAML"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Node.js",
|
"Node.js",
|
||||||
"AWS Lambda",
|
"AWS Lambda",
|
||||||
"Docker",
|
"Docker",
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"bash"
|
"bash"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Docker",
|
"Docker",
|
||||||
"GitHub Action"
|
"GitHub Action"
|
||||||
],
|
],
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"bash"
|
"bash"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Docker",
|
"Docker",
|
||||||
"GitHub Action"
|
"GitHub Action"
|
||||||
],
|
],
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
"languages": [
|
"languages": [
|
||||||
"C++"
|
"C++"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Qt"
|
"Qt"
|
||||||
],
|
],
|
||||||
"images": [
|
"images": [
|
||||||
@@ -313,7 +313,7 @@
|
|||||||
"PHP",
|
"PHP",
|
||||||
"SQL"
|
"SQL"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"Apache",
|
"Apache",
|
||||||
"MariaDB"
|
"MariaDB"
|
||||||
],
|
],
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
"SWL",
|
"SWL",
|
||||||
"ANTLR grammar"
|
"ANTLR grammar"
|
||||||
],
|
],
|
||||||
"tecnologies": [
|
"technologies": [
|
||||||
"ANTLR"
|
"ANTLR"
|
||||||
],
|
],
|
||||||
"images": [
|
"images": [
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tecnologies": {
|
"technologies": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
"content",
|
"content",
|
||||||
"collaborators",
|
"collaborators",
|
||||||
"languages",
|
"languages",
|
||||||
"tecnologies",
|
"technologies",
|
||||||
"images"
|
"images"
|
||||||
],
|
],
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
|
|||||||
@@ -1,29 +1,62 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"year": {
|
||||||
|
"start": "2024"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"en": "AWS Certified Developer – Associate",
|
||||||
|
"it": "AWS Certified Developer – Associate"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"en": " AWS Certified Developer – Associate – Skills in developing and managing applications on AWS.",
|
||||||
|
"it": " AWS Certified Developer – Associate – Competenze nello sviluppo e nella gestione di applicazioni su AWS."
|
||||||
|
},
|
||||||
|
"collaborators": [],
|
||||||
|
"technologies": [
|
||||||
|
"AWS"
|
||||||
|
],
|
||||||
|
"images": [
|
||||||
|
"AWS_DEV.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"year": {
|
"year": {
|
||||||
"start": "2016",
|
"start": "2016",
|
||||||
"end": "2020"
|
"end": "2020"
|
||||||
},
|
},
|
||||||
"title": {"en":"Bachelor's degree in Computer Science (EQF 6): ","it":"Laurea triennale in Scienze Informatiche (EQF 6)"},
|
"title": {
|
||||||
|
"en": "Bachelor's degree in Computer Science (EQF 6): ",
|
||||||
|
"it": "Laurea triennale in Scienze Informatiche (EQF 6)"
|
||||||
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"en":"Computer Science, Università degli Studi di Padova","it":"Corso triennale in Informatica all'Università degli Studi di Padova"},
|
"en": "Computer Science, Università degli Studi di Padova",
|
||||||
|
"it": "Corso triennale in Informatica all'Università degli Studi di Padova"
|
||||||
|
},
|
||||||
"collaborators": [],
|
"collaborators": [],
|
||||||
"languages": [],
|
"languages": [],
|
||||||
"tecnologies": [],
|
"technologies": [],
|
||||||
"images":["unipd-universita-di-padova.webp"]
|
"images": [
|
||||||
|
"unipd-universita-di-padova.webp"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"year": {
|
"year": {
|
||||||
"start": "2007",
|
"start": "2007",
|
||||||
"end": "2013"
|
"end": "2013"
|
||||||
},
|
},
|
||||||
"title": {"en":"High School diploma, Liceo Scientifico Tecnologico (EQF 4): ","it":"Diploma di maturità di Liceo Scientifico Tecnologico (EQF 4)"},
|
"title": {
|
||||||
|
"en": "High School diploma, Liceo Scientifico Tecnologico (EQF 4): ",
|
||||||
|
"it": "Diploma di maturità di Liceo Scientifico Tecnologico (EQF 4)"
|
||||||
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"en":"The scientific and technological high school I.T.I.S. Severi di Padova where instead of Latin, there were more physics, chemistry and basic programming lessons.",
|
"en": "The scientific and technological high school I.T.I.S. Severi di Padova where instead of Latin, there were more physics, chemistry and basic programming lessons.",
|
||||||
"it":"Corso di Liceo Scientifico Tecnologico all'istituto I.T.I.S. Severi di Padova, dove al posto del Latino i corsi puntavano di più su fisica, chimica e dei corsi introduttivi alla programmazione"},
|
"it": "Corso di Liceo Scientifico Tecnologico all'istituto I.T.I.S. Severi di Padova, dove al posto del Latino i corsi puntavano di più su fisica, chimica e dei corsi introduttivi alla programmazione"
|
||||||
|
},
|
||||||
"collaborators": [],
|
"collaborators": [],
|
||||||
"languages": [],
|
"languages": [],
|
||||||
"tecnologies": [],
|
"technologies": [],
|
||||||
"images":["logoSeveri.webp"]
|
"images": [
|
||||||
|
"logoSeveri.webp"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import {} from 'svelte';
|
||||||
import { MetaTags } from 'svelte-meta-tags';
|
import { MetaTags } from 'svelte-meta-tags';
|
||||||
import type { CurrentLanguage } from '$lib/types';
|
import type { CurrentLanguage } from '$lib/types';
|
||||||
import AboutMe from '$lib/elements/AboutMe.svelte';
|
import AboutMe from '$lib/elements/AboutMe.svelte';
|
||||||
import Jobs from '$lib/elements/Jobs.svelte';
|
import Jobs from '$lib/elements/Jobs.svelte';
|
||||||
import Menu from '$lib/elements/Menu.svelte';
|
import Menu from '$lib/elements/Menu.svelte';
|
||||||
import MenuMobile from '$lib/elements/MenuMobile.svelte';
|
|
||||||
import Training from '$lib/elements/Training.svelte';
|
import Training from '$lib/elements/Training.svelte';
|
||||||
import Data_jobs from '$lib/model/jobs.json';
|
import Data_jobs from '$lib/model/jobs.json';
|
||||||
import Data_portfolio from '$lib/model/portfolio.json';
|
import Data_portfolio from '$lib/model/portfolio.json';
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
contacts: { it: 'Contatti', en: 'Contacts' },
|
contacts: { it: 'Contatti', en: 'Contacts' },
|
||||||
portfolio: { it: 'Portfolio', en: 'Portfolio' }
|
portfolio: { it: 'Portfolio', en: 'Portfolio' }
|
||||||
};
|
};
|
||||||
|
let modalOpen: boolean = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<MetaTags
|
<MetaTags
|
||||||
@@ -52,20 +53,32 @@
|
|||||||
<!-- svelte-ignore a11y-invalid-attribute -->
|
<!-- svelte-ignore a11y-invalid-attribute -->
|
||||||
<LanguageSelector bind:currentLanguage />
|
<LanguageSelector bind:currentLanguage />
|
||||||
<Menu {currentLanguage} />
|
<Menu {currentLanguage} />
|
||||||
<div id="home" class="default test">
|
<div
|
||||||
|
class="default"
|
||||||
|
on:scroll={(event) => {
|
||||||
|
if (modalOpen) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
console.log(event);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span id="home" class="anchor" />
|
||||||
<AboutMe {currentLanguage} />
|
<AboutMe {currentLanguage} />
|
||||||
</div>
|
</div>
|
||||||
<div id="jobs" class="default">
|
<div class="default">
|
||||||
|
<span id="jobs" class="anchor" />
|
||||||
<h2>{titles.job[currentLanguage]}</h2>
|
<h2>{titles.job[currentLanguage]}</h2>
|
||||||
<Jobs {jobs} {currentLanguage} />
|
<Jobs {jobs} {currentLanguage} bind:modalOpen />
|
||||||
</div>
|
</div>
|
||||||
<div id="training" class="default">
|
<div class="default">
|
||||||
|
<span id="training" class="anchor" />
|
||||||
<h2>{titles.school[currentLanguage]}</h2>
|
<h2>{titles.school[currentLanguage]}</h2>
|
||||||
<Training {currentLanguage} />
|
<Training {currentLanguage} />
|
||||||
</div>
|
</div>
|
||||||
<div id="portfolio" class="default">
|
<div class="default">
|
||||||
|
<span id="portfolio" class="anchor" />
|
||||||
<h2>{titles.portfolio[currentLanguage]}</h2>
|
<h2>{titles.portfolio[currentLanguage]}</h2>
|
||||||
<Jobs jobs={portfolio} {currentLanguage} />
|
<Jobs jobs={portfolio} {currentLanguage} bind:modalOpen />
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
@@ -77,4 +90,14 @@
|
|||||||
font-size: large;
|
font-size: large;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.anchor {
|
||||||
|
position: absolute;
|
||||||
|
margin-top: -150px;
|
||||||
|
@media (min-width: 460px) {
|
||||||
|
margin-top: -100px;
|
||||||
|
}
|
||||||
|
@media (min-width: $min-tablet) {
|
||||||
|
margin-top: -60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
BIN
static/AWS_DEV.png
Normal file
BIN
static/AWS_DEV.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"year": {
|
|
||||||
"start": "2022-05-15",
|
|
||||||
"end": ""
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"en": "blog",
|
|
||||||
"it": "Il blog"
|
|
||||||
},
|
|
||||||
"content": {
|
|
||||||
"en": "Articolo di prova in inglese",
|
|
||||||
"it": "Articolo di prova in italiano."
|
|
||||||
},
|
|
||||||
"collaborators": [],
|
|
||||||
"languages": [],
|
|
||||||
"tecnologies": [],
|
|
||||||
"images": []
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<svg height="144" width="144" xmlns="http://www.w3.org/2000/svg"><path d="m71.05 23.68c-26.06 0-47.27 21.22-47.27 47.27s21.22 47.27 47.27 47.27 47.27-21.22 47.27-47.27-21.22-47.27-47.27-47.27zm-.07 4.2a3.1 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm7.12 5.12a38.27 38.27 0 0 1 26.2 18.66l-3.67 8.28c-.63 1.43.02 3.11 1.44 3.75l7.06 3.13a38.27 38.27 0 0 1 .08 6.64h-3.93c-.39 0-.55.26-.55.64v1.8c0 4.24-2.39 5.17-4.49 5.4-2 .23-4.21-.84-4.49-2.06-1.18-6.63-3.14-8.04-6.24-10.49 3.85-2.44 7.85-6.05 7.85-10.87 0-5.21-3.57-8.49-6-10.1-3.42-2.25-7.2-2.7-8.22-2.7h-40.6a38.27 38.27 0 0 1 21.41-12.08l4.79 5.02c1.08 1.13 2.87 1.18 4 .09zm-44.2 23.02a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm74.15.14a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm-68.29.5h5.42v24.44h-10.94a38.27 38.27 0 0 1 -1.24-14.61l6.7-2.98c1.43-.64 2.08-2.31 1.44-3.74zm22.62.26h12.91c.67 0 4.71.77 4.71 3.8 0 2.51-3.1 3.41-5.65 3.41h-11.98zm0 17.56h9.89c.9 0 4.83.26 6.08 5.28.39 1.54 1.26 6.56 1.85 8.17.59 1.8 2.98 5.4 5.53 5.4h16.14a38.27 38.27 0 0 1 -3.54 4.1l-6.57-1.41c-1.53-.33-3.04.65-3.37 2.18l-1.56 7.28a38.27 38.27 0 0 1 -31.91-.15l-1.56-7.28c-.33-1.53-1.83-2.51-3.36-2.18l-6.43 1.38a38.27 38.27 0 0 1 -3.32-3.92h31.27c.35 0 .59-.06.59-.39v-11.06c0-.32-.24-.39-.59-.39h-9.15zm-14.43 25.33a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm46.05.14a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11z"/><path d="m115.68 70.95a44.63 44.63 0 0 1 -44.63 44.63 44.63 44.63 0 0 1 -44.63-44.63 44.63 44.63 0 0 1 44.63-44.63 44.63 44.63 0 0 1 44.63 44.63zm-.84-4.31 6.96 4.31-6.96 4.31 5.98 5.59-7.66 2.87 4.78 6.65-8.09 1.32 3.4 7.46-8.19-.29 1.88 7.98-7.98-1.88.29 8.19-7.46-3.4-1.32 8.09-6.65-4.78-2.87 7.66-5.59-5.98-4.31 6.96-4.31-6.96-5.59 5.98-2.87-7.66-6.65 4.78-1.32-8.09-7.46 3.4.29-8.19-7.98 1.88 1.88-7.98-8.19.29 3.4-7.46-8.09-1.32 4.78-6.65-7.66-2.87 5.98-5.59-6.96-4.31 6.96-4.31-5.98-5.59 7.66-2.87-4.78-6.65 8.09-1.32-3.4-7.46 8.19.29-1.88-7.98 7.98 1.88-.29-8.19 7.46 3.4 1.32-8.09 6.65 4.78 2.87-7.66 5.59 5.98 4.31-6.96 4.31 6.96 5.59-5.98 2.87 7.66 6.65-4.78 1.32 8.09 7.46-3.4-.29 8.19 7.98-1.88-1.88 7.98 8.19-.29-3.4 7.46 8.09 1.32-4.78 6.65 7.66 2.87z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB |
BIN
static/corley.png
Normal file
BIN
static/corley.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
@@ -1,4 +0,0 @@
|
|||||||
[ZoneTransfer]
|
|
||||||
ZoneId=3
|
|
||||||
ReferrerUrl=https://cloudconvert.com/
|
|
||||||
HostUrl=https://storage.cloudconvert.com/tasks/d2e68ca0-c4ea-4d5c-a821-99cb9bc0e2a1/photo_2023-05-27_14-07-56.webp?AWSAccessKeyId=cloudconvert-production&Expires=1685275786&Signature=e0WAf7JckXFaWlpmjR2VoxHuGsQ%3D&response-content-disposition=attachment%3B%20filename%3D%22photo_2023-05-27_14-07-56.webp%22&response-content-type=image%2Fwebp
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 334 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 9.2 KiB |
@@ -1,8 +1,10 @@
|
|||||||
import { sveltekit } from '@sveltejs/kit/vite';
|
import { sveltekit } from '@sveltejs/kit/vite';
|
||||||
import type { UserConfig } from 'vite';
|
import type { UserConfig, defineConfig } from 'vite';
|
||||||
|
|
||||||
const config: UserConfig = {
|
const config: UserConfig = {
|
||||||
plugins: [sveltekit()]
|
plugins: [sveltekit()]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// config.server = { port: 80, origin: 'pettinato.eu' };
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
|
|||||||
11
vite.config.ts.js
Normal file
11
vite.config.ts.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// vite.config.ts
|
||||||
|
import { sveltekit } from "@sveltejs/kit/vite";
|
||||||
|
var config = {
|
||||||
|
plugins: [sveltekit()]
|
||||||
|
};
|
||||||
|
// config.server = { port: 8800, origin: "pettinato.eu" };
|
||||||
|
var vite_config_default = config;
|
||||||
|
export {
|
||||||
|
vite_config_default as default
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN2ZWx0ZWtpdCB9IGZyb20gJ0BzdmVsdGVqcy9raXQvdml0ZSc7XG5pbXBvcnQgdHlwZSB7IFVzZXJDb25maWcsIGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnO1xuXG5jb25zdCBjb25maWc6IFVzZXJDb25maWcgPSB7XG5cdHBsdWdpbnM6IFtzdmVsdGVraXQoKV1cbn07XG5cbmNvbmZpZy5zZXJ2ZXIgPSB7IHBvcnQ6IDgwLCBvcmlnaW46ICdwZXR0aW5hdG8uZXUnIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbmZpZztcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBQTtBQUdBLElBQU0sU0FBcUI7QUFBQSxFQUMxQixTQUFTLENBQUM7QUFBQTtBQUdYLE9BQU8sU0FBUyxFQUFFLE1BQU0sSUFBSSxRQUFRO0FBRXBDLElBQU8sc0JBQVE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
||||||
Reference in New Issue
Block a user