<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Daniele Demichelis</title>
    <description>The latest articles on DEV Community by Daniele Demichelis (@danidemi).</description>
    <link>https://dev.to/danidemi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F150299%2Fed307b5f-6663-41a5-aa48-aa992c5d2f7d.png</url>
      <title>DEV Community: Daniele Demichelis</title>
      <link>https://dev.to/danidemi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danidemi"/>
    <language>en</language>
    <item>
      <title>Come Usare DocPad Per Creare Un Sito Web</title>
      <dc:creator>Daniele Demichelis</dc:creator>
      <pubDate>Thu, 28 Mar 2019 11:38:06 +0000</pubDate>
      <link>https://dev.to/danidemi/come-usare-docpad-per-creare-un-sito-web-2apk</link>
      <guid>https://dev.to/danidemi/come-usare-docpad-per-creare-un-sito-web-2apk</guid>
      <description>

&lt;h1&gt;
  
  
  Come Usare DocPad Per Creare Un Sito Web
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://docpad.org/"&gt;DocPad&lt;/a&gt; è uno strumento per la creazione di siti statici, che permette di scriverne &lt;br&gt;
i contenuti in vari linguaggi quali HTML, Markdown, specificarne gli stili con Less e Sass,&lt;br&gt;
definirne parti dinamiche in Javascript, Coffescript e molti altri linguaggi.&lt;/p&gt;

&lt;p&gt;In questo articolo realizzeremo un semplice sito web utilizzando DocPad.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Installazione
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;DocPad&lt;/em&gt; richiede Node come prerequisito. Assicuriamoci di aver installato sul nostro sistema almeno la versione &lt;br&gt;
0.12 o seguente. Per verificarlo digitiamo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ node -v
v6.11.4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ad esempio nel nostro sistema è installata la versione &lt;em&gt;v6.11.4&lt;/em&gt; di &lt;em&gt;Node&lt;/em&gt; che è più che sufficiente.&lt;/p&gt;

&lt;p&gt;Aggiorniamo ora &lt;em&gt;npm&lt;/em&gt; ed installiamo &lt;em&gt;DocPad&lt;/em&gt;:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g npm
npm install -g docpad
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  2. Set Up della Cartella di Progetto
&lt;/h2&gt;

&lt;p&gt;Creiamo una cartella che conterrà le defininioni del contenuto del nostro sito. Buona norma è quella di dare alla cartella&lt;br&gt;
un nome che riconduce al progetto DocPad, quindi scegliamo per questo esempio "hello-world":&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir hello-world
cd hello-world
docpad init
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;DocPad&lt;/em&gt; procederà al set up dello scheletro del sito web e svariati messaggi ci informeranno circa il progresso&lt;br&gt;
dell'attività. Il processo si concluderà comunque nel giro di massimo qualche minuto, anche in funzione della banda&lt;br&gt;
disponibile alla nostra macchina, poichè varie dipendenze devono essere scaricate da Internet:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;info: Welcome to DocPad v6.79.4 (global installation: ...\node_modules\docpad)
[...]
info: Installing the No Skeleton skeleton into C:\Users\danidemi\workspace\repos\diventa-pro\tutorials-docpad\hello-world
This can take a moment...
[...]
npm notice created a lockfile as package-lock.json. You should commit this file.
[...]
added 193 packages in 47.207s
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Analisi della Struttura Creata
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;DocPad&lt;/em&gt; ha creato la seguente struttura:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/
├───node_modules
└───src
    ├───documents
    ├───files
    └───layouts
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Purtroppo &lt;code&gt;init&lt;/code&gt;, almeno alla versione &lt;em&gt;docpad v6.79.4&lt;/em&gt; oggetto di questo articolo, inizializza una struttura di &lt;br&gt;
directory che non è aggiornata al nuovo layout standard previsto da &lt;em&gt;DocPad&lt;/em&gt; stesso. E' necessario quindi rimuovere&lt;br&gt;
due cartelle e creare due nuove:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; rmdir src\documents
&amp;gt; rmdir src\files
&amp;gt; mkdir src\render
&amp;gt; mkdir src\static 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La struttura dovrebbe diventare quindi la seguente:    &lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/
├───node_modules
└───src
    ├───layouts
    ├───render
    └───static
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;node_modules\&lt;/code&gt;, come in tutti i progetti gestiti da &lt;em&gt;npm&lt;/em&gt; contiene i moduli &lt;em&gt;node&lt;/em&gt; necessari al progetto.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src\static\&lt;/code&gt; è la cartella dove memorizzare tutte le risorse che non necessitano di elaborazione, quali le immagini.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src\render\&lt;/code&gt;, in questa cartella dovranno essere salvati tutti i file che devono essere trasformati da &lt;em&gt;DocPad&lt;/em&gt;, ad esempio:
file &lt;em&gt;.md&lt;/em&gt; (markdown) trasformati in &lt;em&gt;.html&lt;/em&gt; oppure &lt;em&gt;.less&lt;/em&gt; (less.js) trasformati in &lt;em&gt;.css&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src\layout\&lt;/code&gt; qui vengono memorizzati i layout, documenti &lt;em&gt;.html&lt;/em&gt; che specificano un aspetto generale comune a più pagine,
all'interno del quale viene identificato un punto in cui sono innestati i contenuti generati dai file contenuti nella cartella
&lt;code&gt;src\render\&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  4. Creazione del Contenuto In Markdown
&lt;/h1&gt;

