<?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>CSS on Natenoms Blog</title><link>https://natenom.de/tags/css/</link><description>Recent content in CSS on Natenoms Blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright/><lastBuildDate>Thu, 01 Dec 2022 19:21:04 +0100</lastBuildDate><atom:link href="https://natenom.de/tags/css/index.xml" rel="self" type="application/rss+xml"/><item><title>Neuerungen in Blog und Wiki</title><link>https://natenom.de/2022/12/neuerungen-in-blog-und-wiki/</link><pubDate>Thu, 01 Dec 2022 19:21:04 +0100</pubDate><guid>https://natenom.de/2022/12/neuerungen-in-blog-und-wiki/</guid><description>&lt;p>Es gibt mal wieder einige Änderungen in Blog und Wiki, die ich hier auflisten möchte. Ein paar kommen vom aktualisierten Theme (im Blog) und andere hat &lt;a class='urlextern' href="https://vrifox.cc">Vri&lt;/a> umgesetzt. Vielen Dank dafür. ☺️&lt;/p></description><content:encoded><![CDATA[<p>Es gibt mal wieder einige Änderungen in Blog und Wiki, die ich hier auflisten möchte. Ein paar kommen vom aktualisierten Theme (im Blog) und andere hat <a  class='urlextern'  href="https://vrifox.cc">Vri</a> umgesetzt. Vielen Dank dafür. ☺️</p>
<h2 id="blog" data-numberify>Blog<a class="anchor ms-1" href="#blog"></a></h2>

