<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>~&#x2F;magostinelli - goatcounter</title>
      <link>https://www.agostinelli.eu</link>
      <description>La casa delle mie passioni</description>
      <generator>Zola</generator>
      <language>it</language>
      <atom:link href="https://www.agostinelli.eu/tags/goatcounter/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Sat, 20 Jun 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Nuovo sito - Parte 2</title>
          <pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://www.agostinelli.eu/nuovo_sito_2/</link>
          <guid>https://www.agostinelli.eu/nuovo_sito_2/</guid>
          <description xml:base="https://www.agostinelli.eu/nuovo_sito_2/">&lt;h1 id=&quot;nuovo-sito-2026&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#nuovo-sito-2026&quot; aria-label=&quot;Anchor link for: nuovo-sito-2026&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Nuovo sito 2026&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;seconda-parte&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#seconda-parte&quot; aria-label=&quot;Anchor link for: seconda-parte&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Seconda parte&lt;&#x2F;h2&gt;
&lt;p&gt;Con questo articolo proseguiamo la serie relativa al restyling del sito che ho effettuato quest&#x27;anno.&lt;&#x2F;p&gt;
&lt;p&gt;Vi invito a leggere la &lt;a href=&quot;&#x2F;nuovo_sito_1&#x2F;&quot;&gt;prima parte&lt;&#x2F;a&gt; se ancora non lo avete fatto.&lt;&#x2F;p&gt;
&lt;p&gt;Nel frattempo ho continuato a lavorare su altre funzionalità, che vi presenterò adesso.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;zola&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#zola&quot; aria-label=&quot;Anchor link for: zola&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Zola&lt;&#x2F;h2&gt;
&lt;p&gt;Eravamo rimasti su &lt;a href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;&quot;&gt;Zola&lt;&#x2F;a&gt; che vi ricordo essere un motore per creare siti statici, dove gli articoli (o pagine) vengono scritti in linguaggio &lt;strong&gt;Markdown&lt;&#x2F;strong&gt; e attraverso un unico &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;getzola&#x2F;zola&#x2F;&quot;&gt;binario eseguibile&lt;&#x2F;a&gt; vengono trasformati in pagine &lt;em&gt;HTML&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Innanzitutto la prima cosa che mi è piaciuta di Zola è che si tratta di un solo eseguibile da installare, e quindi molto semplice da gestire.
La seconda cosa è stato l&#x27;uso di &lt;em&gt;Markdown&lt;&#x2F;em&gt; come linguaggio di scrittura, e la terza il supporto a molti &lt;em&gt;temi&lt;&#x2F;em&gt;, grazie ai quali personalizzare e diversificare il proprio sito.&lt;&#x2F;p&gt;
&lt;p&gt;Dato che il sito generato è statico, è per sua definizione sicuro, dimenticate le vulnerabilità di &lt;em&gt;WordPress&lt;&#x2F;em&gt; e software simili.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;versionamento-e-automatismi&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#versionamento-e-automatismi&quot; aria-label=&quot;Anchor link for: versionamento-e-automatismi&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Versionamento e automatismi&lt;&#x2F;h3&gt;
&lt;p&gt;Torniamo un attimo alle pagine del sito scritte in &lt;em&gt;Markdown&lt;&#x2F;em&gt;. Ho deciso di versionarle con &lt;em&gt;Git&lt;&#x2F;em&gt; sulla mia istanza &lt;em&gt;selfhosted&lt;&#x2F;em&gt; di &lt;strong&gt;Forgejo&lt;&#x2F;strong&gt; e usare le sue actions per compilare ed effettuare il deploy automatico del sito attraverso le &lt;strong&gt;actions&lt;&#x2F;strong&gt;. Ho anche un&#x27;istanza di test del sito, in modo da poter visualizzare e testare prima le nuove modifiche.&lt;&#x2F;p&gt;
&lt;p&gt;La &lt;em&gt;pipeline&lt;&#x2F;em&gt; di build e deploy ha superato le 200 righe! Succede quando mi faccio prendere la mano dalle novità e voglio sempre introdurre nuove funzionalità alla ricerca della perfezione (che non arriverà mai, c&#x27;è sempre qualcosa da migliorare).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;limiti&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#limiti&quot; aria-label=&quot;Anchor link for: limiti&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Limiti&lt;&#x2F;h3&gt;
&lt;p&gt;Dopo aver elogiato i vantaggi di Zola, arriviamo ai suoi limiti, che sono intrinsechi a tutti i generatori di pagine statiche. Scegliendo questa soluzione, dovremmo teoricamente rinunciare a commenti e statistiche sul sito. Ma ecco come ho girato intorno al problema: ho aggiunto queste funzionalità tramite JavaScript eseguito lato client.&lt;&#x2F;p&gt;
&lt;p&gt;Entrambi i software che seguono sono stati configurati per rispondere solo in locale (127.0.0.1) perché ho configurato il mio webserver in modo da agire come &lt;em&gt;reverse proxy&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;commenti&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#commenti&quot; aria-label=&quot;Anchor link for: commenti&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Commenti&lt;&#x2F;h4&gt;
&lt;p&gt;Ho usato il software &lt;a href=&quot;https:&#x2F;&#x2F;isso-comments.de&#x2F;&quot;&gt;Isso&lt;&#x2F;a&gt;, che ho installato con &lt;code&gt;docker-compose&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;yaml&quot; class=&quot;language-yaml z-code&quot;&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;root@tex:&#x2F;opt&#x2F;isso# cat docker-compose.yml&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;services&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;  &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;isso&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;image&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;ghcr.io&#x2F;isso-comments&#x2F;isso:release&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;ports&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-quoted z-double z-yaml&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-begin z-yaml&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;127.0.0.1:8085:8080&lt;span class=&quot;z-punctuation z-definition z-string z-end z-yaml&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;volumes&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;.&#x2F;data&#x2F;config:&#x2F;config&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;.&#x2F;data&#x2F;db:&#x2F;db&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Ho scelto Isso perché non ha pubblicità, non traccia gli utenti ed è leggero.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;statistiche&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#statistiche&quot; aria-label=&quot;Anchor link for: statistiche&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Statistiche&lt;&#x2F;h4&gt;
&lt;p&gt;Ho usato un software molto semplice, di nome &lt;a href=&quot;https:&#x2F;&#x2F;www.goatcounter.com&#x2F;&quot;&gt;GoatCounter&lt;&#x2F;a&gt;. L&#x27;interfaccia è molto spartana, ma per quelle che sono le mie esigenze va più che bene! Alla fine a me interessa vedere quali sono gli argomenti più seguiti o le pagine più lette, non ho bisogno di funzionalità avanzate, ma soprattutto perché &lt;em&gt;GoatCounter&lt;&#x2F;em&gt; rispetta la privacy, non richiede banner dei cookie invasivi ed è infinitamente più leggero di Matomo.&lt;&#x2F;p&gt;
&lt;p&gt;Installato con docker-compose, semplicemente così:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;yaml&quot; class=&quot;language-yaml z-code&quot;&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;services&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;  &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;goatcounter&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;image&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;arp242&#x2F;goatcounter&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;ports&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-quoted z-double z-yaml&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-begin z-yaml&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;127.0.0.1:8086:8080&lt;span class=&quot;z-punctuation z-definition z-string z-end z-yaml&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;volumes&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;.&#x2F;data:&#x2F;home&#x2F;goatcounter&#x2F;goatcounter-data&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;    &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;&lt;span class=&quot;z-entity z-name z-tag z-yaml&quot;&gt;environment&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-separator z-key-value z-mapping z-yaml&quot;&gt;:&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;GOATCOUNTER_TLS=http&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;GOATCOUNTER_SMTP=smtps:&#x2F;&#x2F;${SMTP_USER}:${SMTP_PASS}@${SMTP_HOST}&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;GOATCOUNTER_EMAIL-FROM=${GC_EMAIL_FROM}&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;GOATCOUNTER_ERRORS=mailto:${GC_ERRORS}&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-yaml&quot;&gt;      &lt;span class=&quot;z-punctuation z-definition z-block z-sequence z-item z-yaml&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml&quot;&gt;GOATCOUNTER_DB=sqlite+.&#x2F;goatcounter-data&#x2F;db.sqlite3&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;E un banale file &lt;code&gt;.env&lt;&#x2F;code&gt; come questo:&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;# Credenziali SMTP
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;SMTP_USER=me@email.com
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;SMTP_PASS=VerySecure
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;SMTP_HOST=smtp.mysite.com:465
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;# Configurazione GoatCounter
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;GC_EMAIL_FROM=me@email.com
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;GC_ERRORS=me@email.com
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Ho configurato &lt;em&gt;SMTP&lt;&#x2F;em&gt; perché ricevo una notifica per ogni nuovo commento, quindi se avete letto fino a qui, adesso dovete per forza lasciarmene uno sotto questo articolo!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;anticipazioni&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#anticipazioni&quot; aria-label=&quot;Anchor link for: anticipazioni&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
Anticipazioni&lt;&#x2F;h2&gt;
&lt;p&gt;Nella terza (e ultima) parte di questa serie approfondirò:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Galleria Immagini&lt;&#x2F;strong&gt;: come ho implementato le immagini che trovate sul sito? (le immagini vengono pescate da &lt;em&gt;Nextcloud&lt;&#x2F;em&gt;!)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Form della pagina contatti&lt;&#x2F;strong&gt;: sì, un form in un sito statico&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Immagine Docker custom&lt;&#x2F;strong&gt;: la mia immagine Docker personalizzata che uso per compilare il sito nella &lt;em&gt;CI&#x2F;CD&lt;&#x2F;em&gt; di &lt;em&gt;Forgejo&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
</description>
      </item>
    </channel>
</rss>