&lt;p&gt;Installiamo prima di tutto il preprocessore &lt;em&gt;Markdown&lt;/em&gt; di &lt;em&gt;DocPad&lt;/em&gt;:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; docpad install marked
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;DocPad&lt;/em&gt; stampa vari messaggi che ci informano del progresso:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;info: Welcome to DocPad v6.79.4 (local installation: ...\hello-world\node_modules\docpad)
[...]
info: Environment: development
[...]
+ docpad-plugin-marked@2.4.0
added 2 packages in 3.549s
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Creiamo ora nella cartella &lt;code&gt;src\render&lt;/code&gt; un file con nome &lt;code&gt;index.html.md&lt;/code&gt;. La "doppia" estensione indica a &lt;em&gt;DocPad&lt;/em&gt; di intendere&lt;br&gt;
il file come &lt;em&gt;Markdown&lt;/em&gt; (a causa dell'estensione finale &lt;em&gt;.md&lt;/em&gt;) da renderizzare come file &lt;em&gt;HTML&lt;/em&gt; (visto che l'estensione più interna&lt;br&gt;
è &lt;em&gt;.html&lt;/em&gt;).&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Hello World

La mia prima pagina realizzata con [_DocPad_](https://docpad.org/)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  5. Generazione del Sito Web e Anteprima
&lt;/h1&gt;

&lt;p&gt;Invochiamo ora &lt;em&gt;DocPad&lt;/em&gt; in modo che generi il sito &lt;em&gt;HTML&lt;/em&gt; corrispondente al contenuto che abbiamo creato:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; docpad run
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;DocPad&lt;/em&gt; produce un output molto interessante:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;info: Welcome to DocPad v6.79.4 (local installation: ...\hello-world\node_modules\docpad)
[...]
info: Plugins: marked
[...]
info: Server started on http://0.0.0.0:9778
info: In your web browser use http://127.0.0.1:9778
info: Generating...
info: Generated 1/1 files in 0.126 seconds
info: Watching setup starting...
[...]
info: The action completed successfully
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Si può notare ora come sia apparsa una nuova cartella &lt;code&gt;out\&lt;/code&gt; nella home del progetto. Tale cartella contiene&lt;br&gt;
 il sito generato da &lt;em&gt;DocPad&lt;/em&gt; a partire dai contenuti forniti.&lt;/p&gt;

&lt;p&gt;Se puntiamo il nostro browser all'URL specificato da &lt;em&gt;DocPad&lt;/em&gt;: &lt;a href="http://127.0.0.1:9778"&gt;http://127.0.0.1:9778&lt;/a&gt; possiamo visualizzare il nostro sito&lt;br&gt;
 grazie ad un web server integrato in &lt;em&gt;DocPad&lt;/em&gt; stesso.&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Conclusioni
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;DocPad&lt;/em&gt; è sicuramente un tool da prendere in considerazione se si vuole gestire un sito&lt;br&gt;
statico. Il suo meccanismo a plug-in e la conseguente possibilità di scrivere il contenuto&lt;br&gt;
in diversi formati come &lt;em&gt;Markdown&lt;/em&gt; molto più user friendly per la creazioni di contenuti ne fanno&lt;br&gt;
uno strumento interessantissimo.&lt;/p&gt;

&lt;p&gt;Il codice sorgente di questo esempio è disponibile su &lt;a href="https://github.com/diventa-pro/tutorials-docpad/tree/master/hello-world"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;


</description>
      <category>docpad</category>
      <category>markdow</category>
      <category>staticsitegenerator</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