<h3 id="datenschutzkonformes-iframe" data-numberify>Datenschutzkonformes iframe<a class="anchor ms-1" href="#datenschutzkonformes-iframe"></a></h3>
<p>Der Entwickler des Themes, das ich hier verwende, hat einen neuen Shortcode <a  class='urlextern'  href="https://hbs.razonyang.com/v1/en/docs/shortcodes/iframe/">iframe</a> implementiert. Der externe Inhalt wird erst geladen, nachdem der Benutzer auf &ldquo;Laden&rdquo; geklickt hat.</p>
<p>Es ist möglich, vorgegebene Texte für die Schaltfläche und auch für den Beschreibungstext anzupassen.</p>
<p>Hier ein Beispiel:</p>
<pre tabindex="0"><code class="language-hugo" data-lang="hugo">{{&lt; iframe src=&#34;http://umap.openstreetmap.fr/en/map/natenoms-buros_642889#11/48.8503/8.9209&#34; trigger=&#34;manual&#34; loadButtonText=&#34;Externe Karte laden&#34; loadInfo=&#34;Ein Klick hierdrauf lädt Daten von OpenStreetMap. Der Anbieter erhält dadurch deine IP-Adresse und weitere Daten von dir.&#34; &gt;}}
</code></pre><p>So sieht das dann aus:</p>
 <figure class="image-caption"><a href="images/2022-12-01-iframe.webp"><picture>
                <source type="image/webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="Screenshot vom noch nicht geladenen iframe mit den genannten Infotexten." srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe_hu225f2876a3388e707474404cfb1dc742_7564_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="469" /></picture></a><figcaption>Noch wurde nichts geladen.</figcaption></figure>
 <figure class="image-caption"><a href="images/2022-12-01-iframe-geladen.webp"><picture>
                <source type="image/webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="Screenshot vom geladenen iframe mit der OpenStreetMap-Karte." srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-iframe-geladen_hu115bc8ef8656f5f54c686cbf10514d87_110152_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="469" /></picture></a><figcaption>Der externe Inhalt wurde geladen. <a  class='urlextern'  href="https://www.openstreetmap.org/copyright">Copyright by OpenStreetMap Contributors</a></figcaption></figure>

<h3 id="seiten-im-suchindex-verstecken" data-numberify>Seiten im Suchindex verstecken<a class="anchor ms-1" href="#seiten-im-suchindex-verstecken"></a></h3>
<p>Setzt man im Front Matter eines Blogbeitrags den Parameter <code>index: false</code>, so wird diese Seite nicht in den Suchindex aufgenommen und kann somit auch nicht über die Suche des Blogs gefunden werden.</p>
<p>Externe Suchmaschinen können die Seite natürlich trotzdem finden.</p>

<h3 id="ähnliche-beiträge" data-numberify>Ähnliche Beiträge<a class="anchor ms-1" href="#ähnliche-beiträge"></a></h3>
<p>Die Liste der ähnlichen Beitrag oberhalb von Blogbeiträgen ist jetzt ansehnlicher geworden, da ich das Datumsformat dort gekürzt habe.</p>
<p>Oben vorher, unten nachher:</p>
<p></p><figure class="image-caption"><picture>
                <source type="image/webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-old_hu40d3a03acdbe2edd12b89de96afd6305_39948_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="281" /></picture><figcaption></figcaption></figure><p>
</p>
<p></p><figure class="image-caption"><picture>
                <source type="image/webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-10-21-related-posts-new_hu88ba997eef9ee589540ad010f98dd5ee_33702_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="299" /></picture><figcaption></figcaption></figure><p>
</p>

<h3 id="unter-der-haube" data-numberify>Unter der Haube<a class="anchor ms-1" href="#unter-der-haube"></a></h3>
<p>Vri hat eine zusätzliche Konfiguration zum Blog hinzugefügt, die nur greift, wenn man die Seite lokal mit <code>hugo server</code> baut. Dann werden nur die Blogbeiträge aus dem aktuellen Jahr gerendert, sodass das Rendern insgesamt nur noch 4 statt 20 Sekunden dauert.</p>
<p>Wenn man neue Blogbeiträge schreibt oder einfach nur etwas am Stil im Blog anpassen möchte, dann kann man so viel Zeit sparen.</p>

<h2 id="wiki" data-numberify>Wiki<a class="anchor ms-1" href="#wiki"></a></h2>

<h3 id="navigationsleiste" data-numberify>Navigationsleiste<a class="anchor ms-1" href="#navigationsleiste"></a></h3>
<p>Statt die aktuelle und hervorgehobene Seite in der Navigationsleiste komplett in Blau zu hinterlegen, hat Vri das jetzt mal ordentlich und schön gemacht. Das Blau hatte historische Gründe, denn die Navigation im alten Wiki sah genauso aus.</p>
<p>Vorher und nachher:</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-sidebar-old.webp" />
			         <img alt="Alte Sidebar" src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-sidebar-old.webp" title="" width="255" height="335" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-sidebar-new.webp" />
			         <img alt="Neue Sidebar" src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-sidebar-new.webp" title="" width="255" height="335" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>

<h3 id="interaktive-navigation" data-numberify>Interaktive Navigation<a class="anchor ms-1" href="#interaktive-navigation"></a></h3>
<p>Zusätzlich habe ich den Navigationsbaum so umgestellt, dass er wieder dynamisch ist, d. h. man kann jederzeit alle Bereiche öffnen.</p>
<p>Da das Wiki eine statische Website ist, muss deshalb jedoch der gesamte Navigationsbaum in jeder einzelnen Seite des Wikis enthalten sein und somit wird jede Seite im Wiki um circa 4,8 kB größer. Im Fall von <a  href="/docs/muellsammeln/">Müllsammeln</a> z. B. 33,2 kB statt sonst 28,4 kB.</p>
<p>Die Unterschiede von <a  class='urlextern'  href="https://pagespeed.web.dev/">Googles Pagespeed</a> zwischen dynamischem und statischem Navigationsbaum sind zudem marginal bis gar nicht vorhanden. Für die Desktop-Ansicht kann man keine Unterschiede feststellen, nur in der mobilen Ansicht gibt es leichte Unterschiede. Hier zwei Screenshots von der Auswertung der mobilen Ansicht:</p>
 <figure class="image-caption float-left"><a href="images/2022-11-29-wiki-statischer-navibaum-mobil.webp"><picture><source type="webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-11-29-wiki-statischer-navibaum-mobil_hud6d2c5350607372290eb1bb74e1cd2fa_155404_200x0_resize_q95_h2_catmullrom_2.webp" />
			         <img alt="Screenshot der Ergebnisse von Google Pagespeed." src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-11-29-wiki-statischer-navibaum-mobil_hud6d2c5350607372290eb1bb74e1cd2fa_155404_200x0_resize_q95_h2_catmullrom_2.webp" title="" width="200" height="545" loading="lazy" /></picture></a><figcaption>Ergebnisse für den statischen Navigationsbaum.</figcaption></figure>
 <figure class="image-caption float-left"><a href="images/2022-11-29-wiki-interaktiver-navibaum-mobil.webp"><picture><source type="webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-11-29-wiki-interaktiver-navibaum-mobil_hu182c3e936a829fd31a65c6bbde0b0fbd_177914_200x0_resize_q95_h2_catmullrom_2.webp" />
			         <img alt="Screenshot der Ergebnisse von Google Pagespeed." src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-11-29-wiki-interaktiver-navibaum-mobil_hu182c3e936a829fd31a65c6bbde0b0fbd_177914_200x0_resize_q95_h2_catmullrom_2.webp" title="" width="200" height="594" loading="lazy" /></picture></a><figcaption>Ergebnisse für den interaktiven Navigationsbaum.</figcaption></figure>
<div style="clear: both;"></div>


<p>Die Größe des DOM (Document Object Model) wird von Pagespeed im Wiki generell moniert. Mit statischem Navigationsbaum sind es 1982 Elemente und mit dynamischem Navigationsbaum sind es 3094 Elemente.</p>
<p>Ein weiterer Nachteil des dynamischen Navigationsbaums ist, dass alle Seiten im Wiki nicht mehr so lange gecached werden können. Denn sobald sich irgendwo im Wiki der Titel einer Seite oder deren Anordnung ändert, muss jede Seite im Browser des Besuchers neu geladen werden, um den Navigationsbaum korrekt anzuzeigen.</p>
<p>Ich denke, mit den kleinen Nachteilen kann man leben und der dynamische Navigationsbaum ist meiner Ansicht nach ein großer Zugewinn für die Nutzbarkeit des Wikis. Außerdem ändere ich ja nicht ständig Seiten im Wiki.</p>

<h3 id="shortcodes" data-numberify>Shortcodes<a class="anchor ms-1" href="#shortcodes"></a></h3>
<p>Vri hat das SCSS von Shortcodes umstrukturiert und konnte somit Shortcodes generell auf <code>max-width: 80%</code> einstellen, sodass sie nicht mehr breiter sind als der restliche Inhalt einer Seite.</p>
<p>Zudem werden Überschriften von Hinweisboxen (Update, Tipp, Warnung, …) im Feed jetzt groß geschrieben, wie auch auf der Website.</p>

<h3 id="suchfunktion" data-numberify>Suchfunktion<a class="anchor ms-1" href="#suchfunktion"></a></h3>
<p>Auch hat Vri rechts oben im Wiki ein Formularfeld für die Suchfunktion des Wikis eingefügt, sodass man nicht mehr umständlich erst auf &ldquo;Suche&rdquo; klicken und dann den Suchbegriff auf der anschließend ladenden Seite eingeben muss.</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-suchleiste-wiki.webp" />
			         <img alt="Screenshot der Suchleiste im Wiki" src="/2022/12/neuerungen-in-blog-und-wiki/images/2022-12-01-suchleiste-wiki.webp" title="" width="584" height="62" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>

<h3 id="kein-html-quelltext-mehr" data-numberify>Kein HTML-Quelltext mehr<a class="anchor ms-1" href="#kein-html-quelltext-mehr"></a></h3>
<p>Ich habe im Wiki <code>unsafe=false</code> eingestellt. Somit wird HTML-Quelltext innerhalb einer Seite generell nicht mehr gerendert, sondern nur entfernt. Im Zuge des Umzugs von Dokuwiki hatte ich das auf <code>true</code> gesetzt, damit erst einmal alle Inhalte sichtbar waren. Mittlerweile habe ich alle Inhalte ins Markdown-Format überführt, bis auf eine Liste mit (teils veralteter) Software. In der Hugo-Doku gibt es weitere Informationen zu den Einstellungen fürs <a  class='urlextern'  href="https://gohugo.io/getting-started/configuration-markup/">Rendern in Hugo</a> (nach <code>unsafe</code> suchen).</p>]]></content:encoded><enclosure url="https://natenom.de/2022/12/neuerungen-in-blog-und-wiki/cover.webp" length="7564" type="image/webp"/></item><item><title>Niemals nie Copy &amp; Paste von Shell Kommandos aus einem Browser in eine Shell hinein – Shortcode für Hugo mit Warnhinweis und Beispiel</title><link>https://natenom.de/2022/10/niemals-nie-copy-and-paste-von-shell-kommandos-aus-einem-browser-in-eine-shellshortcode-fuer-hugo-mit-warnhinweis-und-beispiel/</link><pubDate>Sun, 02 Oct 2022 11:34:51 +0200</pubDate><guid>https://natenom.de/2022/10/niemals-nie-copy-and-paste-von-shell-kommandos-aus-einem-browser-in-eine-shellshortcode-fuer-hugo-mit-warnhinweis-und-beispiel/</guid><description><![CDATA[<p>Im Internet gibt es viele schöne Anleitungen für verschiedenste Themen. Und viele davon liefern auch gleich die Shell Kommandos mit, die man nur noch markieren, kopieren, direkt in die Shell einfügen und mit <code>Enter</code> bestätigen muss, um sie auszuführen. NEIN, tut das niemals NIE!</p>
<p>Ich habe auch viele solcher Anleitungen geschrieben, die vielfach genutzt wurden. Und teilweise habe ich dann auch auf das Problem hingewiesen.</p>]]></description><content:encoded><![CDATA[<p>Im Internet gibt es viele schöne Anleitungen für verschiedenste Themen. Und viele davon liefern auch gleich die Shell Kommandos mit, die man nur noch markieren, kopieren, direkt in die Shell einfügen und mit <code>Enter</code> bestätigen muss, um sie auszuführen. NEIN, tut das niemals NIE!</p>
<p>Ich habe auch viele solcher Anleitungen geschrieben, die vielfach genutzt wurden. Und teilweise habe ich dann auch auf das Problem hingewiesen.</p>
<p>Um diesen Warnhinweis zu vereinheitlichen, habe ich einen Shortcode für Hugo erstellt, den ich in diesem Blog und auch in meinem neuen Wiki nutzen kann. Diesen werde ich in Zukunft immer in Blogbeiträge und Wikiseiten einfügen, sobald es Shell Kommandos gibt.</p>
<div class="shortcode-notice update">
    <div class="shortcode-notice-title update">
        Update</div>
    <div class="notice-content">Anmerkungen von SuperTux88 eingearbeitet. Danke :)</div>
</div>



<h2 id="wieso-eigentlich-nicht" data-numberify>Wieso eigentlich nicht?<a class="anchor ms-1" href="#wieso-eigentlich-nicht"></a></h2>
<p>Wie sollte man Shell Kommandos nicht direkt in eine Shell einfügen und ausführen? Man kann doch sehen, was man markiert hat und was in der Shell ausgeführt werden wird?</p>
<p>Nein.</p>
<p>Ich habe das bisher noch nicht in freier Wildbahn gesehen aber es ist möglich, dass man innerhalb eines Code-Blocks z. B. via CSS, Teile versteckt. Diese werden jedoch beim Markieren mit ausgewählt und kopiert. Fügt man das direkt in die Shell ein und drückt Enter, werden die &ldquo;unsichtbaren&rdquo; Shell Kommandos auch ausgeführt. Es gibt vielleicht aber auch noch ältere Terminal-Emulatoren, die direkt die Kommandos ausführen.</p>
<p>Es gibt aber auch Möglichkeiten, das notwendige Drücken von Enter durch den Benutzer mit Steuerzeichen zu überwinden. Der Terminal-Emulator Konsole (von KDE) erkennt beim Einfügen solche Zeichen und fragt nach, ob sie herausgefiltert werden sollen. Xterm zeigt alle Kommandos an und erwartet eine Eingabe vom Benutzer. Wie sich andere Terminal-Emulatoren verhalten, habe ich nicht getestet. Ich habe aber die Rückmeldung bekommen, dass es welche gibt, die dann direkt ausführen.</p>
<p>Wenn auf einer Plattform normale Benutzer gar keinen CSS-Code in Beiträge einarbeiten können, sollte das auch relativ sicher sein, es sei denn, es gibt eine Sicherheitslücke.</p>
<p>Im Zweifel sollte man sich also nicht darauf verlassen, dass der Terminal-Emulator sicher reagiert und die folgende Methode verwenden.</p>
<p>Obwohl das ein ziemlich altes Problem ist, scheint es nicht bei jedem bekannt zu sein, der solchen Anleitungen folgt und die kopierten Kommandos direkt ausführt.</p>

<h2 id="und-wie-macht-man-das-richtig" data-numberify>Und wie macht man das richtig?<a class="anchor ms-1" href="#und-wie-macht-man-das-richtig"></a></h2>
<p>Die einfachste Möglichkeit, die ich auch bevorzuge, ist ein Texteditor: Bevor man von irgendwelchen Websites Shell Kommandos nutzt, fügt man diese zuerst in einen lokalen Texteditor ein, prüft, ob alles stimmt, markiert kopiert dann die Zeile im Texteditor und nutze diese zum Einfügen in die Shell.</p>

<h2 id="beispiel" data-numberify>Beispiel<a class="anchor ms-1" href="#beispiel"></a></h2>
<p>So sieht der Shortcode in Aktion aus, der auch ein Beispiel zum Kopieren enthält (anklicken zum Öffnen):</p>
<div class="shortcode-codewarning">
    <details>
    <summary class="shortcode-codewarning summary">Vorsicht beim Ausführen von Shellkommandos via Copy & Paste</summary>
        <div class="shortcode-codewarning content"><p>
        Man sollte Shellkommandos aus Anleitungen, die in einem Browser angezeigt werden, grundsätzlich nicht einfach ungeprüft in die Shell einfügen und ausführen.</p>
        <p>Denn es ist möglich, Teile des Codes z. B. via CSS zu verstecken. Diese Teile werden aber trotzdem kopiert und landen auch in der Shell, wo sie ausgeführt werden.</p>
        <p>Besser ist es, die Kommandos erst in einen lokalen Texteditor einzufügen und dort zu prüfen, bevor man die ausführt.<p>
        <p>Kopiere doch mal dieses Beispiel und füge es – in die Shell (!NEIN) – in einen Editor ein:</p>
        <p><code>echo "Befehl 1"; <span class="shortcode-codewarning hidden">echo "Befehl 2. Im Browser unsichtbar, da font-size per CSS auf 0 gestellt wurde. Hier könnte z. B. die Festplatte gelöscht oder andere Dummheiten gemacht werden."; </span>echo "Befehl 3"</code></p></div>
    </details>
</div>

<h2 id="immer-prüfen" data-numberify>Immer prüfen<a class="anchor ms-1" href="#immer-prüfen"></a></h2>
<p>Auch bei vertrauenswürdigen Websites oder Beiträgen sollte man Shell Kommandos immer prüfen, denn es könnte sein, dass Inhalt von Dritten verändert wurden. Auch hier im Blog oder im Wiki.</p>

<h2 id="quelltext-für-den-shortcode" data-numberify>Quelltext für den Shortcode<a class="anchor ms-1" href="#quelltext-für-den-shortcode"></a></h2>

<h3 id="html" data-numberify>HTML<a class="anchor ms-1" href="#html"></a></h3>
<p>Und das ist der Quelltext für den Shortcode</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-html" data-lang="html"><span style="display:flex;"><span>&lt;<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;shortcode-codewarning&#34;</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">details</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;<span style="color:#f92672">summary</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;shortcode-codewarning summary&#34;</span>&gt;Vorsicht beim Ausführen von Shellkommandos via Copy <span style="color:#960050;background-color:#1e0010">&amp;</span> Paste&lt;/<span style="color:#f92672">summary</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;shortcode-codewarning content&#34;</span>&gt;&lt;<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>        Man sollte Shellkommandos aus Anleitungen, die in einem Browser angezeigt werden, grundsätzlich nicht einfach ungeprüft in die Shell einfügen und ausführen.&lt;/<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">p</span>&gt;Denn es ist möglich, Teile des Codes z. B. via CSS zu verstecken. Diese Teile werden aber trotzdem kopiert und landen auch in der Shell, wo sie ausgeführt werden.&lt;/<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">p</span>&gt;Besser ist es, die Kommandos erst in einen lokalen Texteditor einzufügen und dort zu prüfen, bevor man die ausführt.&lt;<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">p</span>&gt;Kopiere doch mal dieses Beispiel und füge es – in die Shell (!NEIN) – in einen Editor ein:&lt;/<span style="color:#f92672">p</span>&gt;
</span></span><span style="display:flex;"><span>        &lt;<span style="color:#f92672">p</span>&gt;&lt;<span style="color:#f92672">code</span>&gt;echo &#34;Befehl 1&#34;; &lt;<span style="color:#f92672">span</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;shortcode-codewarning hidden&#34;</span>&gt;echo &#34;Befehl 2. Im Browser unsichtbar, da font-size per CSS auf 0 gestellt wurde. Hier könnte z. B. die Festplatte gelöscht oder andere Dummheiten gemacht werden.&#34;; &lt;/<span style="color:#f92672">span</span>&gt;echo &#34;Befehl 3&#34;&lt;/<span style="color:#f92672">code</span>&gt;&lt;/<span style="color:#f92672">p</span>&gt;&lt;/<span style="color:#f92672">div</span>&gt;
</span></span><span style="display:flex;"><span>    &lt;/<span style="color:#f92672">details</span>&gt;
</span></span><span style="display:flex;"><span>&lt;/<span style="color:#f92672">div</span>&gt;
</span></span></code></pre></div>
<h3 id="scss" data-numberify>SCSS<a class="anchor ms-1" href="#scss"></a></h3>
<p>Und hier das dazugehörige SCSS:</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-scss" data-lang="scss"><span style="display:flex;"><span><span style="color:#75715e">/* Shortcode Codewarning */</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">.shortcode-codewarning</span> {
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">margin-bottom</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span><span style="color:#66d9ef">em</span>;
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">.hidden</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">font-size</span><span style="color:#f92672">:</span><span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">.summary</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">border-radius</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">color</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">#fff</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">font-weight</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">700</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">padding-left</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span><span style="color:#66d9ef">em</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">margin-bottom</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">background</span><span style="color:#f92672">:</span> <span style="color:#a6e22e">rgba</span>(<span style="color:#ae81ff">198</span><span style="color:#f92672">,</span> <span style="color:#ae81ff">65</span><span style="color:#f92672">,</span> <span style="color:#ae81ff">61</span><span style="color:#f92672">,</span> <span style="color:#ae81ff">0</span><span style="color:#ae81ff">.8</span>);
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">.content</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">border-radius</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">color</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">#666</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">display</span><span style="color:#f92672">:</span> block;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">font-size</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span><span style="color:#66d9ef">em</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">margin-bottom</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">margin-top</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">padding</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">.6</span><span style="color:#66d9ef">em</span> <span style="color:#ae81ff">1</span><span style="color:#66d9ef">em</span>;
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">background</span><span style="color:#f92672">:</span> <span style="color:#ae81ff">#d9d2d2</span>;
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
<h2 id="einbindung-in-hugo" data-numberify>Einbindung in Hugo<a class="anchor ms-1" href="#einbindung-in-hugo"></a></h2>
<p>Um den Shortcode in Hugo einzubinden, speichert man den HTML Teil als <code>codewarning.html</code> nach <code>layouts/shortcodes</code> ab, den CSS-Teil entsprechend im Theme, was sehr unterschiedlich ist.</p>
<p>Um den Shortcode dann innerhalb von Blogbeiträgen einzufügen, schreibt man an entsprechender Stelle:</p>
<pre><code>{{&lt; codewarning &gt;}}
</code></pre>]]></content:encoded></item><item><title>Parameter für Rsync, damit die Webseite auch während des Uploads ansehnlich bleibt</title><link>https://natenom.de/2022/02/parameter-fuer-rsync-damit-webseite-waehrend-upload-ansehnlich-bleibt/</link><pubDate>Fri, 11 Feb 2022 12:45:57 +0100</pubDate><guid>https://natenom.de/2022/02/parameter-fuer-rsync-damit-webseite-waehrend-upload-ansehnlich-bleibt/</guid><description>Als ich heute im Browser auf dem Smartphone meinen Blog anschauen wollte, während am PC gerade die neue Version per rsync hochgeladen wurde, war die Darstellung des Blogs total kaputt.
Ist mir bisher noch nicht aufgefallen, ist aber logisch. Das liegt daran, dass rsync so eingestellt ist, dass Dateien, die lokal nicht mehr vorhanden sind, auch online gelöscht werden.
Und immer dann, wenn ich etwas am CSS ändere, wird das wohl zuerst gelöscht, bevor die neue Variante hochgeladen wird.</description><content:encoded><![CDATA[<p>Als ich heute im Browser auf dem Smartphone meinen Blog anschauen wollte, während am PC gerade die neue Version per rsync hochgeladen wurde, war die Darstellung des Blogs total kaputt.</p>
<p>Ist mir bisher noch nicht aufgefallen, ist aber logisch. Das liegt daran, dass rsync so eingestellt ist, dass Dateien, die lokal nicht mehr vorhanden sind, auch online gelöscht werden.</p>
<p>Und immer dann, wenn ich etwas am CSS ändere, wird das wohl zuerst gelöscht, bevor die neue Variante hochgeladen wird. D. h. wenn ich die eine Seite des Blogs genau in dem Moment aufrufe, als dort noch auf das alte CSS verwiesen wird, das aber bereits gelöscht wurde, dann sieht das so aus:</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/02/parameter-fuer-rsync-damit-webseite-waehrend-upload-ansehnlich-bleibt/2022-02-11-screenshot-blog-android-bei-fehlendem-css.png" />
			         <img alt="Screenshot des Blogs im Browser bei fehlendem CSS." src="/2022/02/parameter-fuer-rsync-damit-webseite-waehrend-upload-ansehnlich-bleibt/2022-02-11-screenshot-blog-android-bei-fehlendem-css.png" title="Screenshot des Blogs im Browser bei fehlendem CSS." width="576" height="1312" loading="lazy" /></picture><figcaption>Screenshot des Blogs im Browser bei fehlendem CSS.</figcaption></figure><p>
</p>
<p>Habe rsync jetzt so eingestellt, dass lokal nicht mehr vorhandene Dateien erst gelöscht werden, wenn alle Dateien hochgeladen wurden und nicht zwischendurch, wie per Voreinstellung.</p>
<p>Aus dem Parameter <code>--delete</code> wird <code>--delete-delay</code>.</p>
<div class="shortcode-update">
<p>Update: Habe die Option zu <code>--delete-delay</code> korrigiert. Vorher wurde <code>--delete-after</code> verwendet, das aber auch nicht funktionierte, da so die Dateien innerhalb z. B. des selben Verzeichnisses gelöscht wurden, sobald die anderen in dem selben Verzeichnis hochgeladen waren. Mit <code>--delete-delay</code> werden Dateien erst ganz zum Schluss gelöscht, nachdem alle hochgeladen wurden.</p>
</div>

]]></content:encoded></item><item><title>Umzug von WordPress zu Hugo – Teil 1 – Von den Gründen bis zum ersten funktionierenden Blog</title><link>https://natenom.de/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/</link><pubDate>Thu, 03 Feb 2022 07:30:33 +0100</pubDate><guid>https://natenom.de/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/</guid><description>Schon einige Male in den vergangenen Jahren habe ich versucht, meinen Blog von WordPress auf Hugo umzuziehen. Immer gab es dabei für mich unüberwindbare Hürden. Jetzt endlich hat es mal in einem neuen Anlauf funktioniert.
Hier berichte ich davon, wie genau ich das gemacht habe, was es zu bedenken galt und wie es im Ergebnis geworden ist. In erster Linie ist es für mich als Dokumentation gedacht, damit ich das in x Zeit noch nachvollziehen kann.</description><content:encoded><![CDATA[<p>Schon einige Male in den vergangenen Jahren habe ich versucht, meinen Blog von WordPress auf Hugo umzuziehen. Immer gab es dabei für mich unüberwindbare Hürden. Jetzt endlich hat es mal in einem neuen Anlauf funktioniert.</p>
<p>Hier berichte ich davon, wie genau ich das gemacht habe, was es zu bedenken galt und wie es im Ergebnis geworden ist. In erster Linie ist es für mich als Dokumentation gedacht, damit ich das in x Zeit noch nachvollziehen kann. Und wenn jemand anderes damit auch noch etwas anfangen kann, dann ist es noch besser.</p>
<p>Dabei schreibe ich übrigens das erste Mal einen Blogbeitrag mit einem einfachen Editor, offline, ohne Browser, in einem einfachen Textbearbeitungsprogramm. Und das fühlt sich gut an.</p>

<h2 id="wieso-überhaupt-weg-von-wordpress" data-numberify>Wieso überhaupt weg von WordPress?<a class="anchor ms-1" href="#wieso-überhaupt-weg-von-wordpress"></a></h2>
<p>Ich habe WordPress seit 2009 für meinen Blog benutzt und es immer auf eigenen Servern selbst gehostet. Ich war immer sehr zufrieden damit. WordPress hat es mir ermöglicht, mich immer nur auf den Inhalt konzentrieren zu können und hat mir die ganze Arbeit drumherum abgenommen. Und es ist immer noch so. Das schätze ich an dem Content Management System WordPress. Jedes Upgrade auf eine neue Version war immer fehlerfrei mit nur wenigen Klicks möglich.</p>
<p>Die meisten Funktionen von WordPress habe ich nie benutzt. Und mit dem Update auf den Gutenberg-Editor und jetzt kürzlich auf 5.9 mit dem Super Feature &ldquo;Full Site Editing&rdquo; ist noch klarer geworden, dass ich solch ein komplexes System nicht benötige. Es ist immer noch sehr einfach zu bedienen und zu aktualisieren, aber ich brauche es eben nicht.</p>
<p>Was ich brauche, ist eine einfache Möglichkeit, Texte zu schreiben, die Maus möglichst nicht bewegen zu müssen und außerdem benötige ich nur die grundlegensten Formatierungen. Kurzum das, was <a  class='urlextern'  href="https://daringfireball.net/projects/markdown/">Markdown</a> bietet.</p>
<p>Natürlich sind da noch andere Aspekte:</p>
<ul>
<li>Wartbarkeit: Webserver, PHP, Datenbank, alles will gepflegt werden und benötigt ab und zu Aufmerksamkeit. Mit Hugo kann man den kompletten Blog, der aus statischen Dateien (HTML, CSS, JavaScript) besteht, auf einen Webserver werfen und für immer dort liegen lassen.</li>
<li>Portierbarkeit/Backup: Sollte ich mal vom Rad fallen und nicht mehr aufstehen, kann man sich das Archiv herunterladen und hat weiterhin Zugriff auf die Inhalte des Blogs. Entsprechend wird man sich später das einmal alle x Zeit aktualisierte Archiv herunterladen können. Dazu später mehr.</li>
<li>Sicherheit: Da nichts dynamisch ausgeführt wird, gibt es auch keine Sicherheitslücken, die jemand ausnutzen könnte.</li>
<li>&ldquo;Einfachheit&rdquo;: Text-Editor, Hugo laufen lassen, hochladen per SFTP. Fertig.</li>
</ul>
<p></p><figure class="image-caption"><a href="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben.png"><picture>
                <source type="image/webp" srcset="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_360x0_resize_q95_h2_catmullrom_3.webp 360w,/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_500x0_resize_q95_h2_catmullrom_3.webp 500w,/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_816x0_resize_q95_h2_catmullrom_3.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="Fenster eines Texteditors unter KDE/Plasma" srcset="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_360x0_resize_q95_h2_catmullrom_3.webp 360w, /2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_500x0_resize_q95_h2_catmullrom_3.webp 500w, /2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_816x0_resize_q95_h2_catmullrom_3.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-03-blog-im-texteditor-schreiben_hu223b2f7dc1c2e1006a2b9545468f5ada_162917_816x0_resize_q95_h2_catmullrom_3.webp" title="Fenster eines Texteditors unter KDE/Plasma" loading="lazy" width="816" height="523" /></picture></a><figcaption>Fenster eines Texteditors unter KDE/Plasma</figcaption></figure><p>
</p>

<h2 id="ein-schönes-theme-für-hugo-finden" data-numberify>Ein schönes Theme für Hugo finden<a class="anchor ms-1" href="#ein-schönes-theme-für-hugo-finden"></a></h2>
<p>Man kann natürlich auch selbst ein Theme bauen, aber das ist nichts für mich.</p>
<p>Eine Liste von aktuell 285 Themes gibt es auf der Webseite von Hugo, siehe <a  class='urlextern'  href="https://themes.gohugo.io/">hier</a>.</p>
<p>Ich habe mich für das Theme <a  class='urlextern'  href="https://themes.gohugo.io/themes/hugo-theme-bootstrap/">Bootstrap Theme for Personal Blog and Documentations</a> entschieden, weil es fast alles liefert, was ich benötige und vielfältige Einstellungsmöglichkeiten hat.</p>
<p>Was ich besonders mag:</p>
<ul>
<li>Dark Mode/Light Mode</li>
<li>Suchfunktion (<a  class='urlextern'  href="https://fusejs.io">fuse.js</a>)</li>
<li>Durch Ausblenden der Seitenliste kann der Inhaltsbereich breiter gemacht werden.</li>
<li>Es gibt bereits Shortcodes für Nachrichtenboxen (Info, Alarm, &hellip;). Siehe <a  class='urlextern'  href="https://hbs.razonyang.com/en/docs/shortcodes/alert/">hier</a>.</li>
<li><a  class='urlextern'  href="https://gohugo.io/templates/internal/#configure-twitter-cards">Twitter Cards</a> und <a  class='urlextern'  href="https://gohugo.io/templates/internal/#configure-open-graph">Open Graph</a></li>
<li>Responsive</li>
<li>optional mehrsprachig</li>
<li>Archivseiten</li>
<li>Shortcods für Verleinern von Bildern. Die verkleinerten Bilder werden beim Rendern von Hugo aus den Originaldateien erzeugt.</li>
<li>Lazy loading für Bilder</li>
<li>Inhaltsverzeichnis für Blogbeiträge</li>
<li>Keine Einbindung von externen Inhalten</li>
<li>Liste von &ldquo;ähnlichen Beiträgen&rdquo;</li>
</ul>

<h2 id="vor-dem-export-in-wordpress-aufräumen" data-numberify>Vor dem Export in WordPress aufräumen<a class="anchor ms-1" href="#vor-dem-export-in-wordpress-aufräumen"></a></h2>

<h3 id="tabellen-aufräumen" data-numberify>Tabellen aufräumen<a class="anchor ms-1" href="#tabellen-aufräumen"></a></h3>
<p>Vor dem Export der Daten kann man den Blog noch etwas aufräumen. Hat man z. B. wie ich über die Jahre viele verschiedene Plugins ausprobiert und wieder entfernt, dann könnten die Daten der Plugins immer noch irgendwo in den Tabellen der Datenbank liegen und beim Export in den Daten landen. Das wären alles zusätzliche Daten, die man nicht benötigt.</p>
<p>Dazu hatte ich mal einen eigenen Blogbeitrag verfasst, siehe <a  href="/2021/05/datenbank-von-wordpress-auch-mal-aufraeumen/">hier</a>.</p>

<h3 id="entwürfe" data-numberify>Entwürfe<a class="anchor ms-1" href="#entwürfe"></a></h3>
<p>Werden Entwürfe exportiert, dann erhalten diese in der exportierten Version kein Datum und sind somit erstmal aus dem Sichtbereich raus oder bekommen seltsame Namen/URLs zugewiesen wie z. B. &ldquo;?p=52696/&rdquo;, das der fortlaufenden ID von Blogbeiträgen entspricht. Das will man später alles nicht einzeln bearbeiten müssen. Deshalb Entwürfe löschen oder veröffentlichen.</p>

<h3 id="verlinkungen-in-wordpress" data-numberify>Verlinkungen in WordPress<a class="anchor ms-1" href="#verlinkungen-in-wordpress"></a></h3>
<p>Man kann in WordPress entweder die komplette URL verwenden (Standard), um auf einen Beitrag im eigenen Blog zu verlinken oder die ID des Beitrags verwenden.</p>
<p>Die komplette URL wäre z. B. &ldquo;natenom.de/2021/01/beitrag-ueber-den-kleinen-elefanten&rdquo; während die ID &ldquo;natenom.de/?p=12345&rdquo; wäre.</p>
<p>Solche Verlinkungen sollte man noch im laufenden WordPress Blog finden und in die erste Form (lange URL) überführen, da die zweite Form mit der ID in Hugo nicht funktionieren wird.</p>
<p>Dazu reicht die Suchfunktion im Adminpanel aus. Man sucht nach &ldquo;/?p=&rdquo;. In meinem Fall fanden sich ca. 130 solcher Beiträge mit ID Verlinkungen.</p>

<h2 id="optional-backup-des-blogs--für-hugo-nicht-relevant" data-numberify>(optional) Backup des Blogs – Für Hugo nicht relevant<a class="anchor ms-1" href="#optional-backup-des-blogs--für-hugo-nicht-relevant"></a></h2>
<p>Da der Blog am Ende abgeschaltet werden soll, habe ich ein letztes Mal Backups gemacht:</p>
<ul>
<li>Backup der WordPress Datenbank</li>
<li>Als Admin in WordPress angemeldet und unter Werkzeuge -&gt; Daten exportieren -&gt; Alle Inhalte ausgewählt und die xml-Datei heruntergeladen. In dieser Datei sind alle Beiträge, alle Seiten und auch die Kommentare von Benutzern enthalten. Nicht jedoch die hochgeladenen Dateien. In meinem Fall ist die Datei um 50 MiB groß und hat um die 50000 Zeilen.</li>
<li>Backup des kompletten WordPress-Verzeichnisses inklusive den hochgeladenen Dateien und dem ganzen PHP-Zeug</li>
<li>Herunterladen der kompletten Webseite mit wget, um später noch nachvollziehen zu können, unter welchen URLs was zu finden war. Für solche URLs, die Hugo nicht generiert. Die könnte man dann mit einem Webserver passend weiterleiten. Die Kommandozeile dafür ist:</li>
</ul>
<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-bash" data-lang="bash"><span style="display:flex;"><span>wget --recursive --domains<span style="color:#f92672">=</span>natenom.de --html-extension --page-requisites --convert-links --no-parent <span style="color:#e6db74">&#34;/&#34;</span> -R <span style="color:#e6db74">&#34;*xmlrpc*&#34;</span> --reject-regex <span style="color:#e6db74">&#34;.*wp-content.*&#34;</span></span></span></code></pre></div>
<div class="shortcode-notice update">
    <div class="shortcode-notice-title update">
        Update</div>
    <div class="notice-content"><p>Wenn es Probleme gibt und eine Meldung in der Form <code>no follow attribute found</code>, dann benötigt man zusätzlich noch diesen Parameter:</p>
<pre><code>-erobots=off
</code></pre>
</div>
</div>


<p>Das Verzeichnis <code>wp-content</code> habe ich bewusst ausgelassen, da es nur hochgeladene Dateien enthält (ca. 7 GiB), die bereits in einem anderen Backup enthalten sind.</p>
<p></p><figure class="image-caption"><a href="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress.png"><picture>
                <source type="image/webp" srcset="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_360x0_resize_q95_h2_catmullrom_3.webp 360w,/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_500x0_resize_q95_h2_catmullrom_3.webp 500w,/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_816x0_resize_q95_h2_catmullrom_3.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="" srcset="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_360x0_resize_q95_h2_catmullrom_3.webp 360w, /2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_500x0_resize_q95_h2_catmullrom_3.webp 500w, /2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_816x0_resize_q95_h2_catmullrom_3.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/images/2022-02-01-backups-export-aller-daten-aus-wordpress_hub4eed37399a08ef15104b74a01748fa5_75678_816x0_resize_q95_h2_catmullrom_3.webp" title="Export Tool von WordPress. Exportiert alles außer der hochgeladenen Dateien." loading="lazy" width="816" height="430" /></picture></a><figcaption>Export Tool von WordPress. Exportiert alles außer der hochgeladenen Dateien.</figcaption></figure><p>
</p>

<h2 id="daten-für-hugo-aus-wordpress-exportieren" data-numberify>Daten für Hugo aus WordPress exportieren<a class="anchor ms-1" href="#daten-für-hugo-aus-wordpress-exportieren"></a></h2>
<p>Mit dem Tool <a  class='urlextern'  href="https://github.com/SchumacherFM/wordpress-to-hugo-exporter">WordPress to Hugo Exporter</a> kann man alle Seiten und Beiträg eines Blogs in eine Zip-Datei exportieren.</p>
<p>Ich gehe hier nicht darauf ein, wie man das Tool verwendet, da das ausreichend gut auf dessen Webseite erklärt ist. Wichtig ist hier nur, dass man am Ende eine Datei erhält, hier im Beispiel mit dem Namen wpexport.zip.</p>
<p>Auf der Projektseite steht, was man an der PHP-Datei anpassen muss, damit auch Kommentare exportiert werden.</p>
<p>Der Export kann eine ganze Weile dauern und sollte deshalb auf der Kommandozeile ausgeführt werden. Die <code>wpexport.zip</code> meines Blogs hatte eine Dateigröße von etwas mehr als 7 GiB.</p>
<p>Die Datei <code>wpexport.zip</code> hat diese Struktur:</p>
<pre tabindex="0"><code>seite-a/index.md
seite-b/index.md
irgendeine-seite/index.md
posts/
    2022-01-05-mein-beitrag-im-januar
    2022-01-06-mein-beitrag-ueber-bluemeleinchen
    2022-02-08-ein-neuer-beitrag-mit-tollen-fahrraedern
wp-content/
    uploads/
        2022/
            01/
                2022-01-04-hochgeladenes-bild-1.jpg
                2022-01-04-hochgeladenes-bild-2.jpg
config.yaml
</code></pre><ul>
<li>Es sind alle &ldquo;Seiten&rdquo; des Blogs als Verzeichnisse enthalten, in den index.md-Dateien sind die Inhalte.</li>
<li>Die &ldquo;Beiträge&rdquo; (Englisch &ldquo;Posts&rdquo;) liegen als md-Dateien im Verzeichnis &ldquo;posts&rdquo;.</li>
<li>Die hochgeladenen Dateien wie Fotos, Screenshots oder auch Audio und Video liegen im Verzeichnis wp-content/uploads, sortiert nach Jahr und Monat.</li>
<li>Dann gibt es noch die Datei config.yaml, welche die URL des Blogs enthält, den Namen und die Beschreibung.</li>
</ul>
<p>Die Daten lädt man dann auf den eigenen PC herunter.</p>

<h2 id="eine-webseite-mit-hugo-anlegen-und-theme-einfügen" data-numberify>Eine Webseite mit Hugo anlegen und Theme einfügen<a class="anchor ms-1" href="#eine-webseite-mit-hugo-anlegen-und-theme-einfügen"></a></h2>
<p>Ich will hier nicht darauf eingehen, wie man eine Webseite mit Hugo anlegt und das Theme einfügt, das ist auf der Projektseite bereits ausführlich gut dokumentiert, siehe <a  class='urlextern'  href="https://gohugo.io/getting-started/quick-start/">hier</a>.</p>
<p>Sobald das erledigt und das Theme eingebunden ist, kann man die exportierten Daten aus dem heruntergeladenen Archiv entpacken und die Daten in das Verzeichnis des neuen Blogs hineinkopieren:</p>
<ul>
<li>Die Datei <code>config.yaml</code> habe ich weg gelassen.</li>
<li>Das Verzeichnis <code>posts</code> wird nach <code>content</code> kopiert.</li>
<li>Das Verzeichnisse <code>seite-x</code> werden nach <code>content/pages</code> kopiert.</li>
<li>Das Verzeichnis <code>wp-content</code> wird nach <code>static</code> kopiert.</li>
</ul>

<h2 id="ein-bisschen-konfiguration" data-numberify>Ein bisschen Konfiguration<a class="anchor ms-1" href="#ein-bisschen-konfiguration"></a></h2>
<p>Eine Liste aller Einstellungsmöglichkeiten gibt es auf der <a  class='urlextern'  href="https://hbs.razonyang.com/v0/en/docs/configuration/">Seite des Theme-Entwicklers</a>.</p>

<h3 id="taxonomie" data-numberify>Taxonomie<a class="anchor ms-1" href="#taxonomie"></a></h3>
<p>Bei der Taxonomie wollte ich die URLs von WordPress möglichst erhalten.</p>
<p>Per Voreinstellung verwendet Hugo für tags in der URL &ldquo;tags&rdquo;, WordPress jedoch &ldquo;tag&rdquo;. Bei Kategorien verwendet Hugo &ldquo;categories&rdquo; und WordPress &ldquo;category&rdquo;.</p>
<p>Das kann man in der <code>config.toml</code> anpassen mit:</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-toml" data-lang="toml"><span style="display:flex;"><span>[<span style="color:#a6e22e">taxonomies</span>]
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">category</span> = <span style="color:#e6db74">&#39;category&#39;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">tag</span> = <span style="color:#e6db74">&#39;tag&#39;</span></span></span></code></pre></div>
<p>In meinem ausgewählten Theme funktioniert das jedoch leider nicht, da zwingend &ldquo;tags&rdquo; und &ldquo;categories&rdquo; notwendig sind. Kann man sicher anpassen, ich aber nicht. Also bleibt es bei den Voreinstellungen. Ich werde es dann einfach mit dem Webserver weiterleiten lassen.</p>
<p>In Nginx z. B. mit:</p>
<pre tabindex="0"><code>rewrite ^/tag/(.*)$ /tags/$1 redirect;
rewrite ^/category/(.*)$ /categories/$1 redirect;
</code></pre><p>Wenn das gut funktioniert, kann man das später auf <em>permanent</em> umschreiben.</p>

<h3 id="beiträge-nicht-gelistet" data-numberify>Beiträge nicht gelistet<a class="anchor ms-1" href="#beiträge-nicht-gelistet"></a></h3>
<p>Auf der Startseite des Blogs wurden die Beiträge nicht gelistet. Mit Herumprobieren konnte ich herausfinden, dass das an dem Eintrag &ldquo;type: post&rdquo; im Front Matter (Metadaten eines Beitrags) lag. Daher habe ich mit dem folgenden Shell-Aufruf diese Zeile in allen md-Dateien gelöscht:</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-bash" data-lang="bash"><span style="display:flex;"><span>sed -i <span style="color:#e6db74">&#34;/^type: post</span>$<span style="color:#e6db74">/d&#34;</span> *.md</span></span></code></pre></div>

<h3 id="sonstige-konfiguration" data-numberify>Sonstige Konfiguration<a class="anchor ms-1" href="#sonstige-konfiguration"></a></h3>
<p>Hier noch ein paar weitere wichtige Dinge, die ich in der Konfiguration eingestellt habe.
<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-toml" data-lang="toml"><span style="display:flex;"><span>[<span style="color:#960050;background-color:#1e0010">…</span>]
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">baseURL</span> = <span style="color:#e6db74">&#34;/&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">rssLimit</span> = <span style="color:#ae81ff">15</span>
</span></span><span style="display:flex;"><span>[<span style="color:#960050;background-color:#1e0010">…</span>]
</span></span><span style="display:flex;"><span>[<span style="color:#a6e22e">params</span>]
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">comment</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">breadcrumb</span> = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">palette</span> = <span style="color:#e6db74">&#34;blue&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">dateFormat</span> = <span style="color:#e6db74">&#34;Mon, 02 Jan 2006 15:04&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">mainSections</span> = [<span style="color:#e6db74">&#34;posts&#34;</span>, <span style="color:#e6db74">&#34;pages&#34;</span> ]
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">poweredBy</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">math</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">diagram</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">logo</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">description</span> = <span style="color:#e6db74">&#34; Verkehrswende, Fahrrad, CriticalMass, OpenBikeSensor, SimRa, Mumble, Open Source, Minimalist, OpenStreetMap, Müllsammeln&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">recentPostCount</span> = <span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">relatedPostCount</span> = <span style="color:#ae81ff">6</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">categoryCount</span> = <span style="color:#ae81ff">200</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">tagCount</span> = <span style="color:#ae81ff">150</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">searchBar</span> = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">post</span>.<span style="color:#a6e22e">copyright</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">search</span>.<span style="color:#a6e22e">fuse</span>.<span style="color:#a6e22e">threshold</span> = <span style="color:#ae81ff">0.0</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">countTaxonomyPosts</span> = <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">post</span>.<span style="color:#a6e22e">excerpt</span> = <span style="color:#e6db74">&#34;description&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">viewer</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">showShare</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">socialShare</span> = <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>[<span style="color:#a6e22e">outputs</span>]
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">home</span> = [<span style="color:#e6db74">&#34;HTML&#34;</span>, <span style="color:#e6db74">&#34;RSS&#34;</span>, <span style="color:#e6db74">&#34;JSON&#34;</span>]</span></span></code></pre></div></p>

<h2 id="von-absoluten-urls-zu-relativen-urls" data-numberify>Von absoluten URLs zu relativen URLs<a class="anchor ms-1" href="#von-absoluten-urls-zu-relativen-urls"></a></h2>
<p>Ich habe keine Ahnung von SEO und habe mich nie damit beschäftigt. Könnte es sein, dass WordPress aus SEO-Gründen absoulte URLs verwendet und nicht realtive? Ich habe dazu die Info auf einer Webseite gefunden, dass relative Links problematisch werden könnten, wenn der Server nicht richtig eingerichtet sei.</p>
<p>Hat man Bedenken, dann weiter zum nächsten Abschnitt.</p>
<p>Aber: Will man den neuen Blog auf dem eigenen PC anschauen, benötigt man ohne die Veränderungen der URLs eine Internetverbindung, damit eingebettete Inhalte wie z. B. Bilder vom Browser von der ursprünglichen Webseite heruntergeladen werden können. Oder aber man biegt das DNS temporär um, muss dann aber zumindest aus https http machen, und so weiter.</p>

<h3 id="absolute-urls-auf-hochgeladene-dateien" data-numberify>Absolute URLs auf hochgeladene Dateien<a class="anchor ms-1" href="#absolute-urls-auf-hochgeladene-dateien"></a></h3>
<p>Alle Verlinkungen auf Fotos, Bilder und Videos sind in WordPress mit der absoulten URL angegeben, in meinem Fall mit <code>natenom.de/wp-content/uploads/...</code>. Und das wird so auch in die md-Dateien exportiert.</p>
<p>Deshalb kann man die URLs mit dem Streameditor sed umschreiben lassen:</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-bash" data-lang="bash"><span style="display:flex;"><span>sed -i -E -e <span style="color:#e6db74">&#39;s#/wp-content/uploads/#/wp-content/uploads/#g&#39;</span> *.md</span></span></code></pre></div>
<p>(Ich habe das aktuell erstmal noch nicht getan.)</p>
<p>Das Kommando führt man in allen Verzeichnissen aus, in denen md-Dateien liegen. Man könnte das auch so umschreiben, dass es ausgehend vom neuen Blogverzeichnis alle md-Dateien findet und so alle erfasst. Aber so reicht es mir.</p>

<h3 id="absolute-urls-auf-blogbeiträge" data-numberify>Absolute URLs auf Blogbeiträge<a class="anchor ms-1" href="#absolute-urls-auf-blogbeiträge"></a></h3>
<p>Das selbe gilt auch für Verlinkungen im Blogbeiträgen auf andere Beiträg im eigenen Blog. Auch diese URLs lasse ich umschreiben:</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-bash" data-lang="bash"><span style="display:flex;"><span>sed -i -E -e <span style="color:#e6db74">&#39;s#/#/#g&#39;</span> *.md</span></span></code></pre></div>
<p>(Ich habe das aktuell erstmal noch nicht getan.)</p>
<p>Aus dem absoulten Link <code>/</code> wird dadurch <code>/</code>.</p>

<h2 id="umlaute-in-urls-von-kategorien-und-tags" data-numberify>Umlaute in URLs von Kategorien und Tags<a class="anchor ms-1" href="#umlaute-in-urls-von-kategorien-und-tags"></a></h2>
<p>Ich verwende im Blog das Tag &ldquo;Müllsammeln&rdquo; und die Kategorie &ldquo;Mobilität&rdquo;. Wordpress hat dabei automatisch die Umlaute in den dafür genutzten URLs in die alternativen Schreibweisen &ldquo;muellsammeln&rdquo; und &ldquo;mobilitaet&rdquo; umgewandelt. Hugo macht das nicht, weshalb dort das Tag auch &ldquo;müllsammeln&rdquo; lautet.</p>
<p>Es gibt mehrere Lösungen:</p>
<ol>
<li>Es dabei belassen, denn mittlerweile sind diese Zeichen kein Problem mehr. Es sieht nur nicht sonderlich schön aus, wenn man statt <strong>mobilität</strong> das hier sieht <strong>mobilit%C3%A4t</strong></li>
<li>Ohne Veränderungen an den Beiträgen wäre die Option <strong>removePathAccents</strong> von Hugo möglich, die aus &ldquo;mobilität&rdquo; &ldquo;mobilitat&rdquo; macht.</li>
<li>Hugo selbst zu verändern, <a  class='urlextern'  href="https://www.von-laufenberg.de/blog/it/hugo-umlaute/">siehe hier</a>.</li>
<li>Alle Vorkommen der Tags in den Beiträgen mit sed umschreiben und ö durch oe ersetzen usw.</li>
<li>Weiterleitungen durch den Webserver, siehe unten.</li>
</ol>
<p>Einen Issue mit vielen Informationen zu diesem Theme gibt es auf Github, <a  class='urlextern'  href="https://github.com/gohugoio/hugo/issues/3476">siehe hier</a>. Ein weitere Issue zu dem Thema ist seit November 2021 noch offen, <a  class='urlextern'  href="https://github.com/gohugoio/hugo/issues/9134">siehe hier</a>.</p>
<p>Ich habe mich entschieden, das so zu belassen das erst einmal mit Weiterleitungen zu &ldquo;fixen&rdquo; und zu schauen, was sich bei dem Issue tut.</p>
<p>In Nginx sind diese:</p>
<pre tabindex="0"><code>rewrite ^/tag/muellsammeln/(.*)$ /tags/müllsammeln/$1 redirect;
rewrite ^/category/mobilitaet/(.*)$ /categories/mobilität/$1 redirect;
rewrite ^/tag/(.*)$ /tags/$1 redirect;
rewrite ^/category/(.*)$ /categories/$1 redirect;
</code></pre><p>Ich nutze bei solchen Dingen am Anfang immer erst redirect, was dem HTTP Status 302 entspricht und ändere das dann irgendwann zu permanent (Status 301) um.</p>

<h2 id="fehlerseite-für-404" data-numberify>Fehlerseite für 404<a class="anchor ms-1" href="#fehlerseite-für-404"></a></h2>
<p>Falls doch mal eine Seite nicht gefunden wird, habe ich die <code>404.html</code> in Nginx eingerichtet:</p>
<pre tabindex="0"><code>error_page 404 /404.html;
</code></pre><p>Hier kann man die Seite mal ansehen: <a  href="/blabla-diese-seite-gibt-es-nicht">Dieser Link zeigt auf eine nicht vorhandene Seite</a>.</p>

<h2 id="damit-erstmal-keine-inhalte-fehlen" data-numberify>Damit erstmal keine Inhalte fehlen<a class="anchor ms-1" href="#damit-erstmal-keine-inhalte-fehlen"></a></h2>
<p>Würde man jetzt schon Hugo starten, würden vermutlich viele Inhalte in verschiedenen Beiträgen fehlen. Das liegt daran, dass das oben genannte Export-Tool viele HTML Tags nicht in Markdown konvertieren kann und dann an diesen Stellen den HTML-Quelltext in die exportierten md-Dateien schreibt. Doch Hugo filtert diesen HTML-Quelltext beim Rendern der Website heraus.</p>
<p>Damit ich nicht erst alle 2560 Blogbeiträge manuell überprüfen und korrigieren muss, bevor ich den neuen Blog öffentlich machen kann, habe ich mich entschieden, dieses Verhalten von Hugo umzustellen und Hugo anzuweisen, den HTML-Quelltext nicht herauszufiltern. Das ist zwar nicht im Sinne des Erfinders aber so habe ich die Möglichkeit, die Arbeit auf <em>irgendwann</em> später zu verschieben.</p>
<p>Details dazu findet man <a  class='urlextern'  href="https://gohugo.io/news/0.60.0-relnotes/">hier</a>. Suche nach <code>unsafe</code>.</p>
<p>In die config.toml fügt man dazu Folgendes ein:</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-toml" data-lang="toml"><span style="display:flex;"><span>[<span style="color:#a6e22e">markup</span>]
</span></span><span style="display:flex;"><span>  [<span style="color:#a6e22e">markup</span>.<span style="color:#a6e22e">goldmark</span>]
</span></span><span style="display:flex;"><span>    [<span style="color:#a6e22e">markup</span>.<span style="color:#a6e22e">goldmark</span>.<span style="color:#a6e22e">renderer</span>]
</span></span><span style="display:flex;"><span>      <span style="color:#a6e22e">unsafe</span> = <span style="color:#66d9ef">true</span></span></span></code></pre></div>

<h2 id="run-hugo-run" data-numberify>Run Hugo, Run<a class="anchor ms-1" href="#run-hugo-run"></a></h2>
<p>Jetzt kann man Hugo veranlassen, den neuen Blog das erste Mal zu rendern und dann lokal zur Verfügung zu stellen. Per Voreinstellung ist er unter localhost:1313 erreichbar.</p>
<p>Dazu wechselt man auf der Kommandozeile in das Verzeichnis des neuen Blogs und führt aus:</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-bash" data-lang="bash"><span style="display:flex;"><span>hugo server --renderToDisk -D -E -F -v</span></span></code></pre></div>
<p>Jetzt werden alle gerenderten Dateien und auch die aus dem <code>static</code>-Verzeichnis in das Verzeichnis <code>public</code> kopiert, welches Hugo automatisch erstellt, wenn es noch nicht existiert.</p>
<p>Sobald alles bereit ist, gibt es eine Meldung wie etwa:</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-bash" data-lang="bash"><span style="display:flex;"><span>                   |  DE   
</span></span><span style="display:flex;"><span>-------------------+-------
</span></span><span style="display:flex;"><span>  Pages            | <span style="color:#ae81ff">4350</span>  
</span></span><span style="display:flex;"><span>  Paginator pages  | <span style="color:#ae81ff">1694</span>  
</span></span><span style="display:flex;"><span>  Non-page files   |    <span style="color:#ae81ff">1</span>  
</span></span><span style="display:flex;"><span>  Static files     |   <span style="color:#ae81ff">88</span>  
</span></span><span style="display:flex;"><span>  Processed images |    <span style="color:#ae81ff">0</span>  
</span></span><span style="display:flex;"><span>  Aliases          |  <span style="color:#ae81ff">889</span>  
</span></span><span style="display:flex;"><span>  Sitemaps         |    <span style="color:#ae81ff">1</span>  
</span></span><span style="display:flex;"><span>  Cleaned          |    <span style="color:#ae81ff">0</span>  
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Built in <span style="color:#ae81ff">45228</span> ms
</span></span><span style="display:flex;"><span>Watching <span style="color:#66d9ef">for</span> changes in /home/natenom-web-hugo/<span style="color:#f92672">{</span>assets,content,layouts,static,themes<span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>Watching <span style="color:#66d9ef">for</span> config changes in /home/natenom-web-hugo/config.toml, <span style="color:#f92672">[</span>…<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Environment: <span style="color:#e6db74">&#34;development&#34;</span>
</span></span><span style="display:flex;"><span>Serving pages from /home/natenom-web-hugo/public
</span></span><span style="display:flex;"><span>Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
</span></span><span style="display:flex;"><span>Web Server is available at http://localhost:1313/ <span style="color:#f92672">(</span>bind address 127.0.0.1<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>Press Ctrl+C to stop</span></span></code></pre></div>

<h2 id="erstmal-fertig" data-numberify>Erstmal fertig<a class="anchor ms-1" href="#erstmal-fertig"></a></h2>
<p>Das reicht dann auch wieder für diesen Beitrag. Man kann jetzt schon im eigenen Blog offline umgucken und wird hier und da noch unschöne Dinge finden, wie falsch dargestellte Bilder.</p>
<p>In <a  href="/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-2">Teil 2</a> geht es darum, für die Übergangszeit das übrig gebliebene HTML, das nicht zu Markdown konvertiert werden konnte, automatisiert so zu verändern, dass der Blog trotzdem ansehnlich ist, wenn auch noch nicht perfekt.</p>
]]></content:encoded><enclosure url="https://natenom.de/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/cover.png" length="162917" type="image/png"/></item><item><title>Wieder ein paar schöne Neuerungen für meine Webseiten – dank Vrifox</title><link>https://natenom.de/2020/10/wieder-ein-paar-schoene-neuerungen-fuer-meine-webseiten-dank-vrifox/</link><pubDate>Mon, 19 Oct 2020 18:21:04 +0000</pubDate><guid>https://natenom.de/2020/10/wieder-ein-paar-schoene-neuerungen-fuer-meine-webseiten-dank-vrifox/</guid><description>&lt;p>Vrifox unterstützt mich nun schon seit mehreren Jahren bei meinen Webseiten. Ich mache den Inhalt, sie sorgt dafür, dass es schön aussieht.&lt;/p>
&lt;p>In der letzten Zeit und speziell in den letzten Tagen hat sie wieder mal ganz viel Arbeit investiert und viele Dinge gemacht, umgestaltet und verschönert, die ich hier auflisten möchte.&lt;/p></description><content:encoded><![CDATA[<p>Vrifox unterstützt mich nun schon seit mehreren Jahren bei meinen Webseiten. Ich mache den Inhalt, sie sorgt dafür, dass es schön aussieht.</p>
<p>In der letzten Zeit und speziell in den letzten Tagen hat sie wieder mal ganz viel Arbeit investiert und viele Dinge gemacht, umgestaltet und verschönert, die ich hier auflisten möchte.</p>
<h2 id="scss-an-zentraler-stelle-statt-knuddelmuddel" data-numberify>SCSS an zentraler Stelle statt Knuddelmuddel<a class="anchor ms-1" href="#scss-an-zentraler-stelle-statt-knuddelmuddel"></a></h2>
<p>Früher gab es eine CSS-Datei für den Blog, eine fürs Wiki und ganz früher noch je eine Datei für weitere meiner Webseiten. Das alles zu warten, war immer sehr umständlich. Vrifox hat das ganze CSS-Zeugs nach SCSS portiert und die Handhabung damit deutlich vereinfacht, da man in SCSS auch z. B. Variablen nutzen oder andere Dateien importieren kann. Am Ende generiert man aus den SCSS-Dateien je eine CSS-Datei fürs Wiki, eine für den Blog, eine für die Dateiablage und eine für die Hauptseite.</p>
<p>Wer daran interessiert ist, wie alles funktioniert, der darf sich gerne den Quelltext ansehen unter <a  class='urlextern'  href="https://code.cozy.town/vri/natenom-websites">code.cozy.town/vri/natenom-websites</a>.</p>

<h2 id="mein-logo-im-git" data-numberify>Mein Logo im Git<a class="anchor ms-1" href="#mein-logo-im-git"></a></h2>
<p>Mein Logo und alle Varianten davon gibt es jetzt in einem Git-Repo, <a  class='urlextern'  href="https://code.cozy.town/vri/natenom-logo">siehe hier</a>.</p>

<h2 id="navigation-im-wiki" data-numberify>Navigation im Wiki<a class="anchor ms-1" href="#navigation-im-wiki"></a></h2>
<p>Erst vor wenigen Tagen hat sie wieder etwas sehr schönes umgesetzt. Sie hat die Hervorhebung der aktuellen Seite im Wiki, die Hover-Effekte und auch die Anzeige von überlangen Überschriften deutlich verschönert.</p>
<p>So sieht die Navigation im Wiki jetzt aus:<figure class="wp-block-video alignwide"><video controls muted src="/wp-content/uploads/2020/10/2020-10-navigationsbaum-wiki.natenom.de_-1.mp4"></video><figcaption>(</p>
<p><a  href="/wp-content/uploads/2020/10/2020-10-navigationsbaum-wiki.natenom.de_-1.mp4">Direktlink</a>)</figcaption></figure></p>

<h2 id="es-gibt-wieder-eine-hauptseite" data-numberify>Es gibt wieder eine Hauptseite<a class="anchor ms-1" href="#es-gibt-wieder-eine-hauptseite"></a></h2>
<p>Es gibt wieder eine Hauptseite, <a  class='urlextern'  href="https://www.natenom.com/">www.natenom.com</a>. Dort ist die Seite „Über Natenom“ gelandet, die vorher im Blog war. Das passt meiner Ansicht nach besser dorthin, da das sozusagen meine „Einstiegsseite“ ist, wenn man z. B. natenom.de oder natenom.com im Browser eingibt.</p>

<h2 id="globaltopbar-für-dateiablage-und-startseite" data-numberify>GlobalTopBar für Dateiablage und Startseite<a class="anchor ms-1" href="#globaltopbar-für-dateiablage-und-startseite"></a></h2>
<p>Vrifox hat die „<a  href="https://wiki.natenom.de/docs/sammelsurium/globaltopbar">GlobalTopBar</a>“ jetzt auch auf f.natenom.de und auf <a  class='urlextern'  href="https://www.natenom.com">www.natenom.com</a> eingebunden. Die „GlobalTopBar“ ist die obere Leiste, die man auf allen meinen Webeiten sehen und über die man zu allen meinen Webseiten navigieren kann.</p>

<h2 id="datenschutz-und-impressum" data-numberify>Datenschutz und Impressum<a class="anchor ms-1" href="#datenschutz-und-impressum"></a></h2>
<p>Über die GlobalTopBar erreicht man jetzt auf allen Webseiten die dazugehörigen Datenschutzbestimmungen und das globalen Impressum. Bei der Dateiablage war dies zuvor nur im Hauptverzeichnis möglich und die Hauptseite (<a  class='urlextern'  href="https://www.natenom.com/">www.natenom.com</a>) hatte ich zuvor gar nicht genutzt.</p>

<h2 id="dunkles-theme-für-dateiablage-und-hauptseite" data-numberify>Dunkles Theme für Dateiablage und Hauptseite<a class="anchor ms-1" href="#dunkles-theme-für-dateiablage-und-hauptseite"></a></h2>
<p>Die Dateiablage unter f.natenom.de und die Hauptseite unter <a  class='urlextern'  href="https://www.natenom.com">www.natenom.com</a> haben zusätzlich ein Dark-Theme bekommen.<figure class="wp-block-image alignwide size-full"></p>
<p><a  href="/wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1.png"><img loading="lazy" src="/wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1.png" alt="" class="wp-image-50476" srcset="/wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1.png 976w, /wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1-300x178.png 300w, /wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1-600x357.png 600w, /wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1-150x89.png 150w, /wp-content/uploads/2020/10/2020-10-files.natenom.com-dark-theme-1-768x456.png 768w" sizes="(max-width: 976px) 100vw, 976px" /></a></figure></p>
<p>Mal wieder bin ich sehr dankbar, dass Vrifox mir dabei hilft :)</p>
<p>Falls jemandem ein Fehler auffällt, kann er sich gerne melden, das ganze Webdings ist ein fortwährendes Projekt, an dem Vrifox immer wieder arbeitet.</p>]]></content:encoded></item><item><title>Wir haben meine sogenannte „Startseite“ – www.natenom.com – etwas überarbeitet</title><link>https://natenom.de/2018/11/wir-haben-meine-sogenannte-startseite-www-natenom-com-etwas-ueberarbeitet/</link><pubDate>Thu, 08 Nov 2018 17:27:32 +0000</pubDate><guid>https://natenom.de/2018/11/wir-haben-meine-sogenannte-startseite-www-natenom-com-etwas-ueberarbeitet/</guid><description>Vorgestern haben wir meine sogenannte „Startseite“ auf www.natenom.com überarbeitet.
Wir konnten die Inhalte mehrerer einzelner Seiten in weniger Seiten zusammenführen und so eine bessere Übersicht schaffen.
Vor allem wurde jedoch am Aussehen auf der Spenden-Seite einiges geändert. Vrifox hat das mittels CSS verschönert. Hier sieht man jetzt auch direkt die aktuelle und komprimiertere Spendenübersicht und die Anzeige ist schön animiert. Und das nur mit CSS.
So sah es vorher aus:</description><content:encoded><![CDATA[<p>Vorgestern haben wir meine sogenannte „Startseite“ auf <a  class='urlextern'  href="https://www.natenom.com">www.natenom.com</a> überarbeitet.</p>
<p>Wir konnten die Inhalte mehrerer einzelner Seiten in weniger Seiten zusammenführen und so eine bessere Übersicht schaffen.</p>
<p>Vor allem wurde jedoch am Aussehen auf der Spenden-Seite einiges geändert. Vrifox hat das mittels CSS verschönert. Hier sieht man jetzt auch direkt die aktuelle und komprimiertere Spendenübersicht und die Anzeige ist schön animiert. Und das nur mit CSS.</p>
<p>So sah es vorher aus:<figure class="wp-block-image"></p>
<p><a  href="/wp-content/uploads/2018/11/spendenseite_natenom_vorher_2018.png"><img loading="lazy" src="/wp-content/uploads/2018/11/spendenseite_natenom_vorher_2018.png" alt="" class="wp-image-43191" srcset="/wp-content/uploads/2018/11/spendenseite_natenom_vorher_2018.png 392w, /wp-content/uploads/2018/11/spendenseite_natenom_vorher_2018-150x112.png 150w, /wp-content/uploads/2018/11/spendenseite_natenom_vorher_2018-300x223.png 300w" sizes="(max-width: 392px) 100vw, 392px" /></a></figure></p>
<p>Und so sieht es jetzt aus:<figure class="wp-block-image"></p>
<p><a  href="/wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018.png"><img loading="lazy" src="/wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018-600x243.png" alt="" class="wp-image-43192" srcset="/wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018-600x243.png 600w, /wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018-150x61.png 150w, /wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018-300x121.png 300w, /wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018-768x311.png 768w, /wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018-435x176.png 435w, /wp-content/uploads/2018/11/spendenseite_natenom_nachher_2018.png 786w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure></p>
<p>Als nächstes werden wir, bzw. Vrifox, ein dunkles Thema für meine Startseite umsetzen.</p>
]]></content:encoded></item><item><title>Noch viele weitere Verbesserungen in meinem Blog</title><link>https://natenom.de/2018/07/noch-viele-weitere-verbesserungen-in-meinem-blog/</link><pubDate>Mon, 02 Jul 2018 16:15:55 +0000</pubDate><guid>https://natenom.de/2018/07/noch-viele-weitere-verbesserungen-in-meinem-blog/</guid><description>&lt;p>Vrifox und ich (zumindest war ich anwesend) haben gestern mehrere Stunden damit verbracht, den Blog etwas mehr an seine (und meine) Bedürfnisse anzupassen. Wir sind mit dem Ergebnis ziemlich zufrieden.&lt;/p></description><content:encoded><![CDATA[<p>Vrifox und ich (zumindest war ich anwesend) haben gestern mehrere Stunden damit verbracht, den Blog etwas mehr an seine (und meine) Bedürfnisse anzupassen. Wir sind mit dem Ergebnis ziemlich zufrieden.</p>
<p>Was wir alles geändert haben:</p>
<ul>
<li>Die globale Topbar, die auf allen meinen Webseiten zu sehen ist, ist nun dunkler, hat einen Hover-Effekt und sieht insgesamt schöner aus.</li>
<li>Die Suchleiste wird jetzt an der richtigen Stelle angezeigt und nicht mehr mitten auf der Webseite.</li>
<li>Der Blog ist nun ziemlich dunkel gehalten und nur die einzelnen Artikel sind weiß hinterlegt. Somit lässt sich noch besser erkennen, wo ein Artikel anfängt und aufhört.</li>
<li>Das Aussehen der Tags unterhalb der Artikel wurde dezenter gemacht und die Tags sind nicht mehr durchgehend groß geschrieben.</li>
<li>Die Artikelbilder werden nicht mehr teilweise von den Überschriften verdeckt sondern sind komplett sichtbar.</li>
<li>Die Artikelbilder sind an den oberen Ecken abgerundet.</li>
<li>Artikel selbst sind am unteren Rand abgerundet.</li>
<li>Und noch einiges mehr, das ich vergessen habe.</li>
</ul>
<p>Zum Vergleich, vorher und nachher:</p>
<div id='gallery-157' class='gallery galleryid-42365 gallery-columns-1 gallery-size-large'>
  <figure class='gallery-item'> 
  <div class='gallery-icon landscape'>
    <a href='/wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen.png'><img src="/wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen-600x367.png" class="attachment-large size-large" alt="" loading="lazy" srcset="/wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen-600x367.png 600w, /wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen-150x92.png 150w, /wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen-300x184.png 300w, /wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen-768x470.png 768w, /wp-content/uploads/2018/07/2018-07-01_blog.natenom.com_aenderungen.png 1573w" sizes="(max-width: 600px) 100vw, 600px" style="width:100%;height:61.22%;max-width:1573px;" /></a>
  </div></figure><figure class='gallery-item'> 
  <div class='gallery-icon landscape'>
    <a href='/wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02.jpg'><img src="/wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02-600x509.jpg" class="attachment-large size-large" alt="" loading="lazy" srcset="/wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02-600x509.jpg 600w, /wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02-150x127.jpg 150w, /wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02-300x254.jpg 300w, /wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02-768x651.jpg 768w, /wp-content/uploads/2018/07/screenshot_blog.natenom.com_2018-07-02.jpg 1904w" sizes="(max-width: 600px) 100vw, 600px" style="width:100%;height:84.77%;max-width:1904px;" /></a>
  </div></figure>
</div>]]></content:encoded></item><item><title>New release for fgallery (1.8) – Creator for static image galleries with HTML, CSS and Javascript</title><link>https://natenom.de/2016/01/new-release-for-fgallery-1-8-creator-for-static-image-galleries-with-html-css-and-javascript/</link><pubDate>Thu, 14 Jan 2016 17:20:46 +0000</pubDate><guid>https://natenom.de/2016/01/new-release-for-fgallery-1-8-creator-for-static-image-galleries-with-html-css-and-javascript/</guid><description><![CDATA[<p>With fgallery you can create an image gallery offline on your computer, upload it to some cheap web storage and forget about it, <a  href="https://f.natenom.de/public/minecraft/screenshots/kaguBe-Survival-Server/Sonstiges/">for example this one</a>.</p>
<p>It is written in Perl.</p>]]></description><content:encoded><![CDATA[<p>With fgallery you can create an image gallery offline on your computer, upload it to some cheap web storage and forget about it, <a  href="https://f.natenom.de/public/minecraft/screenshots/kaguBe-Survival-Server/Sonstiges/">for example this one</a>.</p>
<p>It is written in Perl.</p>
<p>New in this release:</p>
<ul>
<li>Handle bogus whitespace in EXIF timestamps.</li>
<li>Ignore hidden/invalid files instead of failing.</li>
<li>Support „tificc2“ as an alias to „tificc“ (for Fedora).</li>
<li>Avoid calling „tificc“ for images already in sRGB.</li>
<li>Load thumbnails on-demand for faster loading of large galleries.</li>
<li><strong>Extract and visualize image captions</strong> (<a  class='urlextern'  href="http://www.thregr.org/~wavexx/software/fgallery/index.html#image-captioning">see here how it works</a>).</li>
<li>Added „utils/fcaption“ to edit image captions.</li>
</ul>
<p>I am looking forward for the ability to display some meta information like aperture, exposure, ISO and more (see <a  class='urlextern'  href="https://github.com/wavexx/fgallery/issues/17">this issue</a>) and would then like to use this for my <a  href="/categories/fotografie/">photographs</a>.</p>
<p>A demo gallery with the latest features can be found at <a  class='urlextern'  href="http://www.thregr.org/~wavexx/software/fgallery/demo/#10">www.thregr.org/</a>.</p>
<p>Website of the project: <a  class='urlextern'  href="http://www.thregr.org/~wavexx/software/fgallery/">www.thregr.org/~wavexx/software/fgallery/</a>.</p>]]></content:encoded></item><item><title>Blog etwas umgestaltet – weniger ist mehr…</title><link>https://natenom.de/2014/12/blog-etwas-umgestaltet-weniger-ist-mehr/</link><pubDate>Tue, 16 Dec 2014 07:16:44 +0000</pubDate><guid>https://natenom.de/2014/12/blog-etwas-umgestaltet-weniger-ist-mehr/</guid><description><![CDATA[<h2 id="spalten-und-footer" data-numberify>Spalten und Footer<a class="anchor ms-1" href="#spalten-und-footer"></a></h2>
<p>Die dritte Spalte rechts wurde entfernt, dadurch ist die Inhaltsspalte deutlich breiter und auch so eingestellt, dass Artikel deren volle Breite nutzen können.</p>]]></description><content:encoded><![CDATA[<h2 id="spalten-und-footer" data-numberify>Spalten und Footer<a class="anchor ms-1" href="#spalten-und-footer"></a></h2>
<p>Die dritte Spalte rechts wurde entfernt, dadurch ist die Inhaltsspalte deutlich breiter und auch so eingestellt, dass Artikel deren volle Breite nutzen können.</p>
<p>Die Änderungen am CSS sind (<a  class='urlextern'  href="https://wordpress.org/support/topic/twenty-fourteen-full-width-pagetext-is-not-using-full-width-of-template"title="WordPress › Support » twenty Fourteen Full width page...text is not using full width of template">Quelle</a>):</p>
<blockquote>
<p>.site-content .entry-header,<br>
.site-content .entry-content,<br>
.site-content .entry-summary,<br>
.site-content .entry-meta,<br>
.page-content,<br>
.post-navigation,<br>
.image-navigation,<br>
.comments-area {<br>
max-width: 80%;<br>
}</p>
</blockquote>
<p>Die Inspiration dafür kam von <a  class='urlextern'  href="http://kate-editor.org/"title="Kate | Get an Edge in Editing | The Kate Editor Homepage">dieser Seite</a>.</p>
<p>In der linken Spalte gibt es nur noch die Widgets für die Kategorien und die Schlagwörter.</p>
<p>Viele Verlinkungen aus den Seitenleisten sind nun oben im Menü zu finden – welches immer zu sehen ist. Die entfernten Widgets sind im Footer zu finden.</p>
<p>Somit kann man sich (so die Überlegung) besser auf den Inhalt konzentrieren und muss nicht immer wieder an denselben Informationen vorbei.</p>
<p>Außerdem ist das Menü auf kleinen Displays viel besser zu erreichen als die Widgets.</p>

<h2 id="hintergrund-und-schatten" data-numberify>Hintergrund und Schatten<a class="anchor ms-1" href="#hintergrund-und-schatten"></a></h2>
<p>Der Hintergrund ist nun etwas winterlicher, auch wenn es bisher noch keinen Schnee bei mir zuhause gab. Das Foto stammt von Januar 2013 und das Original gibt es <a  href="https://f.natenom.de/public/photo/misc/snow.jpg"title="https://f.natenom.de/public/photo/misc/snow.jpg">hier</a>.</p>
<p>Außerdem gibt es jetzt um die Seite herum einen von <a  href="/tags/kde"title="KDE (SC) hier im Blog">KDE SC</a> abgekupferten, bläulichen Schatten.</p>
<p>Das dazu gehörige CSS ist:</p>
<blockquote>
<p>div#page.hfeed.site {<br>
box-shadow: 0px 0px 15px 5px #9AD3F2;<br>
}</p>
</blockquote>
<p>Das obere Menü hat keinen Schatten; soll dieser auch noch hinzugefügt werden, so benutzt man noch den folgenden CSS-Code:</p>
<blockquote>
<p>div.header-main {<br>
box-shadow: 0px 0px 2px 2px #9AD3F2;<br>
}</p>
</blockquote>

<h2 id="o" data-numberify>\o/<a class="anchor ms-1" href="#o"></a></h2>
<p>Vielleicht wird der ganze Footer in Zukunft auch noch entfernt werden, mal sehen.</p>
<p>Passt :)</p>
<p>Hier noch ein Screenshot, falls sich das Design in Zukunft wieder ändern wird:<br>
<a  href="/wp-content/uploads/2014/12/2014-12-16_blog.natenom.com_style.jpg"><img loading="lazy" class="alignnone size-large wp-image-30850" src="/wp-content/uploads/2014/12/2014-12-16_blog.natenom.com_style-600x372.jpg" alt="2014-12-16_blog.natenom.com_style" srcset="/wp-content/uploads/2014/12/2014-12-16_blog.natenom.com_style-600x372.jpg 600w, /wp-content/uploads/2014/12/2014-12-16_blog.natenom.com_style-150x93.jpg 150w, /wp-content/uploads/2014/12/2014-12-16_blog.natenom.com_style-300x186.jpg 300w" sizes="(max-width: 474px) 100vw, 474px" /></a></p>]]></content:encoded></item><item><title>Neuer Versuch mit einem leicht angepassten Twentyfourteen hier im Blog</title><link>https://natenom.de/2014/08/neuer-versuch-mit-einem-leicht-angepassten-twentyfourteen-hier-im-blog/</link><pubDate>Fri, 01 Aug 2014 07:44:29 +0000</pubDate><guid>https://natenom.de/2014/08/neuer-versuch-mit-einem-leicht-angepassten-twentyfourteen-hier-im-blog/</guid><description><![CDATA[<p>Hatte schon vor längerem das WordPress-Thema <a  href="/2013/12/twenty-fourteen-neues-themadesign-fuer-den-blog/"title="Twenty-Fourteen – Neues Thema/Design für den Blog">Twentyfourteen hier im Blog</a> verwendet, dieses jedoch aus mehreren Gründen nach kurzer Zeit wieder entfernt.</p>

