diff --git a/.drone.yml b/.drone.yml index 946cd83..7e92387 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,10 +13,11 @@ steps: image: node:latest volumes: - name: host-website-dist - path: /drone/src/dist + path: /mnt/website commands: - npm install - npm run build + - cp -rT ./dist /mnt/website volumes: - name: host-website-dist diff --git a/public/favicon.svg b/public/favicon.svg index f157bd1..45d8b44 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,9 +1,95 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/gallery/006-pulizie.jpg b/src/assets/gallery/006-pulizie.jpg new file mode 100644 index 0000000..1d877d0 Binary files /dev/null and b/src/assets/gallery/006-pulizie.jpg differ diff --git a/src/client/Appunti.jsx b/src/client/Appunti.jsx index 415f73f..dfac3c0 100644 --- a/src/client/Appunti.jsx +++ b/src/client/Appunti.jsx @@ -13,7 +13,7 @@ * @param {AppuntiCardProps} param0 * @returns */ -export const AppuntiCard = ({ image, course, title, author, courseYear }) => { +export const AppuntiCard = ({ course, title, author, courseYear }) => { return (
diff --git a/src/client/UtentiPage.tsx b/src/client/UtentiPage.tsx index 7fe7345..8a71db9 100644 --- a/src/client/UtentiPage.tsx +++ b/src/client/UtentiPage.tsx @@ -1,4 +1,4 @@ -import { effect, useComputed, useSignal } from '@preact/signals' +import { useComputed, useSignal } from '@preact/signals' import Fuse from 'fuse.js' import { useEffect } from 'preact/hooks' import { ShowMore } from './Paginate' @@ -67,22 +67,22 @@ export const UtentiPage = () => { $filter.value === 'macchinisti' ? $utentiData.value.filter(user => MACCHINISTI.includes(user.uid)) : $filter.value === 'rappstud' - ? $utentiData.value.filter(user => RAPPSTUD.includes(user.uid)) - : $utentiData.value, + ? $utentiData.value.filter(user => RAPPSTUD.includes(user.uid)) + : $utentiData.value ) const $fuse = useComputed( () => new Fuse($filteredData.value, { keys: ['gecos', 'uid'], - }), + }) ) const $searchText = useSignal('') const $searchResults = useComputed(() => $searchText.value.trim().length > 0 - ? ($fuse.value?.search($searchText.value).map(result => result.item) ?? []) - : $filteredData.value, + ? $fuse.value?.search($searchText.value).map(result => result.item) ?? [] + : $filteredData.value ) useEffect(() => { @@ -107,7 +107,7 @@ export const UtentiPage = () => { <> {v.icon} {v.label} , - ]), + ]) )}
{poissonUser.gecos}
diff --git a/src/client/lib/util.ts b/src/client/lib/util.ts index 2acc7df..fc52ce1 100644 --- a/src/client/lib/util.ts +++ b/src/client/lib/util.ts @@ -1,9 +1,9 @@ -import { useEffect, useMemo, useState } from 'preact/hooks' +import { useEffect, useState } from 'preact/hooks' export const trottleDebounce = ( fn: (...args: T) => R, delay: number, - options: { leading?: boolean; trailing?: boolean } = {}, + options: { leading?: boolean; trailing?: boolean } = {} ): ((...args: T) => R | undefined) => { let lastCall = 0 let lastResult: R | undefined diff --git a/src/content/config.ts b/src/content/config.ts index 4434a1f..6033808 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -25,6 +25,7 @@ const guidesCollection = defineCollection({ id: z.string(), title: z.string(), description: z.string(), + author: z.string(), series: z.string().optional(), tags: z.array(z.string()), }), diff --git a/src/content/guides/2024-02-29-git-101.md b/src/content/guides/2024-02-29-git-101.md index ddeac85..25fe2e0 100644 --- a/src/content/guides/2024-02-29-git-101.md +++ b/src/content/guides/2024-02-29-git-101.md @@ -15,14 +15,19 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget ### **Cos'è Git?** - **Sistema di controllo di versione**: Gestisce le modifiche al codice sorgente nel tempo. + - **Distribuito**: Ogni sviluppatore ha una copia del repository. + - **Veloce e leggero**: Ottimizzato per la velocità e le prestazioni. ### **Perché usare Git?** - **Tracciabilità**: Ogni modifica è tracciata e reversibile. + - **Collaborazione**: Più persone possono lavorare sullo stesso progetto. + - **Backup**: Repository remoto per il backup del codice. + - **Branching**: Lavoriamo su nuove funzionalità senza influenzare il codice principale. --- @@ -34,14 +39,19 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget ### **Windows** 1. Scarichiamo [Git for Windows](https://git-scm.com/download/win). + 2. Seguiamo il wizard di installazione. + 3. Durante l'installazione: + - Selezioniamo "Git Bash" come terminale. + - Configuriamo un editor di testo (es. Vim o Nano). ### **macOS** 1. Usiamo `brew` per installare Git: + ```bash brew install git ``` @@ -49,12 +59,16 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget ### **Linux** 1. Installiamo Git usando il nostro gestore di pacchetti: + - **Debian/Ubuntu**: + ```bash sudo apt update sudo apt install git ``` + - **Arch Linux**: + ```bash sudo pacman -S git ``` @@ -83,6 +97,7 @@ git config --list ### **Repository** - **Repository locale**: Una cartella sul nostro computer che contiene il nostro progetto. + - **Repository remoto**: Una versione del progetto ospitata su un server (es. GitHub, GitLab). ### **Branch** @@ -160,6 +175,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi #### Cosa succede dietro le quinte: - Git salva lo stato dei file nell'area di staging in un commit, che viene aggiunto alla cronologia del repository locale. + - Ogni commit ha un identificatore unico (hash) che consente di risalire facilmente alle modifiche in qualsiasi momento. --- @@ -171,6 +187,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi #### Come funziona: 1. Dopo aver fatto uno o più commit locali, dobbiamo inviare queste modifiche al repository remoto. + 2. Per fare questo, usiamo il comando **`git push`** seguito dal nome del remoto (di solito `origin` per il repository remoto di default) e dal nome del branch (di solito `main` o `master`, ma potrebbe essere qualsiasi altro nome di branch che stiamo utilizzando). Comando per inviare le modifiche: @@ -182,6 +199,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi #### Cosa succede dietro le quinte: - Git confronta il nostro branch locale con il branch remoto. Se ci sono nuovi commit nel branch remoto che non sono ancora nel nostro branch locale, ci verrà richiesto di fare un **pull** per aggiornare prima di fare il push. + - Il nostro repository locale viene sincronizzato con il remoto, rendendo le modifiche visibili a tutti gli altri che hanno accesso al repository remoto. #### Errori comuni: @@ -197,15 +215,19 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi #### Come funziona: 1. Se altri collaboratori hanno fatto modifiche al repository remoto, possiamo ottenere queste modifiche con **`git pull`**. Questo comando aggiorna il nostro branch locale con le modifiche più recenti dal repository remoto. + 2. Eseguiamo il comando: + ```bash git pull origin main ``` + In questo caso, `origin` è il nome del repository remoto (il nome predefinito quando cloni un repository), e `main` è il branch che vogliamo aggiornare. #### Cosa succede dietro le quinte: - **`git fetch`** scarica tutte le modifiche dal repository remoto, ma non le integra ancora nel nostro codice. + - **`git merge`** unisce le modifiche scaricate al nostro branch attuale, risolvendo eventuali conflitti, se necessario. #### Errori comuni: @@ -243,13 +265,17 @@ git switch -c Per unire un branch nel branch principale (di solito chiamato `main`): 1. Spostiamoci sul branch principale: + ```bash git checkout main ``` + 2. Eseguiamo il merge del branch desiderato: + ```bash git merge ``` + Sostituiamo `` con il nome del branch che vogliamo unire. ### Risoluzione dei conflitti @@ -257,15 +283,21 @@ Per unire un branch nel branch principale (di solito chiamato `main`): Quando due persone modificano lo stesso file, Git può generare un conflitto. Ecco come risolverlo: 1. Identifichiamo il file in conflitto: + ```bash git status ``` + 2. Modifichiamo manualmente il file per risolvere il conflitto. Cerchiamo i segni di conflitto (`<<<<<<<`, `=======`, `>>>>>>>`) e scegliamo quali modifiche mantenere. + 3. Aggiungiamo il file risolto allo stage: + ```bash git add ``` + 4. Concludiamo con un commit per salvare le modifiche risolte: + ```bash git commit ``` @@ -283,10 +315,13 @@ git diff ### **Annullare modifiche** 1. **Prima del commit**: + ```bash git checkout -- ``` + 2. **Dopo il commit**: + ```bash git reset --soft HEAD~1 ``` @@ -302,7 +337,9 @@ git branch -d ## **10. Best practices** - Scriviamo messaggi di commit chiari e descrittivi. + - Creiamo branch per nuove funzionalità o bugfix. + - Sincronizziamo frequentemente il nostro repository locale con quello remoto. --- @@ -310,5 +347,7 @@ git branch -d ## **11. Risorse aggiuntive** - [Documentazione ufficiale di Git](https://git-scm.com/doc) + - [Guida interattiva Learn Git Branching](https://learngitbranching.js.org/) + - [GitHub Docs](https://docs.github.com/) diff --git a/src/content/guides/2024-07-30-pagina-poisson-con-astro.md b/src/content/guides/2024-07-30-pagina-poisson-con-astro.md index 42ce97f..254bd95 100644 --- a/src/content/guides/2024-07-30-pagina-poisson-con-astro.md +++ b/src/content/guides/2024-07-30-pagina-poisson-con-astro.md @@ -6,7 +6,7 @@ author: Antonio De Lucreziis tags: [astro, website] --- -In questa guida vedremo come creare una pagina Poisson moderna utilizzando Astro, un nuovo framework di sviluppo web statico. +In questa guida vedremo come creare una pagina Poisson moderna utilizzando Astro, un nuovo framework di sviluppo web statico. Per prima cosa installeremo NodeJS sul nostro computer, poi creeremo un nuovo progetto Astro e infine dopo averlo generato, lo caricheremo su Poisson. ## Setup @@ -35,7 +35,7 @@ cd nome-del-progetto npm install ``` -Se ad esempio volessimo usare un tema come [Astro Nano](https://github.com/markhorn-dev/astro-nano) possiamo fare così: +Se ad esempio volessimo usare un tema come "[Astro Nano](https://github.com/markhorn-dev/astro-nano)" possiamo fare così: ```bash git clone https://github.com/markhorn-dev/astro-nano sito-poisson @@ -62,8 +62,19 @@ Per vedere il nostro progetto in locale possiamo eseguire il comando: npm run dev ``` -A questo punto in base al tema scelto possiamo modificare i file dentro `src/pages` per cambiare il contenuto delle pagine. Molti temi sono preimpostati per scrivere contenuti in Markdown, ad esempio per il _template blog_ possiamo scrivere gli articoli per il nostro blog in `src/content/blog/$NOME_POST.md`. +A questo punto in base al tema scelto possiamo modificare i file dentro `src/pages` per cambiare il contenuto delle pagine. Molti temi sono preimpostati per scrivere contenuti in Markdown, ad esempio per il _template blog_ possiamo scrivere gli articoli per il nostro blog in `src/content/blog/{nome_post}.md`. -## Deploy +## Appunti Una volta creato il progetto possiamo caricare appunti e dispense nella cartella `/public` + +## Deploy + +Per caricare il nostro sito su Poisson possiamo usare il comando `rsync`: + +```bash +npm run build +rsync -avz dist/ username@poisson.phc.dm.unipi.it:public_html/ +``` + +Dove `username` è il nostro username Poisson. Da notare che gli `/` alla fine di `dist/` e `public_html/` sono importanti per evitare di creare delle cartelle per errore. diff --git a/src/content/guides/2024-11-17-attivazione-poisson.md b/src/content/guides/2024-11-17-attivazione-poisson.md index d29c158..f4694f8 100644 --- a/src/content/guides/2024-11-17-attivazione-poisson.md +++ b/src/content/guides/2024-11-17-attivazione-poisson.md @@ -13,7 +13,9 @@ Poisson è un server autogestito dalla comunità studentesca di matematica, da s Se non si è mai creato un account Poisson, è necessario inviare una richiesta via email a **macchinisti@lists.dm.unipi.it** includendo: - Nome + - Cognome + - Username di ateneo (quello associato alla propria email istituzionale) Nella mail è sufficiente specificare che si desidera attivare un account Poisson. I "macchinisti" si occuperanno di attivare l'account il prima possibile. @@ -33,6 +35,7 @@ Assicuriamoci di accedere con le credenziali di ateneo per recuperare username e Per accedere a Poisson via SSH, è necessario: 1. Aprire un terminale (su Linux/Mac) o utilizzare un client SSH come PuTTY (su Windows). + 2. Eseguire il comando: ```bash @@ -76,4 +79,4 @@ Dove `` è il proprio username. ### Creazione di pagine web più complesse -Per creare pagine web più complesse, suggeriamo di utilizzare il framework [Astro](https://astro.build/), che permette di creare siti web statici in modo semplice e veloce. A questo [link](<[2024-07-30-pagina-poisson-con-astro.md](https://phc.dm.unipi.it/)>) troviamo una guida su come iniziare a utilizzare Astro per creare la nostra pagina web e caricarla su Poisson. +Per creare pagine web più complesse, suggeriamo di utilizzare il framework [Astro](https://astro.build/), che permette di creare siti web statici in modo semplice e veloce. [Abbiamo scritto una guida](/guide/pagina-poisson-con-astro) su come iniziare a utilizzare Astro per creare la nostra pagina web e caricarla su Poisson. diff --git a/src/content/guides/2024-11-17-recupero-password-poisson.md b/src/content/guides/2024-11-17-recupero-password-poisson.md index 2a6a271..2a12532 100644 --- a/src/content/guides/2024-11-17-recupero-password-poisson.md +++ b/src/content/guides/2024-11-17-recupero-password-poisson.md @@ -9,7 +9,9 @@ tags: [poisson, password] Se per qualche strano motivo hai dimenticato la tua password Poisson, niente paura! La procedura è super semplice: 1. Scrivi una mail a **macchinisti@lists.dm.unipi.it**. + 2. Nella mail, specifica il tuo nome, cognome, username di ateneo (quello della tua email istituzionale) e se lo ricordi, anche il tuo username Poisson. + 3. Attendi pazientemente la risposta dei macchinisti, che ti resetteranno la password e ti invieranno una nuova via email. E voilà, in un batter d'occhio sarai di nuovo pronto a entrare nel fantastico mondo di Poisson. diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index e4657eb..62b3ea6 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -31,9 +31,10 @@ const { title, description, thumbnail, pageTags } = Astro.props + {thumbnail && } - +