{"id":68320,"date":"2023-04-27T11:34:14","date_gmt":"2023-04-27T10:34:14","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=68320&#038;preview=true&#038;preview_id=68320"},"modified":"2023-06-09T16:49:39","modified_gmt":"2023-06-09T15:49:39","slug":"eleventy","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/eleventy\/","title":{"rendered":"Come Creare un Sito Web Statico Originale con Eleventy (11ty)"},"content":{"rendered":"<p>Con l&#8217;avvento dei <a href=\"https:\/\/kinsta.com\/it\/blog\/generatori-di-siti-statici\/\">generatori di siti statici<\/a> (SSG) come Eleventy, creare un sito web statico, originale ed efficiente non \u00e8 mai stato cos\u00ec facile.<\/p>\n<p>In questo articolo scopriremo come utilizzare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.<\/p>\n<p>Impareremo anche a distribuire un sito web statico direttamente <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-application\">dal repository GitHub alla piattaforma di Hosting di Applicazioni di Kinsta<\/a>, rendendo il vostro sito web attivo in tempi brevi su un dominio gratuito <em>.kinsta.app<\/em>.<\/p>\n<p>Ecco una <a href=\"https:\/\/ty-portfolio-lvjy7.kinsta.app\/\" target=\"_blank\" rel=\"noopener noreferrer\">demo live<\/a> del sito portfolio statico che realizzeremo con Eleventy.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/11ty-portfolio-static-site.jpg\" alt=\"Un elegante sito portfolio statico\" width=\"1600\" height=\"788\"><figcaption class=\"wp-caption-text\">Un elegante sito portfolio statico<\/figcaption><\/figure>\n<p>\u00c8 possibile accedere al <a href=\"\/\/github.com\/kinsta\/11ty-portfolio\" target=\"_blank\" rel=\"noopener noreferrer\">repository GitHub<\/a> di questo progetto se volete dare un&#8217;occhiata pi\u00f9 da vicino.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Cos&#8217;\u00e8 Eleventy?<\/h2>\n<p>Eleventy, noto anche come 11ty, \u00e8 un generatore di siti statici che crea siti web basati su <a href=\"https:\/\/kinsta.com\/it\/blog\/html\/\">HTML<\/a>, <a href=\"https:\/\/kinsta.com\/it\/blog\/best-practice-css\/\">CSS<\/a> e <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> senza bisogno di database e linguaggi di programmazione <a href=\"https:\/\/kinsta.com\/it\/blog\/backend-vs-frontend\/\">backend<\/a>.<\/p>\n<p>Eleventy \u00e8 noto per la sua semplicit\u00e0 e flessibilit\u00e0, in quanto non obbliga a usare un solo linguaggio o framework di template. Supporta pi\u00f9 di 10 linguaggi di template e permette di utilizzarne quanti se ne vuole in un singolo progetto:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/11ty-template-languages.jpg\" alt=\"Linguaggi di template supportati da Eleventy\" width=\"1600\" height=\"226\"><figcaption class=\"wp-caption-text\">Linguaggi di template supportati da Eleventy<\/figcaption><\/figure>\n<p>Eleventy, come la maggior parte dei SSG, permette di costruire i contenuti di un sito statico utilizzando componenti riutilizzabili invece di creare documenti HTML completi per ogni pagina.<\/p>\n\n<h2>Come installare Eleventy<\/h2>\n<p>Installare Eleventy \u00e8 facile. Ecco come fare:<\/p>\n<ol start=\"1\">\n<li>Assicuratevi di avere installato <a href=\"https:\/\/kinsta.com\/it\/blog\/node-js\/\">Node.js<\/a> sul vostro computer. Potete effettuare una verifica eseguendo il comando <code>node -v<\/code> nel vostro terminale. Non \u00e8 disponibile? Ecco <a href=\"https:\/\/kinsta.com\/it\/blog\/come-installare-node-js\/\">come installare Node.js<\/a> sul computer.<\/li>\n<li>Create una nuova cartella per il vostro progetto.<\/li>\n<li>Aprite il terminale ed eseguite il comando <code>npm init -y<\/code> nella directory del progetto per inizializzare un nuovo progetto Node.js, creando un file <strong>package.json<\/strong> con le impostazioni predefinite.<\/li>\n<li>Eseguite il comando <code>npm install @11ty\/eleventy --save-dev<\/code> per installare il pacchetto come dipendenza di sviluppo nel vostro progetto.<\/li>\n<li>Ecco fatto! Ora potete eseguire Eleventy lanciando il comando <code>npx @11ty\/eleventy<\/code> nella directory del vostro progetto. Questo generer\u00e0 i file del vostro sito e li invier\u00e0 alla directory <strong>_site<\/strong> (o alla directory da voi configurata) nella cartella del progetto.<\/li>\n<\/ol>\n<p><strong>Nota:<\/strong> quando eseguite il comando <code>npx @11ty\/eleventy<\/code> otterrete questo risultato:<\/p>\n<pre><code class=\"language-bash\">[11ty] Wrote 0 files in 0.01 seconds (v2.0.0)<\/code><\/pre>\n<p>Qui vengono scritti 0 file perch\u00e9 non ci sono template nella cartella del progetto.<\/p>\n<h2>Comandi e configurazione di Eleventy<\/h2>\n<p>Ora avete creato il vostro progetto Eleventy, ma non \u00e8 tutto. Dovete creare alcune configurazioni e conoscere alcuni comandi di base per il vostro sito statico che pu\u00f2 essere servito al browser.<\/p>\n<h3>Comandi di Eleventy<\/h3>\n<p>Ecco alcuni dei principali comandi di Eleventy che dovreste conoscere:<\/p>\n<ul>\n<li><code>npx eleventy<\/code>: Questo comando viene utilizzato per creare il sito e inviare il risultato alla cartella <strong>_site<\/strong> (o alla cartella che avete configurato come directory di output).<\/li>\n<li><code>npx @11ty\/eleventy --serve<\/code>: Questo comando avvia un server locale in modo che possiate vedere l&#8217;anteprima del sito nel browser. Quando apportate delle modifiche al sito, il progetto verr\u00e0 automaticamente ricostruito e aggiornato nel browser.<\/li>\n<li><code>npx @11ty\/eleventy --serve --port=8081<\/code>: Questo comando avvia il server Eleventy e specifica una porta personalizzata su cui il server sar\u00e0 in ascolto.<\/li>\n<li><code>npx @11ty\/eleventy --watch<\/code>: Questo comando controlla che i file del progetto non vengano modificati e ricostruisce automaticamente il sito quando necessario.<\/li>\n<\/ul>\n<p>Non sar\u00e0 necessario memorizzare questi comandi perch\u00e9 potrete aggiungerli ai comandi generali nell&#8217;oggetto scripts del file package.json:<\/p>\n<pre><code class=\"language-bash\">\"scripts\": {\n    \"start\": \"npx @11ty\/eleventy --serve\",\n    \"watch\": \"npx @11ty\/eleventy --watch\",\n    \"build\": \"npx eleventy\"\n  },<\/code><\/pre>\n<p>Ora potete utilizzare <code>npm start<\/code> per servire la vostra applicazione al posto di <code>npx @11ty\/eleventy --serve<\/code>, e potrete anche eseguire <code>npm run build<\/code> al posto di <code>npx eleventy<\/code>.<\/p>\n<h3>Come configurare un sito statico con Eleventy<\/h3>\n<p>Eleventy \u00e8 &#8220;zero-config&#8221; per impostazione predefinita e dispone di opzioni di configurazione flessibili. Ecco alcune opzioni di configurazione chiave che dovreste conoscere:<\/p>\n<ul>\n<li><strong>input:<\/strong> Questa opzione permette di specificare la directory dei file del progetto. \u00c8 consigliabile utilizzare <strong>src<\/strong>.<\/li>\n<li><strong>output:<\/strong> Questa opzione permette di specificare la cartella in cui il sito costruito deve essere inviato. Per impostazione predefinita, Eleventy invia l&#8217;output alla cartella <strong>_site<\/strong>. (Molti sviluppatori usano <strong>public<\/strong>).<\/li>\n<li><strong>templateFormats:<\/strong> Questa opzione permette di specificare quali estensioni di file devono essere elaborate come template. Per impostazione predefinita, Eleventy elabora i file <strong>.html<\/strong>, <strong>.njk<\/strong> e <strong>.md<\/strong> come template.<\/li>\n<\/ul>\n<p>Questi sono solo alcuni dei comandi e delle opzioni di configurazione disponibili in Eleventy. Per configurare il vostro progetto Eleventy, create un file <strong>.eleventy.js<\/strong> nella root del progetto. Quindi incollate questo codice nel file per dare al progetto una struttura che includa le directory di input e output:<\/p>\n<pre><code class=\"language-js\">module.exports = function (eleventyConfig) {\n    return {\n        dir: {\n            input: 'src',\n            output: 'public',\n        },\n    };\n};<\/code><\/pre>\n<p><strong>Nota:<\/strong> <code>eleventyConfig<\/code> viene passato come argomento per fornire ulteriori opzioni di configurazione che verranno utilizzate in seguito in questo progetto.<\/p>\n<h2>Come visualizzare l&#8217;anteprima di un sito Eleventy<\/h2>\n<p>Ora conoscete alcuni comandi chiave che possono essere utilizzati per visualizzare l&#8217;anteprima del vostro sito web statico Eleventy, ma quando eseguite il comando, ad esempio <code>npx @11ty\/eleventy<\/code>, non viene servito nulla. Questo perch\u00e9 non \u00e8 presente alcun file di template.<\/p>\n<p>Potete creare una cartella <strong>src<\/strong> nella cartella principale del progetto, quindi creare alcuni file template come <strong>index.html<\/strong> o utilizzare il linguaggio template che preferite per rappresentare la home page:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"UTF-8\" \/&gt;\n        &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" \/&gt;\n        &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/&gt;\n        &lt;title&gt;Eleventy Static Site&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        Hello World!\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Se ora eseguite il comando <code>npx @11ty\/eleventy<\/code>, verr\u00e0 creata una cartella <strong>pubblica<\/strong> con il file statico generato. Sicuramente vorrete che questo file venga inviato al vostro browser e che venga abilitata la funzione di ricarica a caldo. Questo \u00e8 possibile eseguendo il seguente comando:<\/p>\n<pre><code class=\"language-bash\">npx @11ty\/eleventy --serve<\/code><\/pre>\n<p>Questo servir\u00e0 il sito su http:\/\/localhost:8080\/.<\/p>\n<p>Questi comandi sono piuttosto difficili da memorizzare e da utilizzare sempre. Li avete gi\u00e0 aggiunti alla sintassi familiare nel file <strong>package.json<\/strong>, quindi potrete usare <code>npm start<\/code> per servire l&#8217;applicazione su <a href=\"http:\/\/localhost:8080\/\">http:\/\/localhost:8080\/.<\/a><\/p>\n<h2>Come creare un sito web statico di portfolio con Eleventy<\/h2>\n<p>Ora sapete come creare un sito statico con Eleventy. Creiamo il progetto del portfolio.<\/p>\n<p>\u00c8 possibile creare un nuovo progetto Eleventy da zero, ma magari preferite avere gi\u00e0 delle immagini, CSS e contenuti pronti per il progetto, quindi abbiamo creato un <a href=\"https:\/\/github.com\/olawanlejoel\/11ty-portfolio-starter\" target=\"_blank\" rel=\"noopener noreferrer\">template di repository GitHub<\/a> per aiutarvi a velocizzare le cose. In GitHub, selezionate <strong>Use this template<\/strong> &gt; <strong>Create a new repository<\/strong> per copiare queste risorse e i file di configurazione iniziali in un nuovo repository, quindi scaricateli sul vostro computer locale.<\/p>\n<p>Il progetto avr\u00e0 la seguente struttura:<\/p>\n<pre><code class=\"language-bash\">\u251c\u2500\u2500 node_modules\/\n\u251c\u2500\u2500 public\/\n\u251c\u2500\u2500 src\/\n |        \u251c\u2500\u2500 _includes\n |                      \u251c\u2500\u2500 layouts\n \u2502       \u251c\u2500\u2500 assets\n \u2502       \u251c\u2500\u2500 css\n \u2502       \u251c\u2500\u2500 projects\n \u2502       \u2514\u2500\u2500 index.njk\n\u251c\u2500\u2500 .eleventy.js\n\u251c\u2500\u2500 .gitignore\n\u251c\u2500\u2500 package.lock.json\n\u2514\u2500\u2500 package.json<\/code><\/pre>\n<h3>Come usare i template in Eleventy<\/h3>\n<p>Quando si usa Eleventy, ci sono tre tipi principali di template che dovete conoscere. Questi template possono essere creati con Nunjucks, che permette di definire variabili, cicli, condizionali e altre logiche che possono essere utilizzate per generare dinamicamente il contenuto della pagina.<\/p>\n<ul>\n<li><strong>Template di pagina:<\/strong> Definiscono la struttura e il contenuto delle singole pagine del sito web.<\/li>\n<li><strong>Template di layout:<\/strong> Definiscono la struttura e il design generale delle pagine del sito web. Di solito includono elementi comuni come header, footer, menu di navigazione e barre laterali, che vengono condivisi tra pi\u00f9 pagine.<\/li>\n<li><strong>Template parziali:<\/strong> Definiscono piccole sezioni riutilizzabili del markup HTML del sito web. In genere vengono utilizzati per definire elementi comuni come header, footer, menu di navigazione e barre laterali, che possono essere inclusi nei template di layout e di pagina.<\/li>\n<\/ul>\n<p>Ora che abbiamo compreso ciascuno di questi tipi di template, \u00e8 il momento di creare i template per il sito web statico di un portfolio.<\/p>\n<h4>Come creare i layout in Eleventy<\/h4>\n<p>All&#8217;interno della cartella src, create una cartella <strong>_includes<\/strong>. Questa conterr\u00e0 tutti i layout e i partial.<\/p>\n<p>Potete poi creare una cartella <strong>layouts<\/strong> (per una corretta organizzazione) per contenere tutti i vostri layout. Questi layout sono dei template e possono utilizzare il linguaggio di template che preferite, come Nunjucks, che utilizziamo qui.<\/p>\n<p>Creiamo un file <strong>base.njk<\/strong> per contenere il layout generale di tutte le pagine.<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"UTF-8\" \/&gt;\n        &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" \/&gt;\n        &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/&gt;\n        &lt;link rel=\"icon\" href=\"\/assets\/favicon.jpeg\" \/&gt;\n        &lt;link\n            rel=\"stylesheet\"\n            href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.2.1\/css\/all.min.css\"\n            integrity=\"sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf\/nwasF0nqhPay5w\/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==\"\n            crossorigin=\"anonymous\"\n            referrerpolicy=\"no-referrer\"\n        \/&gt;\n        &lt;link rel=\"stylesheet\" href=\"\/css\/global.css\" \/&gt;\n        &lt;title&gt;J.'s Portfolio&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;div&gt;\n            {{ content | safe }}\n        &lt;\/div&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Nel codice qui sopra, viene creato un markup HTML generale e Font Awesome viene incluso da un CDN in modo che possiate avere accesso alle sue icone. Inoltre, viene passata la variabile content in modo da includere tutti i contenuti delle pagine che utilizzano questo layout.<\/p>\n<p>Ma questo non \u00e8 l&#8217;intero layout. Il vostro layout avr\u00e0 alcune sezioni che appariranno in ogni pagina, come la navbar e il foot. Creiamo dei partial per ciascuna di queste sezioni.<\/p>\n<h4>Come usare i partial in Eleventy<\/h4>\n<p>Tutti i partial sono memorizzati nella cartella <strong>_includes<\/strong>. Per una corretta organizzazione, potete memorizzarli in una cartella. In questo caso, create una cartella <strong>components<\/strong> all&#8217;interno della cartella <strong>_includes<\/strong> e create i template navbar e footer.<\/p>\n<p>Ecco i partial della navbar in <strong>navbar.njk<\/strong>:<\/p>\n<pre><code class=\"language-html\">&lt;div class=\"nav-container\"&gt;\n    &lt;div class=\"logo\"&gt;\n        &lt;a href=\"\/\"&gt;\n            J.\n        &lt;\/a&gt;\n    &lt;\/div&gt;\n    &lt;div class=\"nav\"&gt;\n        &lt;a href=\"\/projects\" class=\"link\"&gt;\n            Projects\n        &lt;\/a&gt;\n        &lt;a href=\"https:\/\/docs.google.com\/document\/d\/10ZosQ38Z3804KYPcb_aZp9bceoXK-q3GrkHjYshqIRE\/edit?usp=sharing\" class=\"cta-btn\"&gt;Resume&lt;\/a&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Ecco i template parziali del foot in <strong>footer.njk<\/strong>:<\/p>\n<pre><code class=\"language-html\">&lt;hr \/&gt;\n&lt;div class=\"footer-container\"&gt;\n    &lt;p&gt;\u00a9 {% year %} Joel's Portfolio&lt;\/p&gt;\n    &lt;div class=\"social_icons\"&gt;\n        &lt;a\n            href=\"https:\/\/twitter.com\/olawanle_joel\"\n            aria-label=\"Twitter\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n        &gt;\n            &lt;i class=\"fa-brands fa-twitter\"&gt;&lt;\/i&gt;\n        &lt;\/a&gt;\n        &lt;a\n            href=\"https:\/\/github.com\/olawanlejoel\"\n            aria-label=\"GitHub\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n        &gt;\n            &lt;i class=\"fa-brands fa-github\"&gt;&lt;\/i&gt;\n        &lt;\/a&gt;\n        &lt;a\n            href=\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\"\n            aria-label=\"LinkedIn\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n        &gt;\n            &lt;i class=\"fa-brands fa-linkedin\"&gt;&lt;\/i&gt;\n        &lt;\/a&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Aggiungete questi partial alla vostra pagina o al template di layout. Questo pu\u00f2 essere fatto utilizzando l&#8217;istruzione <code>{% include %}<\/code>. Ecco come apparir\u00e0 il template <strong>layouts\/base.njk<\/strong> quando includerete i template navbar e footer:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"UTF-8\" \/&gt;\n        &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" \/&gt;\n        &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/&gt;\n        &lt;link rel=\"icon\" href=\"\/assets\/favicon.jpeg\" \/&gt;\n        &lt;link\n            rel=\"stylesheet\"\n            href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.2.1\/css\/all.min.css\"\n            integrity=\"sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf\/nwasF0nqhPay5w\/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==\"\n            crossorigin=\"anonymous\"\n            referrerpolicy=\"no-referrer\"\n        \/&gt;\n        &lt;link rel=\"stylesheet\" href=\"\/css\/global.css\" \/&gt;\n        &lt;title&gt;J.'s Portfolio&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;div&gt;\n            {% include \"components\/navbar.njk\" %}\n                {{ content | safe }}\n            {% include \"components\/footer.njk\" %}\n        &lt;\/div&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Quando eseguite il comando <code>npm start<\/code>, questo layout non apparir\u00e0 perch\u00e9 non \u00e8 stato aggiunto a un template di pagina. Create un template di pagina e aggiungete questo layout.<\/p>\n<h4>Come creare template di pagina in Eleventy<\/h4>\n<p>Nella cartella <strong>src<\/strong>, create un file <strong>index.njk<\/strong> che servir\u00e0 come pagina iniziale del vostro sito web portfolio. Questa pagina utilizzer\u00e0 il layout di base:<\/p>\n<pre><code class=\"language-html\">---\nlayout: layouts\/base.njk\ntitle: Home\n---\n&lt;h1&gt; This is the {{title}} Page. &lt;\/h1&gt;<\/code><\/pre>\n<p>Quando eseguirete il comando <code>npm start<\/code>, il vostro sito statico verr\u00e0 caricato su <strong>http:\/\/localhost:8080\/<\/strong>. Ecco come apparir\u00e0 l&#8217;output:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/portfolio-home-page.jpg\" alt=\"Template di pagina senza stile\" width=\"1600\" height=\"470\"><figcaption class=\"wp-caption-text\">Template di pagina senza stile<\/figcaption><\/figure>\n<h3>Come usare i CSS e le immagini in Eleventy<\/h3>\n<p>Ora conoscete i vari template esistenti, come funzionano e come possono essere utilizzati insieme. Tuttavia, noterete che nel file <strong>layouts\/base.njk<\/strong> \u00e8 collegato un file CSS per lo stile della pagina del portfolio, ma quando il sito viene caricato, gli stili CSS non vengono modificati perch\u00e9 il file CSS non viene aggiunto alla cartella <strong>public<\/strong>.<\/p>\n<p>Per risolvere questo problema, dovrete configurare il file <strong>.eleventy.js<\/strong> utilizzando il parametro <code>eleventyConfig<\/code>. In questo modo Eleventy sapr\u00e0 che il\/i file CSS esistono e terr\u00e0 d&#8217;occhio le eventuali modifiche al file CSS.<\/p>\n<p>Nella cartella <strong>src<\/strong>, potrete creare una cartella <strong>css<\/strong> per memorizzare tutti i file CSS che utilizzerete nel progetto, ma per questo articolo userete un solo file CSS: <a href=\"https:\/\/github.com\/kinsta\/11ty-portfolio\/blob\/starter\/src\/css\/global.css\" target=\"_blank\" rel=\"noopener noreferrer\">global.css<\/a>. Potrete quindi configurare la cartella <strong>css<\/strong> in modo che configuri tutti i file all&#8217;interno della cartella:<\/p>\n<pre><code class=\"language-js\">eleventyConfig.addPassthroughCopy('src\/css');\neleventyConfig.addWatchTarget('src\/css');<\/code><\/pre>\n<p>Lo stesso vale per le immagini. Se aggiungete un&#8217;immagine alla vostra pagina, noterete che non viene visualizzata. Affinch\u00e9 vengano visualizzate, dovrete configurare la cartella in cui sono archiviate le immagini. Creiamo una cartella <strong>assets<\/strong> per memorizzare tutte le nostre immagini e configuriamo la cartella <strong>assets<\/strong>.<\/p>\n<pre><code class=\"language-js\">eleventyConfig.addPassthroughCopy('src\/assets');<\/code><\/pre>\n<p>Ecco come apparir\u00e0 il vostro file di configurazione:<\/p>\n<pre><code class=\"language-js\">module.exports = function (eleventyConfig) {\n    eleventyConfig.addPassthroughCopy('src\/assets');\n    eleventyConfig.addPassthroughCopy('src\/css');\n    eleventyConfig.addWatchTarget('src\/css');\n\n    return {\n        dir: {\n            input: 'src',\n            output: 'public',\n        },\n    };\n};<\/code><\/pre>\n<p>Quando eseguite <code>npm start<\/code>, lo stile CSS funzioner\u00e0 e la vostra home page avr\u00e0 questo aspetto:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/portfolio-home-page-with-css.jpg\" alt=\"Aspetto del template dopo l'aggiunta del layout\" width=\"1600\" height=\"436\"><figcaption class=\"wp-caption-text\">Aspetto del template dopo l&#8217;aggiunta del layout<\/figcaption><\/figure>\n<h2>Creare i partial e aggiungerli alla home page<\/h2>\n<p>Siete riusciti a creare un layout e ad aggiungerlo alla vostra pagina iniziale (<strong>index.njk<\/strong>). \u00c8 il momento di personalizzare la pagina iniziale per inserire alcune informazioni, come ad esempio ulteriori informazioni su di voi, le vostre competenze e le informazioni di contatto.<\/p>\n<p>Potete decidere di aggiungere i codici e il markup direttamente al template <strong>index.njk<\/strong>, ma creiamo dei partial individuali per le informazioni su Home, About, competenze e contatti.<\/p>\n<h3>I partial dell&#8217;Hero<\/h3>\n<p>Questa \u00e8 la prima sezione al di sotto della barra di navigazione, il cui scopo principale \u00e8 quello di dare agli utenti un&#8217;idea dell&#8217;argomento del sito web.<\/p>\n<pre><code class=\"language-html\">&lt;div class=\"hero-container\"&gt;\n    &lt;img src='assets\/profile.jpeg' class=\"profile-img\" alt=\"Joe's personal headshot\" \/&gt;\n    &lt;div class=\"hero-text\"&gt;\n        &lt;h1&gt;Hey, I'm Joe \ud83d\udc4b&lt;\/h1&gt;\n        &lt;p&gt;\n            I'm a software developer based in Lagos, Nigeria. I specialize in building (and occasionally designing) exceptional websites, applications, and everything in between.\n        &lt;\/p&gt;\n        &lt;div class=\"social-icons\"&gt;\n            &lt;a href=\"https:\/\/twitter.com\/olawanle_joel\"&gt;\n                &lt;i class=\"fa-brands fa-twitter\"&gt;&lt;\/i&gt;\n            &lt;\/a&gt;\n            &lt;a href=\"https:\/\/github.com\/olawanlejoel\"&gt;\n                &lt;i class=\"fa-brands fa-github\"&gt;&lt;\/i&gt;\n            &lt;\/a&gt;\n            &lt;a href=\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\"&gt;\n                &lt;i class=\"fa-brands fa-linkedin\"&gt;&lt;\/i&gt;\n            &lt;\/a&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Nel codice qui sopra sono inclusi alcuni dettagli su di voi e alcune icone social per collegare i link ai vostri profili sui social media.<\/p>\n<p>I partial dell&#8217;Hero dovrebbero avere questo aspetto:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/portfolio-hero-partials.jpg\" alt=\"I partial dell'Hero mostrano i dettagli di base sullo sviluppatore\" width=\"1600\" height=\"680\"><figcaption class=\"wp-caption-text\">Aspetto dell&#8217;Hero<\/figcaption><\/figure>\n<p>Potete aggiungere altri contenuti alla sezione Hero, modificare gli stili nel file css\/globals.css o creare una vostra versione di questa sezione.<\/p>\n<h3>La sezione About<\/h3>\n<p>La sezione About fornisce alle persone che visitano il portfolio ulteriori informazioni su di voi in un numero di paragrafi a piacere. Pu\u00f2 essere una pagina separata se avete diverse informazioni da raccontare.<\/p>\n<pre><code class=\"language-html\">&lt;div class=\"about-container\"&gt;\n    &lt;h2&gt;About Me&lt;\/h2&gt;\n    &lt;div class=\"flex-about\"&gt;\n        &lt;div class=\"about-text\"&gt;\n            &lt;p&gt;\n                As a developer, I have always been passionate about creating elegant and effective solutions to complex problems. I have a strong foundation in software development, with a focus on web technologies such as HTML, CSS, and JavaScript. I enjoy working on both the front-end and back-end of applications, and I am always looking for ways to optimize performance, improve user experience, and ensure the highest level of code quality.\n            &lt;\/p&gt;\n            &lt;p&gt;Throughout my career, I have worked on a wide range of projects, from simple static websites to complex enterprise-level applications. I am experienced in working with a variety of development tools and frameworks, including React, Angular, Vue.js, Node.js, and Laravel. I am always eager to learn and explore new technologies, and I am constantly seeking out opportunities to improve my skills and knowledge.&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"about-img\"&gt;\n            &lt;Image src='\/assets\/about.jpeg' class=\"profile-img\" alt=\"Joe and animal relaxing and having fun\" \/&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Il codice contiene informazioni su di voi (un&#8217;immagine e del testo). Ecco come dovrebbe apparire la sezione About:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/portfolio-about-partials.jpg\" alt=\"Aspetto dei partial About.\" width=\"1600\" height=\"704\"><figcaption class=\"wp-caption-text\">Aspetto dei partial About<\/figcaption><\/figure>\n<h3>I partial delle Competenze<\/h3>\n<p>Questa sezione \u00e8 utilizzata per mostrare le tecnologie che utilizzate o che preferite utilizzare.<\/p>\n<pre><code class=\"language-html\">&lt;div class=\"skills-container\"&gt;\n    &lt;h2&gt;Skills&lt;\/h2&gt;\n    &lt;div class=\"grid-skills\"&gt;\n        &lt;div class=\"skill-card html\"&gt;\n            &lt;i class=\"fa-brands fa-html5 html-icon\"&gt;&lt;\/i&gt;\n            &lt;p&gt;HTML&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"skill-card css\"&gt;\n            &lt;i class=\"fa-brands fa-css3-alt css-icon\"&gt;&lt;\/i&gt;\n            &lt;p&gt;CSS&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"skill-card js\"&gt;\n            &lt;i class=\"fa-brands fa-js-square js-icon\"&gt;&lt;\/i&gt;\n            &lt;p&gt;JavaScript&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"skill-card react\"&gt;\n            &lt;i class=\"fa-brands fa-react react-icon\"&gt;&lt;\/i&gt;\n            &lt;p&gt;React&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"skill-card node\"&gt;\n            &lt;i class=\"fa-brands fa-node-js node-icon\"&gt;&lt;\/i&gt;\n            &lt;p&gt;Node&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"skill-card python\"&gt;\n            &lt;i class=\"fa-brands fa-python python-icon\"&gt;&lt;\/i&gt;\n            &lt;p&gt;Python&lt;\/p&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Il codice qui sopra crea una scheda che contiene l&#8217;icona della tecnologia e il nome di ogni abilit\u00e0. Potete anche aggiungere altri stili e modificare il codice per renderlo pi\u00f9 accattivante e distinto. Ecco come dovrebbe apparire la sezione delle competenze:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/portfolio-skills-partials.jpg\" alt=\"Partial delle competenze che mostra tutte le skill aggiunte\" width=\"1600\" height=\"446\"><figcaption class=\"wp-caption-text\">Partial delle competenze<\/figcaption><\/figure>\n<h3>Partial dei Contatti<\/h3>\n<p>Trattandosi di un portfolio, dovreste aggiungere un mezzo per consentire ai potenziali clienti di contattarvi, per esempio inviandovi un&#8217;email.<\/p>\n<pre><code class=\"language-html\">&lt;div class=\"contact-container\"&gt;\n    &lt;h2&gt;Get In Touch&lt;\/h2&gt;\n    &lt;p&gt;If you want us to work together, have any question or want me to speak at your event, my inbox is always open. Whether just want to say hi, I'll try my best to get back to you! Cheers!&lt;\/p&gt;\n    &lt;a href=\"mailto:joelolawanle@kinsta.com\" class='cta-btn'&gt;Say Hello&lt;\/a&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Sostituite l&#8217;indirizzo e-mail nel tag <code>a<\/code> con il vostro, in modo che il pulsante lanci un&#8217;applicazione di posta elettronica che permetta alle persone di inviarvi un messaggio.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/portfolio-contact-partials.jpg\" alt=\"I partial dei contatti mostrano qualche informazione e un pulsante cta\" width=\"1600\" height=\"318\"><figcaption class=\"wp-caption-text\">Partial contatti<\/figcaption><\/figure>\n<p>Ora avete creato con successo tutti i partial per la vostra home page. Adesso \u00e8 il momento di includerli nel file <strong>index.njk<\/strong> in modo che vengano visualizzati nella home page:<\/p>\n<pre><code class=\"language-html\">---\nlayout: layouts\/base.njk\ntitle: Home\n---\n{% include \"components\/hero.njk\" %}\n{% include \"components\/about.njk\" %}\n{% include \"components\/skills.njk\" %}\n{% include \"components\/contact.njk\" %}<\/code><\/pre>\n<p>Quando eseguirete il comando start, la vostra home page visualizzer\u00e0 di conseguenza tutti i partial aggiunti.<\/p>\n<h3>Come usare le raccolte in Eleventy<\/h3>\n<p>In Eleventy, le raccolte, o collection, sono un modo per raggruppare contenuti correlati in modo da poter generare pagine basate su tali contenuti. Ad esempio, se avete dei file markdown con contenuti simili (articoli di un blog) archiviati in una cartella blog del vostro progetto, potete usare le raccolte per recuperarli e visualizzare un elenco di tutti i contenuti. Inoltre, potrete creare un layout per gestire la visualizzazione di questi contenuti.<\/p>\n<p>Le raccolte sono definite nel file di configurazione <strong>.eleventy.js<\/strong> e possono includere dati provenienti da varie fonti, come file markdown o JSON.<\/p>\n<p>Per questo sito web di portfolio, creiamo una cartella <strong>projects<\/strong> nella cartella <strong>src<\/strong>, per memorizzare il contenuto markdown di ogni progetto. Questo contenuto includer\u00e0 i dettagli del progetto, il problema risolto, le tecnologie utilizzate, le sfide incontrate e le lezioni apprese.<\/p>\n<p>Potete creare un file markdown con il nome del progetto (<strong>quotes-generator.md<\/strong>) e incollare il codice qui sotto:<\/p>\n<pre><code class=\"language-md\">---\ntitle: Quotes Generator\ndescription: \"Helps you generates quotes from about 1600 quotes written by different authors . Quotes are automatically copied to your clipboards.\"\ngitHubURL: \"https:\/\/github.com\/olawanlejoel\/random-quote-generator\"\nimage: \"\/assets\/quotes-banner.jpeg\"\n---\n\nThe quotes generator project is a software tool designed to display random inspirational or thought-provoking quotes to users. This project aims to solve the problem of lack of motivation or inspiration by providing users with a quick and easy way to access inspiring quotes.\n\n### Technologies Used\nThe technologies used in this project include HTML, CSS, and JavaScript. The application utilizes an API to fetch random quotes and display them to the user.\n\n### Challenges and Lessons Learned\nOne of the main challenges faced during this project was designing the user interface to be visually appealing and responsive on different devices. The team had to consider various design elements such as font sizes, colors, and layout to create a user-friendly and aesthetically pleasing interface.\n\nAnother challenge was handling errors and edge cases such as network connectivity issues or invalid API responses. The team had to implement error handling and fallback mechanisms to ensure that the application would continue to function smoothly under various conditions.\n\nThroughout the project, the team learned valuable lessons about front-end development, such as the importance of clean and efficient code, effective debugging and troubleshooting, and responsive design principles. They also learned the importance of utilizing APIs to access and display data from external sources.\n\nOverall, the quotes generator project was a valuable learning experience that allowed the team to develop their technical and creative skills, and create a useful tool for users looking for daily inspiration or motivation.<\/code><\/pre>\n<p><strong>Nota:<\/strong> se avete usato il template di partenza, dovreste averli gi\u00e0, altrimenti potete copiarli dalla directory projects del nostro <a href=\"https:\/\/github.com\/kinsta\/11ty-portfolio\/tree\/starter\/src\/projects\" target=\"_blank\" rel=\"noopener noreferrer\">template di partenza su GitHub<\/a>.<\/p>\n<p>Il frontmatter all&#8217;inizio di questi file, come i template, rende disponibili dei valori da inserire nei vostri template.<\/p>\n<p>Poich\u00e9 questi file Markdown si trovano nella cartella src, Eleventy li tratter\u00e0 come template e generer\u00e0 una pagina HTML per ciascuno di essi. Il loro URL sar\u00e0 qualcosa come <strong>\/projects\/quotes-generator<\/strong>.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/quote-project-page.jpg\" alt=\"L'aspetto di ogni progetto senza layout\" width=\"1600\" height=\"587\"><figcaption class=\"wp-caption-text\">Aspetto del progetto senza layout<\/figcaption><\/figure>\n<p>Eleventy, tuttavia, non sapr\u00e0 quale layout utilizzare per queste pagine perch\u00e9 non hanno ancora un valore di layout nel loro frontmatter.<\/p>\n<p>Creiamo innanzitutto un layout per questi contenuti prima di creare una raccolta e aggiungerli come elenco a una pagina dedicata ai progetti.<\/p>\n<p>Come in precedenza, create un file di layout (<strong>project.njk<\/strong>) nella cartella <strong>layouts<\/strong>. Per evitare ripetizioni, dato che questo file utilizzer\u00e0 il markup HTML predefinito, modificate il layout <strong>base.njk<\/strong> creando un blocco per indicare la sezione del layout da modificare.<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"UTF-8\" \/&gt;\n        &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" \/&gt;\n        &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/&gt;\n        &lt;link rel=\"icon\" href=\"\/assets\/favicon.jpeg\" \/&gt;\n        &lt;link\n            rel=\"stylesheet\"\n            href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.2.1\/css\/all.min.css\"\n            integrity=\"sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf\/nwasF0nqhPay5w\/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==\"\n            crossorigin=\"anonymous\"\n            referrerpolicy=\"no-referrer\"\n        \/&gt;\n        &lt;link rel=\"stylesheet\" href=\"\/css\/global.css\" \/&gt;\n        &lt;title&gt;J.'s Portfolio&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body&gt;\n        &lt;div&gt;\n            {% include \"components\/navbar.njk\" %}\n                {% block content %} \n                    {{ content | safe }}\n                {% endblock %}\n            {% include \"components\/footer.njk\" %}\n        &lt;\/div&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Al blocco viene dato un nome contenuto perch\u00e9 potete avere molti blocchi all&#8217;interno dei vostri template. Ora potete estendere questa procedura al vostro layout <strong>project.njk<\/strong>, in modo da dover specificare solo il blocco content:<\/p>\n<pre><code class=\"language-html\">{% extends \"layouts\/base.njk\" %}\n\n{% block content %}\n    &lt;div class=\"project-layout\"&gt;\n        &lt;h2&gt;{{title}}&lt;\/h2&gt;\n        &lt;img src=\"{{image}}\" alt=\"image\" class=\"banner-img\" \/&gt;\n        &lt;a href=\"{{gitHubURL}}\" class=\"cta-btn pt-btn\"&gt;\n            &lt;div class=\"small-icons\"&gt;\n                GitHub &lt;i class=\"fa-brands fa-github\"&gt;&lt;\/i&gt;\n            &lt;\/div&gt;\n        &lt;\/a&gt;\n        {{ content | safe }}\n    &lt;\/div&gt;\n{% endblock %}<\/code><\/pre>\n<p>Nel codice qui sopra, state specificando come verr\u00e0 visualizzato ogni progetto. Il codice prende il <strong>titolo<\/strong>, l&#8217;<strong>immagine<\/strong> e <strong>gitHubURL<\/strong> dal frontmatter e poi aggiunge altri contenuti utilizzando la variabile content (<code>{{ content | safe }}<\/code>).<\/p>\n<p>Il passo successivo sar\u00e0 quello di aggiungere una chiave e un valore di layout al frontmatter di ogni progetto:<\/p>\n<pre><code class=\"language-html\">---\nlayout: layouts\/project.njk\ntitle: Quotes Generator\ndescription: \"Helps you generates quotes from about 1600 quotes written by different authors . Quotes are automatically copied to your clipboards.\"\ngitHubURL: \"https:\/\/github.com\/olawanlejoel\/random-quote-generator\"\nimage: \"\/assets\/quotes-banner.jpeg\"\n---\n\n\u2026<\/code><\/pre>\n<p>Quando ricaricate l&#8217;URL di ogni progetto, ad esempio <strong>\/projects\/quotes-generator<\/strong>, noterete che ora utilizza il layout creato:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/quote-project-page-with-layout.jpg\" alt=\"Aspetto del progetto con il layout\" width=\"1600\" height=\"877\"><figcaption class=\"wp-caption-text\">Aspetto del progetto con il layout<\/figcaption><\/figure>\n<h4>Come usare le raccolte nei template<\/h4>\n<p>Ciascuno dei vostri progetti viene ora visualizzato con il layout specificato, ma come possono gli utenti accedere a questi progetti? Sar\u00e0 necessario creare un elenco su cui le persone possano cliccare per accedere a ciascun progetto. \u00c8 qui che entrano in gioco le collection.<\/p>\n<p>Per utilizzare le collection, dovete definirle nel file di configurazione <strong>.eleventy.js<\/strong> utilizzando il metodo <code>addCollection()<\/code>.<\/p>\n<pre><code class=\"language-js\">module.exports = function (eleventyConfig) {\n    \/\/ \u2026\n\n    eleventyConfig.addCollection('projects', (collection) =&gt; {\n        return collection.getFilteredByGlob('src\/projects\/*.md');\n    });\n\n    return {\n        \/\/ ...\n    };\n};<\/code><\/pre>\n<p>Nel codice qui sopra, il metodo <code>addCollection()<\/code> viene utilizzato per definire una collection chiamata progetti. La funzione di callback passata a <code>addCollection()<\/code> restituisce tutti i file markdown presenti nella cartella projects utilizzando il metodo <code>getFilteredByGlob()<\/code>.<\/p>\n<p>Una volta definita una raccolta, potete usarla in un template per generare pagine basate su quei contenuti. Creiamo un template di pagina <strong>projects.njk<\/strong>, che utilizzer\u00e0 il layout <strong>base.njk<\/strong>, ma il suo contenuto sar\u00e0 costituito dai progetti della collection projects:<\/p>\n<pre><code class=\"language-html\">---\nlayout: layouts\/base.njk\ntitle: Projects\n---\n&lt;div class=\"projects-container\"&gt;\n    &lt;h2&gt;Projects&lt;\/h2&gt;\n    &lt;div class=\"projects-grid\"&gt;\n        {% for project in collections.projects %}\n            &lt;div class=\"project-card\"&gt;\n                &lt;div class=\"project-header\"&gt;\n                    &lt;i class=\"fa-regular fa-folder-open folder-icon\"&gt;&lt;\/i&gt;\n                    &lt;div class=\"small-icons\"&gt;\n                        &lt;a href={{project.data.gitHubURL}}&gt;&lt;i class=\"fa-brands fa-github\"&gt;&lt;\/i&gt;&lt;\/a&gt;\n                    &lt;\/div&gt;\n                &lt;\/div&gt;\n                &lt;h3&gt;{{project.data.title}}&lt;\/h3&gt;\n                &lt;p&gt;{{project.data.description}}&lt;\/p&gt;\n                &lt;a href=\"{{project.url}}\" class=\"cta-btn\"&gt;Read more&lt;\/a&gt;\n            &lt;\/div&gt;\n        {% endfor %}\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Nel codice qui sopra, l&#8217;istruzione <code>{% for %}<\/code> viene utilizzata per scorrere tutti i progetti della raccolta progetti e generare una scheda progetto per ognuno di essi.<\/p>\n<p>Potrete accedere a tutte le variabili utilizzando <code>project.data.[key]<\/code>. Ad esempio, il codice qui sopra mostrer\u00e0 il titolo, la descrizione e l&#8217;URL GitHub del progetto. Potete anche accedere all&#8217;URL del progetto utilizzando <code>project.url<\/code>.<\/p>\n<p>Ecco come apparir\u00e0 la pagina quando aggiungerete molti progetti nel momento in cui eseguirete il comando start e navigherete nella pagina dei progetti:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/projects-page-with-content.jpg\" alt=\"Una raccolta di tutti i progetti nella pagina del template dei progetti\" width=\"1600\" height=\"877\"><figcaption class=\"wp-caption-text\">Pagina del template dei progetti<\/figcaption><\/figure>\n<h3>Come usare gli shortcode<\/h3>\n<p>Gli shortcode sono un modo per definire tag HTML personalizzati o valori dinamici JavaScript che potete riutilizzare nei template. Ad esempio, potete definire uno shortcode per generare l&#8217;anno corrente e aggiungerlo al sito web.<\/p>\n<p>Nel file di configurazione <strong>.eleventy.js<\/strong>, potrete definire uno shortcode utilizzando il metodo <code>addShortcode()<\/code>. Ad esempio, il codice seguente definisce uno shortcode chiamato anno:<\/p>\n<pre><code class=\"language-js\">module.exports = function (eleventyConfig) {\n    \/\/ ...\n    eleventyConfig.addShortcode('year', () =&gt; {\n        return `${new Date().getFullYear()}`;\n    });\n    return {\n        \/\/ ...\n    };\n};<\/code><\/pre>\n<p>Lo shortcode anno restituir\u00e0 l&#8217;anno corrente, che potrete aggiungere a qualsiasi template del progetto. Ad esempio, invece di inserire l&#8217;anno nel foot di questo sito web, potete aggiungerlo dinamicamente utilizzando il metodo <code>{% year %}<\/code>, in modo che si aggiorni da solo ogni anno:<\/p>\n<pre><code class=\"language-html\">&lt;hr \/&gt;\n&lt;div class=\"footer-container\"&gt;\n    &lt;p&gt;\u00a9 {% year %} Joel's Portfolio&lt;\/p&gt;\n    &lt;div class=\"social_icons\"&gt;\n        \/\/ ...\n    &lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Quando la pagina viene renderizzata, l&#8217;output includer\u00e0 l&#8217;anno corrente all&#8217;interno del tag HTML <code>p<\/code>.<\/p>\n<h2>Come aggiungere un tema a un sito Eleventy<\/h2>\n<p>Aggiungere un tema a un sito Eleventy pu\u00f2 essere un ottimo modo per personalizzare rapidamente l&#8217;aspetto del sito. Ufficialmente, Eleventy si riferisce ai temi come a degli starter, ma \u00e8 chiaro che si tratta della stessa cosa. Molti siti web forniscono temi Eleventy gratuiti, come gli <a href=\"https:\/\/www.11ty.dev\/docs\/starter\/\" target=\"_blank\" rel=\"noopener noreferrer\">starter ufficiali di Eleventy<\/a> e i <a href=\"https:\/\/jamstackthemes.dev\/ssg\/eleventy\/\" target=\"_blank\" rel=\"noopener noreferrer\">temi di Jamstack<\/a>.<\/p>\n<p>Tutto ci\u00f2 che dovete fare \u00e8 selezionare il tema o lo starter che preferite, quindi accedere al suo repository GitHub per clonarlo nel vostro computer locale. Assicuratevi di leggere la documentazione per conoscere i passi da seguire per configurare e personalizzare i progetti.<\/p>\n<p>Eseguite <code>npm install<\/code> per installare tutti i pacchetti utilizzati e poi eseguite <code>npm start<\/code> per servire la vostra applicazione in locale a <strong>http:\/\/localhost:8080\/.<\/strong><\/p>\n<h2>Come distribuire un sito Eleventy<\/h2>\n<p>Siete riusciti a creare un sito web statico di portfolio originale ed elegante con Eleventy. Avere questo tipo di sito web sul vostro computer locale, per\u00f2, non \u00e8 sufficiente. Sar\u00e0 necessario ospitarlo online per condividerlo con chiunque.<\/p>\n<p>Kinsta \u00e8 una piattaforma cloud che vi permette di <a href=\"https:\/\/docs.sevalla.com\/static-sites\/overview\">ospitare siti web statici<\/a>, tra cui Eleventy. Questo pu\u00f2 essere fatto effettuando il push dei vostri codici su GitHub e infine distribuendoli su Kinsta.<\/p>\n<h3>Effttuare il push di un sito Eleventy su GitHub<\/h3>\n<p>Per prima cosa, create un repository su GitHub; in questo modo avrete accesso all&#8217;<a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-un-url\/\">URL<\/a> del repository. Poi potrete utilizzare i comandi git per eseguire il push dei codici.<\/p>\n<p>Prima di inviare i file a GitHub, \u00e8 meglio creare un file <strong>.gitignore<\/strong> per specificare alcuni file e cartelle che git deve ignorare quando invia i codici. Create un file <strong>.gitignore<\/strong> nella cartella principale e aggiungete quanto segue:<\/p>\n<pre><code class=\"language-git\"># dependencies\n\/node_modules\n\n# run\n\/public<\/code><\/pre>\n<p>Ora potete inizializzare il vostro repository Git locale aprendo il terminale, navigando nella directory che contiene il progetto ed eseguendo il seguente comando:<\/p>\n<pre><code class=\"language-bash\">git init<\/code><\/pre>\n<p>Ora aggiungete il codice al repository Git locale utilizzando il seguente comando:<\/p>\n<pre><code class=\"language-bash\">git add<\/code><\/pre>\n<p>Ora potrete effettuare il commit delle modifiche utilizzando il seguente comando:<\/p>\n<pre><code class=\"language-bash\">git commit -m \"my first commit\"<\/code><\/pre>\n<p><strong>Nota:<\/strong> \u00e8 possibile sostituire &#8220;my first commit&#8221; con un breve messaggio che descriva le vostre modifiche.<\/p>\n<p>Infine, inviate il codice a GitHub utilizzando i seguenti comandi:<\/p>\n<pre><code class=\"language-bash\">git remote add origin [repository URL]\ngit push -u origin master<\/code><\/pre>\n<p><strong>Nota:<\/strong> assicuratevi di sostituire &#8220;[URL del repository]&#8221; con l&#8217;URL del vostro repository GitHub.<\/p>\n<p>Una volta completati questi passaggi, il vostro codice verr\u00e0 inviato a GitHub e sar\u00e0 accessibile attraverso l&#8217;URL del tuo repository.<\/p>\n<p>Ora potete effettuare il deploy su Kinsta!<\/p>\n<h3>Distribuzione del sito Eleventy su Kinsta<\/h3>\n<p>Il deploy su Kinsta avviene in pochi minuti. Iniziate dal cruscotto <a href=\"https:\/\/my.kinsta.com\/?lang=it\">My Kinsta<\/a> per accedere o creare il vostro account. Successivamente, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">autorizzerete Kinsta su GitHub<\/a>.<\/p>\n<p>Cliccate quindi su <strong>Applicazioni<\/strong> nella barra laterale di sinistra, poi su <strong>Aggiungi servizio<\/strong> e infine su <strong>Applicazione<\/strong> dal menu a tendina:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/Untitled-1.jpg\" alt=\"Distribuzione all'Hosting di Applicazioni di Kinsta\" width=\"1600\" height=\"503\"><figcaption class=\"wp-caption-text\">Distribuzione all&#8217;hosting di applicazioni di Kinsta<\/figcaption><\/figure>\n<p>Apparir\u00e0 una finestra attraverso la quale potrete selezionare il repository che desiderate distribuire. Selezionate il branch che desiderate distribuire se ci sono pi\u00f9 branch nel repository.<\/p>\n<p>Potete quindi assegnare un nome a questa applicazione. Selezionate un <a href=\"https:\/\/kinsta.com\/it\/docs\/informazioni-sul-servizio\/sedi-data-center\/#application-and-database-hosting-data-centers\">data center<\/a> tra quelli disponibili su 24 e poi Kinsta rilever\u00e0 automaticamente il comando di avvio.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/deploy-11ty-website.jpg\" alt=\"Distribuzione del sito statico di Eleventy avvenuta con successo\" width=\"1600\" height=\"815\"><figcaption class=\"wp-caption-text\">Distribuzione del sito statico di Eleventy avvenuta con successo<\/figcaption><\/figure>\n<p>La vostra applicazione inizier\u00e0 ad essere distribuita. In pochi minuti, verr\u00e0 fornito un link per accedere alla versione distribuita del vostro sito web. In questo caso, si tratta di <strong>https:\/\/ty-portfolio-lvjy7.kinsta.app\/<\/strong>.<\/p>\n\n<h2>Riepilogo<\/h2>\n<p>In questo articolo abbiamo imparato come creare un sito web elegante con Eleventy, come personalizzare un sito statico Eleventy dalle fondamenta e come costruire un bel sito portfolio.<\/p>\n<p>Che stiate realizzando un blog personale, un sito di portfolio o un negozio online, Eleventy pu\u00f2 aiutarvi a raggiungere i vostri obiettivi con il minimo sforzo e il massimo risultato.<\/p>\n<p>Allora perch\u00e9 non provarlo oggi stesso e <a href=\"https:\/\/sevalla.com\/application-hosting\/\">distribuirlo gratuitamente su Kinsta<\/a>? Abbiamo un <a href=\"https:\/\/docs.sevalla.com\/templates\/overview\">template Eleventy &#8220;Hello World&#8221;<\/a> da utilizzare per iniziare a creare ancora pi\u00f9 rapidamente.<\/p>\n<p><em>Ora tocca a voi: cosa ne pensate di Eleventy? Avete mai utilizzato Eleventy per costruire qualcosa? Sentitevi liberi di condividere con noi i vostri progetti e la vostra esperienza nella sezione commenti qui sotto.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con l&#8217;avvento dei generatori di siti statici (SSG) come Eleventy, creare un sito web statico, originale ed efficiente non \u00e8 mai stato cos\u00ec facile. In questo &#8230;<\/p>\n","protected":false},"author":287,"featured_media":68321,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26179,26238,25883],"class_list":["post-68320","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-cms-headless","topic-generatore-siti-statici","topic-strumenti-di-sviluppo-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come Creare un Sito Web Statico Originale con Eleventy (11ty)- Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come Creare un Sito Web Statico Originale con Eleventy (11ty)\" \/>\n<meta property=\"og:description\" content=\"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-27T10:34:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-09T15:49:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png\" \/>\n\t<meta property=\"og:image:width\" content=\"6084\" \/>\n\t<meta property=\"og:image:height\" content=\"3042\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Come Creare un Sito Web Statico Originale con Eleventy (11ty)\",\"datePublished\":\"2023-04-27T10:34:14+00:00\",\"dateModified\":\"2023-06-09T15:49:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\"},\"wordCount\":3635,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\",\"name\":\"Come Creare un Sito Web Statico Originale con Eleventy (11ty)- Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png\",\"datePublished\":\"2023-04-27T10:34:14+00:00\",\"dateModified\":\"2023-06-09T15:49:39+00:00\",\"description\":\"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/eleventy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png\",\"width\":6084,\"height\":3042},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/eleventy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CMS Headless\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/cms-headless\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come Creare un Sito Web Statico Originale con Eleventy (11ty)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come Creare un Sito Web Statico Originale con Eleventy (11ty)- Kinsta\u00ae","description":"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/eleventy\/","og_locale":"it_IT","og_type":"article","og_title":"Come Creare un Sito Web Statico Originale con Eleventy (11ty)","og_description":"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.","og_url":"https:\/\/kinsta.com\/it\/blog\/eleventy\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-04-27T10:34:14+00:00","article_modified_time":"2023-06-09T15:49:39+00:00","og_image":[{"width":6084,"height":3042,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"24 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Come Creare un Sito Web Statico Originale con Eleventy (11ty)","datePublished":"2023-04-27T10:34:14+00:00","dateModified":"2023-06-09T15:49:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/"},"wordCount":3635,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/eleventy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/","url":"https:\/\/kinsta.com\/it\/blog\/eleventy\/","name":"Come Creare un Sito Web Statico Originale con Eleventy (11ty)- Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png","datePublished":"2023-04-27T10:34:14+00:00","dateModified":"2023-06-09T15:49:39+00:00","description":"Scopri come usare Eleventy per creare un sito web statico e funzionale senza bisogno di un linguaggio lato server o di un database.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/eleventy\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/04\/11ty-static-site-generator-01.png","width":6084,"height":3042},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/eleventy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"CMS Headless","item":"https:\/\/kinsta.com\/it\/argomenti\/cms-headless\/"},{"@type":"ListItem","position":3,"name":"Come Creare un Sito Web Statico Originale con Eleventy (11ty)"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=68320"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68320\/revisions"}],"predecessor-version":[{"id":69451,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/68320\/revisions\/69451"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/68320\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/68321"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=68320"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=68320"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=68320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}