<h2 id="mal-wieder8230" data-numberify>Mal wieder&#8230;<a class="anchor ms-1" href="#mal-wieder8230"></a></h2>
<p>Habe jedoch heute morgen das Thema mal wieder ausprobiert und wieder einmal begeistert festgestellt, wie schön es z. B. auf mobilen Geräten aussieht:</p>]]></description><content:encoded><![CDATA[<p>Hatte schon vor längerem das WordPress-Thema <a  href="/2013/12/twenty-fourteen-neues-themadesign-fuer-den-blog/"title="Twenty-Fourteen – Neues Thema/Design für den Blog">Twentyfourteen hier im Blog</a> verwendet, dieses jedoch aus mehreren Gründen nach kurzer Zeit wieder entfernt.</p>

<h2 id="mal-wieder8230" data-numberify>Mal wieder&#8230;<a class="anchor ms-1" href="#mal-wieder8230"></a></h2>
<p>Habe jedoch heute morgen das Thema mal wieder ausprobiert und wieder einmal begeistert festgestellt, wie schön es z. B. auf mobilen Geräten aussieht:</p>
<p><a  href="/wp-content/uploads/2014/07/twenty_fourteen_android_1.png"><img loading="lazy" class="alignnone size-medium wp-image-29076" src="/wp-content/uploads/2014/07/twenty_fourteen_android_1-168x300.png" alt="twenty_fourteen_android_1" srcset="/wp-content/uploads/2014/07/twenty_fourteen_android_1-168x300.png 168w, /wp-content/uploads/2014/07/twenty_fourteen_android_1-84x150.png 84w, /wp-content/uploads/2014/07/twenty_fourteen_android_1-576x1024.png 576w, /wp-content/uploads/2014/07/twenty_fourteen_android_1.png 720w" sizes="(max-width: 168px) 100vw, 168px" /></a> <a  href="/wp-content/uploads/2014/07/twenty_fourteen_android_2.png"><img loading="lazy" class="alignnone size-medium wp-image-29077" src="/wp-content/uploads/2014/07/twenty_fourteen_android_2-168x300.png" alt="twenty_fourteen_android_2" srcset="/wp-content/uploads/2014/07/twenty_fourteen_android_2-168x300.png 168w, /wp-content/uploads/2014/07/twenty_fourteen_android_2-84x150.png 84w, /wp-content/uploads/2014/07/twenty_fourteen_android_2-576x1024.png 576w, /wp-content/uploads/2014/07/twenty_fourteen_android_2.png 720w" sizes="(max-width: 168px) 100vw, 168px" /></a></p>
<p>Und auch sonst hat es ein paar Dinge, die mir sehr gut gefallen. Was mir jedoch gar nicht gefält sind das verwendete tiefe Schwarz und die Linksausrichtung des Themas.</p>
<p>Mit wenig Aufwand lässt sich jedoch beides ändern :)</p>

<h2 id="ausrichtung" data-numberify>Ausrichtung<a class="anchor ms-1" href="#ausrichtung"></a></h2>
<p>Damit der Blog zentriert dargestellt wird, muss man nur das CSS geringfügig ändern. Damit dieses Änderung nicht bei jedem Update überschrieben wird, erstellt man ein Child-Theme. Wie das funktioniert, <a  class='urlextern'  href="http://codex.wordpress.org/Child_Themes"title="Child Themes « WordPress Codex">steht hier</a>.</p>
<p>Dann fügt man im Child-Theme die folgende Zeile in die Datei  style.css ein (<a  class='urlextern'  href="http://wordpress.org/support/topic/how-to-center-the-whole-site"title="WordPress › Support » How to center the whole site">die von hier stammt</a>):</p>
<blockquote>
<p>.site {<br>
margin:0 auto;<br>
}</p>
</blockquote>

<h2 id="farben-anpassen" data-numberify>Farben anpassen<a class="anchor ms-1" href="#farben-anpassen"></a></h2>
<p>Für die Änderungen der Farben wurde das WordPress-Plugin „Fourteen Colors“ verwendet, <a  class='urlextern'  href="http://wordpress.org/plugins/fourteen-colors/"title="WordPress › Fourteen Colors « WordPress Plugins">siehe hier</a>.</p>
<p>Die Werte sind:</p>
<ul>
<li>Accent Color: #286bc1</li>
<li>Contrast Color: #eaeaea</li>
<li>Hintergrundfarbe: #eaeaea</li>
</ul>
<p>Wer noch mehr Einflussmöglichkeiten benötigt, sollte sich das Plugin „<a  class='urlextern'  href="http://wordpress.org/plugins/styles-twentyfourteen/"title="WordPress › Styles: TwentyFourteen « WordPress Plugins">Styles: Twentyfourteen</a>“ ansehen.</p>

<h2 id="alternative" data-numberify>Alternative<a class="anchor ms-1" href="#alternative"></a></h2>
<p>Man kann natürlich auch die entsprechenden Stellen für die Farben und die Ausrichtigung in die CSS-Datei des Child-Themes einfügen oder die komplette Datei übernehmen und benötigt kein zusätzliches Plugin. Dann muss man aber bei jedem Update selbst überprüfen, ob sich etwas an der Datei geändert hat.</p>

<h2 id="unterschiede-zwischen-twentyfourteen-dem-child-theme-und-vorher" data-numberify>Unterschiede zwischen Twentyfourteen, dem Child-Theme und vorher<a class="anchor ms-1" href="#unterschiede-zwischen-twentyfourteen-dem-child-theme-und-vorher"></a></h2>
<p>So sah der Blog gestern noch aus mit dem <a  href="/2012/06/neues-themadesign-im-blog/"title="Neues Thema/Design im Blog">Yoko-Thema</a>:</p>
<p><a  href="/wp-content/uploads/2014/08/blog.natenom.com_yoko_child.png"><img loading="lazy" class="alignnone size-medium wp-image-29093" src="/wp-content/uploads/2014/08/blog.natenom.com_yoko_child-300x196.png" alt="blog.natenom.com_yoko_child" srcset="/wp-content/uploads/2014/08/blog.natenom.com_yoko_child-300x196.png 300w, /wp-content/uploads/2014/08/blog.natenom.com_yoko_child-150x98.png 150w, /wp-content/uploads/2014/08/blog.natenom.com_yoko_child-600x392.png 600w, /wp-content/uploads/2014/08/blog.natenom.com_yoko_child.png 1476w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Hier mit dem Original von Twentyfourteen:</p>
<p><a  href="/wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen.png"><img loading="lazy" class="alignnone wp-image-29088 size-medium" src="/wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-300x202.png" alt="blog.natenom.com_twentyfourteen" srcset="/wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-300x202.png 300w, /wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-150x101.png 150w, /wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-600x404.png 600w, /wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen.png 1450w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Und hier mit den Anpassungen:</p>
<p><a  href="/wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-child.png"><img loading="lazy" class="alignnone wp-image-29089 size-medium" src="/wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-child-300x194.png" alt="blog.natenom.com_twentyfourteen-child" srcset="/wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-child-300x194.png 300w, /wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-child-150x97.png 150w, /wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-child-600x388.png 600w, /wp-content/uploads/2014/08/blog.natenom.com_twentyfourteen-child.png 1450w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h2 id="hinweise" data-numberify>Hinweise<a class="anchor ms-1" href="#hinweise"></a></h2>
<p>Da Twentyfourteen von sich aus eine Seitennavigation am unteren Rand anzeigt, konnte das Plugin <a  class='urlextern'  href="http://wordpress.org/plugins/wp-pagenavi/screenshots/"title="WordPress › WP-PageNavi « WordPress Plugins">WP-Pagenavi</a> entfernt werden.</p>
<p>Um die Google-Fonts zu deaktivieren, die das Thema einbinden möchte, gibt es das Plugin „<a  class='urlextern'  href="http://wordpress.org/plugins/disable-google-fonts/"title="WordPress › Disable Google Fonts « WordPress Plugins">Disable Googlefonts</a>„.</p>

<h2 id="o" data-numberify>\o/<a class="anchor ms-1" href="#o"></a></h2>
<p>Passt :)</p>]]></content:encoded></item><item><title>Überschriftennummerierung in DokuWiki (Monobook)</title><link>https://natenom.de/2012/06/uberschriftennummerierung-in-dokuwiki-monobook/</link><pubDate>Sat, 02 Jun 2012 07:41:26 +0000</pubDate><guid>https://natenom.de/2012/06/uberschriftennummerierung-in-dokuwiki-monobook/</guid><description>&lt;p>Schon seit Ewigkeiten wollte ich Überschriftennummerierung für das &lt;a title="http://wiki.natenom.de" href="http://wiki.natenom.de" target="_self">Wiki&lt;/a> haben, denn die Überschriften der verschiedenen Gewichtungen (h1 bis h6) werden in Monobook nur leicht unterschiedlich formatiert.&lt;/p></description><content:encoded><![CDATA[<p>Schon seit Ewigkeiten wollte ich Überschriftennummerierung für das <a title="http://wiki.natenom.de" href="http://wiki.natenom.de" target="_self">Wiki</a> haben, denn die Überschriften der verschiedenen Gewichtungen (h1 bis h6) werden in Monobook nur leicht unterschiedlich formatiert.</p>
<p>Gerade bei vielen Abschnitten eines Dokuments fällt es schwer, zu erkennen, ob es sich nun um einen Unterpunkt (z. B. 1.1) oder einen neuen Abschnitt (z. B. 2) handelt. Die Struktur des Dokuments ist nicht wirklich ersichtlich.</p>
<p>Um nummerierte Überschriften zu erhalten, gibt es zwei Möglichkeiten:</p>
<ul>
<li>Man verwendet das veraltete Plugin <a title="https://www.dokuwiki.org/plugin:numberedheadings" href="https://www.dokuwiki.org/plugin:numberedheadings" target="_self">NumberedHeadings</a> und muss jede Überschrift manuell anpassen. Das ist zu aufwändig und fällt weg.</li>
<li>Man verwendet CSS und überlässt dem Browser die Arbeit; ein entsprechendes <a title="https://www.dokuwiki.org/tips:numbered_headings" href="https://www.dokuwiki.org/tips:numbered_headings" target="_self">CSS-Konstruk</a> existiert bereits.</li>
</ul>
<p>Das Problem mit dem CSS-Konstrukt ist jedoch, dass es aus dem Jahr 2008 stammt und auf das damalige Standard-Template ausgelegt ist. Mit Monobook funktioniert es so nicht. In der Beschreibung steht zwar, man muss bestimmte Dinge ersetzen, beim ersten Versuch vor einiger Zeit bin ich jedoch aufgrund mangelnder Kenntnisse gescheitert und habe den Ansatz wieder vergessen.</p>
<p>Bei einem neuen Versuch heute habe ich es aber doch geschafft und nun sind die Überschriften im Wiki nummeriert, was die Übersicht erhöht :)<br>
Habe den angepassten CSS-Code im Wiki hinterlegt unter <a title="https://wikiarchiv.natenom.de/ueber/nummerierte_ueberschriften" href="https://wikiarchiv.natenom.de/ueber/nummerierte_ueberschriften" target="_self"><a  href="https://wikiarchiv.natenom.de/ueber/nummerierte_ueberschriften">https://wikiarchiv.natenom.de/ueber/nummerierte_ueberschriften</a></a>.</p>
<p>Hier der Eindruck ohne (links) und mit Nummerierung (rechts):</p>
<figure id="attachment_14192" aria-describedby="caption-attachment-14192" style="width: 300px" class="wp-caption alignnone">[<img loading="lazy" class="size-medium wp-image-14192" title="DokuWiki - Unterschiede mit Nummerierung und ohne" alt="DokuWiki - Unterschiede mit Nummerierung und ohne" src="/wp-content/uploads/2012/06/dokuwiki_unterschiede_nummerierung_mit_ohne-300x255.png" srcset="/wp-content/uploads/2012/06/dokuwiki_unterschiede_nummerierung_mit_ohne-300x255.png 300w, /wp-content/uploads/2012/06/dokuwiki_unterschiede_nummerierung_mit_ohne-150x127.png 150w, /wp-content/uploads/2012/06/dokuwiki_unterschiede_nummerierung_mit_ohne.png 1022w" sizes="(max-width: 300px) 100vw, 300px" />][1]<figcaption id="caption-attachment-14192" class="wp-caption-text">DokuWiki &#8211; Unterschiede mit Nummerierung und ohne</figcaption></figure>
<p>Werde das zur Sicherheit auch noch durch einen Spezi prüfen lassen, falls ich in Unkenntnis etwas verpfuscht haben sollte.</p>]]></content:encoded></item><item><title>Verbesserungen im Wiki</title><link>https://natenom.de/2012/04/verbesserungen-im-wiki/</link><pubDate>Fri, 27 Apr 2012 18:55:01 +0000</pubDate><guid>https://natenom.de/2012/04/verbesserungen-im-wiki/</guid><description>&lt;p>Es gibt ein paar Verbesserungen in der Navigation des &lt;a title="http://wiki.natenom.de" href="http://wiki.natenom.de" target="_self">Wikis&lt;/a>:&lt;/p></description><content:encoded><![CDATA[<p>Es gibt ein paar Verbesserungen in der Navigation des <a title="http://wiki.natenom.de" href="http://wiki.natenom.de" target="_self">Wikis</a>:</p>
<ul>
<li>Die Navigation scrollt nun nicht mehr nach rechts mit, wenn einzelne Überschriften breiter sind als die Spalte.
<ul>
<li>
<p>Trotzdem werden nun auch zu lange Seitennamen in der Navigation komplett angezeigt, wenn man mit der Maus darüber geht.<br>
Vielen Dank an <a title="http://deltachaos.de" href="http://deltachaos.de" target="_self">Deltachaos</a>, der sich dafür die Zeit genommen und das technisch umgesetzt hat. Das JavaScript und das CSS für die Umsetzung gibt es im <a title="https://wiki.natenom.de/docs/sammelsurium/dokuwiki/lange_seitennamen_navigation/" href="https://wiki.natenom.de/docs/sammelsurium/dokuwiki/lange_seitennamen_navigation/" target="_self">Wiki</a>.<br>
So sieht das dann aus (ohne die Änderung wäre nach „…. zwischen Mumble-S“ alles abgeschnitten):</p> <div class="mceTemp"></p>
  <p>
    <figure id="attachment_13427" aria-describedby="caption-attachment-13427" style="width: 575px" class="wp-caption alignnone"><img loading="lazy" class="size-full wp-image-13427 " title="Lange Seitennamen anzeigen" src="/wp-content/uploads/2012/04/lange_seitennamen_anzeigen.png" alt="Lange Seitennamen anzeigen" srcset="/wp-content/uploads/2012/04/lange_seitennamen_anzeigen.png 575w, /wp-content/uploads/2012/04/lange_seitennamen_anzeigen-150x35.png 150w, /wp-content/uploads/2012/04/lange_seitennamen_anzeigen-300x70.png 300w" sizes="(max-width: 575px) 100vw, 575px" /><figcaption id="caption-attachment-13427" class="wp-caption-text">Lange Seitennamen anzeigen</figcaption></figure>
  </p>
