<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>JSON on Natenoms Blog</title><link>https://natenom.de/tags/json/</link><description>Recent content in JSON on Natenoms Blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright/><lastBuildDate>Fri, 08 Dec 2023 23:15:10 +0100</lastBuildDate><atom:link href="https://natenom.de/tags/json/index.xml" rel="self" type="application/rss+xml"/><item><title>Kommentare können jetzt via JSON hinterlegt werden – und mir sonstwie zugeschickt werden</title><link>https://natenom.de/2023/12/kommentare-koennen-jetzt-via-json-hinterlegt-werden-und-mir-sonstwie-zugeschickt-werden/</link><pubDate>Fri, 08 Dec 2023 23:15:10 +0100</pubDate><guid>https://natenom.de/2023/12/kommentare-koennen-jetzt-via-json-hinterlegt-werden-und-mir-sonstwie-zugeschickt-werden/</guid><description>&lt;p>Es ist soweit und hat nicht so lange gedauert, wie ich gedacht hatte. Man kann nu wieder Kommentare im Blog hinterlegen, aber nur sehr rudimentär.&lt;/p></description><content:encoded><![CDATA[<p>Es ist soweit und hat nicht so lange gedauert, wie ich gedacht hatte. Man kann nu wieder Kommentare im Blog hinterlegen, aber nur sehr rudimentär.</p>
<h2 id="früher-mit-isso" data-numberify>Früher mit Isso<a class="anchor ms-1" href="#früher-mit-isso"></a></h2>
<p>Bisher konnte man dank <code>Isso</code> sehr einfach einen Kommentar unter einen freigegebenen Blogbeitrag schreiben. Daraufhin wurde eine E-Mail an mich verschickt, die den Text enthielt und ich konnte mittels Aufruf zweier URLs bestimmen, ob der Kommentar freigeschaltet wird oder gelöscht. Das ganze war unabhängig von Hugo.</p>

<h2 id="jetzt-mit-json-datei" data-numberify>Jetzt mit json-Datei<a class="anchor ms-1" href="#jetzt-mit-json-datei"></a></h2>
<p>Der jetzige Ablauf ist: Wenn jemand einen Kommentar hinterlassen möchte, klickt er/sie/es im Kommentarbereich auf den Link und daraufhin öffnet sich der lokal installierte E-Mail-Client mit einer vordefinierten E-Mail, in der man den Kommentar schreiben und mir zusenden kann. Dort ist die URL des Blogbeitrags bereits enthalten. Sobald ich Zeit und Lust habe (wie bisher auch schon), werde ich den Kommentar und ein paar Zusatzinformationen in eine .json-Datei innerhalb des Page Bundles des Blogbeitrags eintragen.</p>
<p>Die zusätzlichen Daten sind aktuell:</p>
<ul>
<li>Eine innerhalb des Blogbeitrags eindeutige ID</li>
<li>Name</li>
<li>Website</li>
<li>Datum</li>
<li>Uhrzeit</li>
</ul>
<p>Dabei liegen alle Kommentare eines Blogbeitrags immer im Page Bundle. Sollte ich später einen Blogbeitrag depublizieren wollen, so muss ich nicht gesondert an die Kommentare denken, da alles in einem Verzeichnis enthalten ist. So gefällt mir das.</p>

<h2 id="json-datei-nicht-veröffentlichen" data-numberify>json-Datei nicht veröffentlichen<a class="anchor ms-1" href="#json-datei-nicht-veröffentlichen"></a></h2>
<p>Man muss aber noch dafür sorgen, dass die json-Datei mit den Kommentaren nicht in der fertigen, von Hugo gerenderten Website enthalten ist.</p>
<p>Dazu habe ich noch keinen guten Ansatz gefunden.</p>
<p>Es gibt z. B. <code>excludeFiles</code> (<a  class='urlextern'  href="https://gohugo.io/hugo-modules/configuration/#module-configuration-mounts">siehe hier</a>), aber dann wird die json-Datei auch gar nicht mehr für die Verarbeitung im Template gefunden. Dann gibt es noch per <code>Page Bundle</code> die Option <code>_build</code> (<a  class='urlextern'  href="https://gohugo.io/content-management/build-options/">siehe hier</a>), aber ich hätte das gerne global.</p>
<p>Die &ldquo;veraltete&rdquo; Variante mit <code>ignoreFiles</code> (<a  class='urlextern'  href="https://gohugo.io/getting-started/configuration/#ignore-content-and-data-files-when-rendering">siehe hier</a>), die aber gar nicht greift, weil ich auch hier nicht schlau genug bin.</p>
<p>D. h. derzeit wird die json-Datei noch immer mit veröffentlicht, enthält aber keine Daten, die nicht auf in der gerenderten html-Datei enthalten sind, außer vielleicht der ID.</p>
<p>Alternativ könnte ich nach dem Rendern der Website per <code>find</code> alle entsprechenden json-Dateien löschen lassen, aber das spare ich mir aktuell noch.</p>

<h2 id="noch-sehr-rudimentär" data-numberify>Noch sehr rudimentär<a class="anchor ms-1" href="#noch-sehr-rudimentär"></a></h2>
<p>Bei Isso war es möglich, auf einen bestimmten Kommentar Bezug zu nehmen, das geht aktuell mit meiner eigenen Implementierung noch nicht, da ich dazu nicht schlau genug bin, noch nicht. 🤪</p>
<p>Es werden stumpf alle Kommentare in der Reihenfolge der Ankunft bei mir nacheinander gelistet.</p>

<h2 id="beispiel" data-numberify>Beispiel<a class="anchor ms-1" href="#beispiel"></a></h2>
<p>Ich habe im Page Bundle dieses Blogbeitrags diese JSON-Datei hinterlegt:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>[{
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;id&#34;</span>: <span style="color:#ae81ff">0</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;author&#34;</span>: <span style="color:#e6db74">&#34;Natenom&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;text&#34;</span>: <span style="color:#e6db74">&#34;[…]&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;website&#34;</span>: <span style="color:#e6db74">&#34;https://natenom.de/&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;date&#34;</span>: <span style="color:#e6db74">&#34;2023-12-08&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#e6db74">&#34;18:09&#34;</span>
</span></span><span style="display:flex;"><span>},
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;id&#34;</span>: <span style="color:#ae81ff">1</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;author&#34;</span>: <span style="color:#e6db74">&#34;Vrifox&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;text&#34;</span>: <span style="color:#e6db74">&#34;[…]&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;date&#34;</span>: <span style="color:#e6db74">&#34;2023-12-08&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;website&#34;</span>: <span style="color:#e6db74">&#34;https://vrifox.cc/&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#e6db74">&#34;18:10&#34;</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>]
</span></span></code></pre></div><p>Das Ergebnis kann man unten im Kommentarbereich sehen.</p>

<h2 id="nachtrag" data-numberify>Nachtrag<a class="anchor ms-1" href="#nachtrag"></a></h2>
<p>Die alten 7 Kommentare aus der <a  href="/2023/12/keine-kommentare-mehr-im-blog-da-fast-nicht-genutzt/">Zeit von Isso</a>, werde ich später hier auf diese Art nachtragen. 😄</p>]]></content:encoded></item></channel></rss>