</div>
</li>
<li>
<p>Man sieht keine Text-Vorschau der einzelnen Seiten mehr, was eher gestört hat als dass es hilfreich war.</p>
</li>
<li>
<p>Durch eine Änderung an der Konfiguration lädt die Navigation nun etwas schneller.</p>
</li>
<li>
<p>Die Seitennamen und Namensräume sind nun alphabetisch sortiert, was die Übersichtlichkeit sehr verbessert:</p>
<figure id="attachment_13402" aria-describedby="caption-attachment-13402" style="width: 400px" class="wp-caption alignnone"><img loading="lazy" class="size-full wp-image-13402" title="Navigation ist nun sortiert" src="/wp-content/uploads/2012/04/navigation_sortiert.png" alt="Navigation ist nun sortiert" srcset="/wp-content/uploads/2012/04/navigation_sortiert.png 400w, /wp-content/uploads/2012/04/navigation_sortiert-81x150.png 81w, /wp-content/uploads/2012/04/navigation_sortiert-162x300.png 162w" sizes="(max-width: 400px) 100vw, 400px" /><figcaption id="caption-attachment-13402" class="wp-caption-text">Navigation ist nun sortiert</figcaption></figure></li> </ul> 
<p>Hier gehts zum Wiki: <a  href="http://wiki.natenom.de"title="http://wiki.natenom.de">http://wiki.natenom.de</a>.</p>
</li>
</ul>
</li>
</ul>]]></content:encoded></item></channel></rss>