<?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>kate on Natenoms Blog</title><link>https://natenom.de/tags/kate/</link><description>Recent content in kate on Natenoms Blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright/><lastBuildDate>Tue, 04 Apr 2023 06:49:48 +0200</lastBuildDate><atom:link href="https://natenom.de/tags/kate/index.xml" rel="self" type="application/rss+xml"/><item><title>Die riesigen Icons in Kate wieder kleiner machen</title><link>https://natenom.de/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/</link><pubDate>Tue, 04 Apr 2023 06:49:48 +0200</pubDate><guid>https://natenom.de/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/</guid><description>&lt;p>Irgendwann einmal nach einem Update von KDE bzw. Kate sah Kate wegen der viel zu großen Icons nicht mehr schön aus. Ich habe mich aber nicht weiter darum gekümmert.&lt;/p></description><content:encoded><![CDATA[<p>Irgendwann einmal nach einem Update von KDE bzw. Kate sah Kate wegen der viel zu großen Icons nicht mehr schön aus. Ich habe mich aber nicht weiter darum gekümmert.</p>
<p>Da ich heute aus anderen Gründen viel mit Kate herumprobiert hatte, suchte ich nach einer Lösung dafür und habe sie gefunden, siehe <a  class='urlextern'  href="https://www.reddit.com/r/kde/comments/ybduvy/kate_how_to_resize_left_and_right_sidebar_buttons/">hier</a>.</p>
<p>Vorher sah es so aus:</p>
 <figure class="image-caption"><a href="2023-04-04-kate-mit-grossen-icons.webp"><picture><source type="webp" srcset="/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/2023-04-04-kate-mit-grossen-icons.webp" />
			         <img alt="" src="/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/2023-04-04-kate-mit-grossen-icons.webp" title="" width="574" height="238" loading="lazy" /></picture></a><figcaption>Viel zu große Icons nach einem Update.</figcaption></figure>
<p>Nachdem ich in der Datei <code>~/.config/katerc</code> in der Zeile <code>Icon size for left and right sidebar buttons=32</code> den Wert auf 16 geändert hatte, sah es dann endlich wieder richtig aus:</p>
 <figure class="image-caption"><a href="2023-04-04-kate-mit-kleinen-icons-cover.webp"><picture><source type="webp" srcset="/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/2023-04-04-kate-mit-kleinen-icons-cover.webp" />
			         <img alt="" src="/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/2023-04-04-kate-mit-kleinen-icons-cover.webp" title="" width="574" height="238" loading="lazy" /></picture></a><figcaption>Die Icons sind wieder richtig.</figcaption></figure>
<p>Eine Möglichkeit, das in den Einstellungen zu ändern, hatte ich zuvor nicht gefunden.</p>]]></content:encoded><enclosure url="https://natenom.de/2023/04/die-riesigen-icons-in-kate-wieder-kleiner-machen/2023-04-04-kate-mit-kleinen-icons-cover.webp" length="6846" type="image/webp"/></item><item><title>Weiterleitungen für den neuen Foto-Blog</title><link>https://natenom.de/2023/01/weiterleitungen-fuer-neuen-foto-blog/</link><pubDate>Thu, 12 Jan 2023 20:59:37 +0100</pubDate><guid>https://natenom.de/2023/01/weiterleitungen-fuer-neuen-foto-blog/</guid><description><![CDATA[<p>Habe heute für die über 300 Blogbeiträge, die ich nach <del>fotos.natenom.com</del> verschoben hatte, Weiterleitungen eingerichtet.</p>
<p>Als Basis dafür habe ich die Sitemap des Foto-Blogs verwendet.</p>
<p>Zu meinem Erstaunen habe ich dieses Mal nicht irgend ein Gefrickel aus <code>cat</code>, <code>sed</code>, <code>grep</code> und co verwendet, sondern nur kate, den KDE Advanced Editor.</p>]]></description><content:encoded><![CDATA[<p>Habe heute für die über 300 Blogbeiträge, die ich nach <del>fotos.natenom.com</del> verschoben hatte, Weiterleitungen eingerichtet.</p>
<p>Als Basis dafür habe ich die Sitemap des Foto-Blogs verwendet.</p>
<p>Zu meinem Erstaunen habe ich dieses Mal nicht irgend ein Gefrickel aus <code>cat</code>, <code>sed</code>, <code>grep</code> und co verwendet, sondern nur kate, den KDE Advanced Editor.</p>
<p>Zuerst rief ich die sitemap.xml in Firefox auf, weil der Browser die Datei so anzeigt, dass nicht alles in einer Zeile ist.</p>
<p>Das habe ich dann in ein neues Dokument in kate eingefügt. Dann ging es weiter mit:</p>
<ul>
<li>Manuell alle Zeilen gelöscht, die nicht für einen Blogbeitrag standen, z. B. <code>.../categories/...</code></li>
<li>Alle Vorkommen von <code>&lt;loc&gt;</code> und <code>&lt;/loc&gt;</code> entfernt und das sah dann so aus:</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-text" data-lang="text"><span style="display:flex;"><span>…
</span></span><span style="display:flex;"><span>https://fotos.natenom.com/2022/05/der-tag-23-05-2022/
</span></span><span style="display:flex;"><span>https://fotos.natenom.com/2022/05/flugtier-beim-abbremsen/
</span></span><span style="display:flex;"><span>https://fotos.natenom.com/2022/05/fotos-der-letzten-tage-2/
</span></span><span style="display:flex;"><span>https://fotos.natenom.com/2022/05/fotos-der-tour-am-14-05-2022-fotorahmen-und-selfie/
</span></span><span style="display:flex;"><span>https://fotos.natenom.com/2022/05/fotos-der-letzten-tage/
</span></span><span style="display:flex;"><span>…
</span></span></code></pre></div><ul>
<li>Mit &ldquo;Suchen und Ersetzen&rdquo; im Modus &ldquo;Regular Expression&rdquo; nach <code>^</code> gesucht (Anfang der Zeile) und durch ein Leerzeichen ersetzt, sodass am Anfang jeder Zeile ein Leerzeichen steht.</li>
<li>Mit &ldquo;Block selection mode&rdquo; alles ab dem Ende der Domain bis zum Ende jeder Zeile markiert, z. B. <code>/2022/05/fotos-der-tour-am-14-05-2022-fotorahmen-und-selfie/</code>.</li>
</ul>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2023/01/weiterleitungen-fuer-neuen-foto-blog/2023-01-12-kate-block-selection-mode.webp" />
			         <img alt="Screenshot vom Block selection mode in Kate." src="/2023/01/weiterleitungen-fuer-neuen-foto-blog/2023-01-12-kate-block-selection-mode.webp" title="" width="753" height="96" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>
<ul>
<li>Weiter im &ldquo;Block selection mode&rdquo; in die erste Zeile in die erste Spalte geklickt und die Auswahl eingefügt. Es wird automatisch jede Zeile passend eingefügt.</li>
<li>Den &ldquo;Block selection mode&rdquo; wieder deaktiviert.</li>
<li>Mit &ldquo;Suchen und Ersetzen&rdquo; im Modus &ldquo;Regular Expression&rdquo; nach <code>/$</code> gesucht und durch <code>/ redirect;</code> ersetzt.</li>
<li>Um an den Anfang der Zeile noch das notwendige <code>rewrite</code> einzufügen, mit &ldquo;Suchen und Ersetzen&rdquo; nach <code>^/</code> im Modus &ldquo;Regular Expression&rdquo; suchen und mit <code>rewrite /</code> ersetzen.</li>
</ul>
<p>Im Ergebnis sieht die Textdatei nun so 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-nginx" data-lang="nginx"><span style="display:flex;"><span><span style="color:#66d9ef">…</span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">rewrite</span> <span style="color:#e6db74">/2022/05/der-tag-23-05-2022/</span> <span style="color:#e6db74">https://fotos.natenom.com/2022/05/der-tag-23-05-2022/</span> <span style="color:#e6db74">redirect</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">rewrite</span> <span style="color:#e6db74">/2022/05/flugtier-beim-abbremsen/</span> <span style="color:#e6db74">https://fotos.natenom.com/2022/05/flugtier-beim-abbremsen/</span> <span style="color:#e6db74">redirect</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">rewrite</span> <span style="color:#e6db74">/2022/05/fotos-der-letzten-tage-2/</span> <span style="color:#e6db74">https://fotos.natenom.com/2022/05/fotos-der-letzten-tage-2/</span> <span style="color:#e6db74">redirect</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">rewrite</span> <span style="color:#e6db74">/2022/05/fotos-der-tour-am-14-05-2022-fotorahmen-und-selfie/</span> <span style="color:#e6db74">https://fotos.natenom.com/2022/05/fotos-der-tour-am-14-05-2022-fotorahmen-und-selfie/</span> <span style="color:#e6db74">redirect</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">rewrite</span> <span style="color:#e6db74">/2022/05/fotos-der-letzten-tage/</span> <span style="color:#e6db74">https://fotos.natenom.com/2022/05/fotos-der-letzten-tage/</span> <span style="color:#e6db74">redirect</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">…</span>
</span></span></code></pre></div><div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content">Ich habe erst einmal <code>redirect</code> verwendet, was dem HTTP Status Code 302 entspricht, da ich noch nicht sicher bin, ob alle verschobenen Beiträge auch dort bleiben. Sobald das fest steht, werde ich das durch <code>permanent</code> ersetzen, das dem Status Code 301 entspricht.</div>
</div>


<p>Insgesamt habe ich auf diese Weise 369 Weiterleitungen eingerichtet.</p>
<p>Diese 369 Zeilen habe ich in eine eigene Datei eingefügt und mittels <code>include</code> an die passende Stelle in der Nginx-Konfiguration des Blogs eingefügt.</p>
<p>Dann einmal kurz getestet, ob die Syntax passt mit:</p>
<p><code>nginx -t</code></p>
<p>Und den Webserver neugestartet, da alles okay war.</p>
<p>Fertig. 😊</p>]]></content:encoded></item><item><title>Wechsel von Kate zu VSCodium für Markdown</title><link>https://natenom.de/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/</link><pubDate>Sun, 11 Sep 2022 17:01:07 +0200</pubDate><guid>https://natenom.de/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/</guid><description><![CDATA[<p>In dem Zeitraum, als ich meinen Blog und mein Wiki auf Hugo umgestellt hatte, suchte ich lange nach einem guten Editor für Markdown und <a  href="/2022/02/suche-nach-editor-fuers-schreiben-markdown/">probierte viele Editoren aus</a> und bin letztlich beim bis dahin sonst immer verwendeten <a  href="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/">Editor Kate</a> geblieben. Denn die meisten getesteten Editoren hatten keine Snippets-Funktion und andere Editoren waren mir zu überladen (z. B. solche, die auf <a  class='urlextern'  href="https://www.electronjs.org/">Electron</a> basieren).</p>
<p>Doch nach mehreren Monaten und vielen geschriebenen Blogbeiträgen fehlen mir ein paar Funktionen in Kate, die Zeit und Nerven fressen oder umständliche &ldquo;Lösungen&rdquo; brauchen.</p>
<p>Was mir in Kate besonders fehlt:</p>
<ul>
<li>Live-Vorschau (wenn auch nicht alle Shortcodes gerendert werden können).</li>
<li>Ordentlich funktionierende Snippets mit Zusatzfunktionen (die in Kate sind nur rudimentär und zudem buggy).</li>
<li>Inhaltsverzeichnis mit der Möglichkeit, zu einem Eintrag zu springen.</li>
<li>Distraction free writing (oder zumindest einigermaßen ordentliche Vorschau). Hierfür habe ich in VSCodium noch keine Lösung gefunden.</li>
</ul>]]></description><content:encoded><![CDATA[<p>In dem Zeitraum, als ich meinen Blog und mein Wiki auf Hugo umgestellt hatte, suchte ich lange nach einem guten Editor für Markdown und <a  href="/2022/02/suche-nach-editor-fuers-schreiben-markdown/">probierte viele Editoren aus</a> und bin letztlich beim bis dahin sonst immer verwendeten <a  href="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/">Editor Kate</a> geblieben. Denn die meisten getesteten Editoren hatten keine Snippets-Funktion und andere Editoren waren mir zu überladen (z. B. solche, die auf <a  class='urlextern'  href="https://www.electronjs.org/">Electron</a> basieren).</p>
<p>Doch nach mehreren Monaten und vielen geschriebenen Blogbeiträgen fehlen mir ein paar Funktionen in Kate, die Zeit und Nerven fressen oder umständliche &ldquo;Lösungen&rdquo; brauchen.</p>
<p>Was mir in Kate besonders fehlt:</p>
<ul>
<li>Live-Vorschau (wenn auch nicht alle Shortcodes gerendert werden können).</li>
<li>Ordentlich funktionierende Snippets mit Zusatzfunktionen (die in Kate sind nur rudimentär und zudem buggy).</li>
<li>Inhaltsverzeichnis mit der Möglichkeit, zu einem Eintrag zu springen.</li>
<li>Distraction free writing (oder zumindest einigermaßen ordentliche Vorschau). Hierfür habe ich in VSCodium noch keine Lösung gefunden.</li>
</ul>
<p>Ich probierte einige der bereits getesteten Editoren noch einmal aus und am besten gefiel mir MarkText, doch das kann leider keine Snippets.</p>
<p>Deshalb habe ich mich für <a  class='urlextern'  href="https://vscodium.com/">VSCodium</a> entschieden, einer etwas freieren Variante von <a  class='urlextern'  href="https://code.visualstudio.com/">Visual Studio Code</a>. Die basiert zwar auf Electron, aber ich jetzt bereit, diesen Kompromiss einzugehen, um dafür viele schöne Funktionen zu bekommen.</p>
<p>In VSCodium gibt es – im Unterschied zu Kate – einige Funktionen, die ich folgend beschreibe.</p>
<div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content"><p>Eine ältere Liste nützlicher Erweiterungen speziell für Hugo <a  class='urlextern'  href="https://gohugo.io/tools/editors/#visual-studio-code">gibt es auf der Hugo-Projektseite</a>.</p>
<p>Und <a  class='urlextern'  href="https://code.visualstudio.com/docs/languages/markdown">hier</a> ist die Dokumentation für VSCodium für den Umgang mit Markdown.</p>
</div>
</div>



<h2 id="erweiterungen" data-numberify>Erweiterungen<a class="anchor ms-1" href="#erweiterungen"></a></h2>
<p>Für VSCodium gibt es extrem viele Erweiterungen (die ich bisher nicht benötige, aber vielleicht finde ich doch noch hilfreiche Dinge).</p>
<p>Für Kate gibt es Plugins, aber nicht annähernd so viele.</p>

<h2 id="live-vorschau" data-numberify>Live-Vorschau<a class="anchor ms-1" href="#live-vorschau"></a></h2>
<p>An der Live-Vorschau gefällt mir besonders, dass</p>
<ul>
<li>sie automatisch mit scrollt.</li>
<li>es links immer einen Indikator gibt, der anzeige, in welcher Zeile der Cursor gerade ist.</li>
<li>man optional trotzdem unabhängig vom Code in der Vorschau scrollen kann, diese aber wieder synchron läuft, sobald man im Quelltext scrollt.</li>
<li>der Cursor bei einem Doppelklick auf einen Bereich in der Vorschau automatisch auf diese Zeile im Quelltext gesetzt wird.</li>
</ul>
<p>Die Vorschaufunktion gibt zwar nicht genau wieder, wie es später im Blog oder im Wiki aussehen wird, aber es ist ausreichend, sodass ich während des Schreibens den Hugo-Server gar nicht erst anwerfen muss, außer zum Schluss mal wegen Shortcodes, die nicht dargestellt werden, wie <code>figure</code>.</p>
<p>Die Vorschau öffent man mit der Tastenkombination <code>Ctrl + k</code> gefolgt von <code>v</code>.</p>

<h2 id="inhaltsverzeichnis" data-numberify>Inhaltsverzeichnis<a class="anchor ms-1" href="#inhaltsverzeichnis"></a></h2>
<p>Es gibt drei Möglichkeiten, ein Inhaltsverzeichnis des aktuellen Dokuments zu sehen:</p>
<ul>
<li>Mit der Tastenkombination <code>Strg + Shift + o</code> öffnet man das Inhaltsverzeichnis und kann zu einer bestimmten Überschrift springen.</li>
<li>Die aktuelle Überschrift wird auch immer oben in den <code>Breadcrumbs</code> angezeigt. Dort kann man drauf klicken und kann auch wieder zu den Bereichen springen.</li>
<li>In der Leiste links öffnet man den <code>Explorer</code> oder drück die Tastenkombination <code>Ctrl + Shift + e</code> und öffnet unten den Bereich <code>OUTLINE</code>. </p><figure class="image-caption"><picture><source type="webp" srcset="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-strg-shift-o.webp" />
			         <img alt="Screenshot mit dem Inhaltsverzeichnis" src="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-strg-shift-o.webp" title="" width="595" height="236" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</li>
</ul>

<h2 id="snippets" data-numberify>Snippets<a class="anchor ms-1" href="#snippets"></a></h2>
<p>In VSCodium kann man tolle Dinge mit Snippets machen, die ich teilweise auch schon vom Editor <a  class='urlextern'  href="https://micro-editor.github.io/">Micro</a> kenne.</p>
<p>Die Dokumentation für Snippets in VSCodium <a  class='urlextern'  href="https://code.visualstudio.com/docs/editor/userdefinedsnippets">gibt es hier</a>.</p>
<p>Hier einige der Möglichkeiten.</p>
<p>Eigene Snippets trägt man in eine selbst gewählte Datei ein, die man über <code>Ctrl + Shift + p</code> gefolgt von <code>Snippets: Configure User Snippets</code> definieren und öffnen kann.</p>

<h3 id="tabstops" data-numberify>Tabstops<a class="anchor ms-1" href="#tabstops"></a></h3>
<p>In Snippet kann man Positionen definieren, zu denen man nach dem Einfügen mit der <code>Tab</code>-Taste springen kann, sodass man notwendige Eingaben schneller erledigen kann, also mit den Cursor-Tasten zu navigieren. Das nutze ich z. B. in meinem <code>Front Matter</code>-Snippet.</p>

<h3 id="vorauswahl" data-numberify>Vorauswahl<a class="anchor ms-1" href="#vorauswahl"></a></h3>
<p>Hier bekommt man ein kleines Popup-Fenster und kann einen der Einträge auswählen:</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-snippet-auswahl.webp" />
			         <img alt="Screenshot des Popup-Fensters zur Auswahl der Einträge beim Einfügen eines Snippets." src="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-snippet-auswahl.webp" title="" width="602" height="129" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>
<p>Das Snippet dazu sieht so 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><span style="color:#e6db74">&#34;notice&#34;</span>: <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>		<span style="color:#e6db74">&#34;scope&#34;</span>: <span style="color:#e6db74">&#34;markdown&#34;</span>,
</span></span><span style="display:flex;"><span>		 <span style="color:#e6db74">&#34;prefix&#34;</span>: <span style="color:#e6db74">&#34;md-notice&#34;</span>,
</span></span><span style="display:flex;"><span>		 <span style="color:#e6db74">&#34;body&#34;</span>: <span style="color:#f92672">[</span>
</span></span><span style="display:flex;"><span>			<span style="color:#e6db74">&#34;{{&lt; notice </span><span style="color:#e6db74">${</span>1|hinweis,tipp,info,warnung,update|<span style="color:#e6db74">}</span><span style="color:#e6db74"> &gt;}}&#34;</span>,
</span></span><span style="display:flex;"><span>			<span style="color:#e6db74">&#34;</span>$0<span style="color:#e6db74">&#34;</span>,
</span></span><span style="display:flex;"><span>			<span style="color:#e6db74">&#34;{{&lt; /notice &gt;}}&#34;</span>
</span></span><span style="display:flex;"><span>		 <span style="color:#f92672">]</span>,
</span></span><span style="display:flex;"><span>		 <span style="color:#e6db74">&#34;description&#34;</span>: <span style="color:#e6db74">&#34;Notice, tip, info, …&#34;</span>
</span></span><span style="display:flex;"><span>	<span style="color:#f92672">}</span>
</span></span></code></pre></div>
<h3 id="snippets-auf-markierte-bereiche-anwenden" data-numberify>Snippets auf markierte Bereiche anwenden<a class="anchor ms-1" href="#snippets-auf-markierte-bereiche-anwenden"></a></h3>
<p>Um einen aktuell im Editor markieren Bereich innerhalb eines Snippets nutzen zu können, gibt es die Variable <code>${TM_SELECTED_TEXT}</code> und weitere (<a  class='urlextern'  href="https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables">siehe hier</a>). Diese Möglichkeit bietet sich an, wenn man z. B. nachträglich einen Bereich als Codeblock oder Zitat formatieren will.</p>
<p>Hat man so ein Snippet geschrieben, markiert man zuerst den benötigen Bereich, drückt <code>Alt + Leertaste</code>, und wählt anschließend das Snippet mit den Cursor-Tasten aus.</p>
<p>Seltsam wird es, wenn man den Eintrag nicht per Cursor-Taste auswählt, sondern, wie sonst auch, den Namen des Snippets tippt. Dann überschreibt man nämlich den markieren Bereich. Doch das macht nichts. Sobald man den passenden Eintrag ausgewählt hat und sofern das Snippet die genannte Variable nutzt, wird beim Bestätigen mit <code>Enter</code> das komplette Snippet inklusive dem überschrieben geglaubten Bereich eingefügt.</p>

<h2 id="datum-fürs-front-matter-direkt-statt-über-shell" data-numberify>Datum fürs Front Matter direkt statt über Shell<a class="anchor ms-1" href="#datum-fürs-front-matter-direkt-statt-über-shell"></a></h2>
<p>Beim Einfügen meines eigenen Snippets <code>frontmatter</code> ist jetzt direkt das aktuelle Datum enthalten. Bisher musste ich das immer erst über ein Shellkommando machen und dann ins <code>Front Matter</code> einfügen. Theoretisch ginge das auch mit Kate und JavaScript, aber das habe ich bisher nicht geschafft.</p>
<p>So sieht dann das <code>Front Matter</code> nach dem Einfügen 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-yaml" data-lang="yaml"><span style="display:flex;"><span>---
</span></span><span style="display:flex;"><span><span style="color:#f92672">title</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">slug</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">date</span>: <span style="color:#e6db74">2022-09-11T12:40:57</span><span style="color:#ae81ff">+02</span>:<span style="color:#ae81ff">00</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">draft</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">author</span>: <span style="color:#ae81ff">Natenom</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#description:</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">categories</span>:
</span></span><span style="display:flex;"><span>  -
</span></span><span style="display:flex;"><span><span style="color:#f92672">tags</span>:
</span></span><span style="display:flex;"><span>  -
</span></span><span style="display:flex;"><span>---
</span></span></code></pre></div><p>Und das ist das zugehörige Snippet:</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><span style="color:#e6db74">&#34;md-frontmatter&#34;</span>: <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>  <span style="color:#e6db74">&#34;scope&#34;</span>: <span style="color:#e6db74">&#34;markdown&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;prefix&#34;</span>: <span style="color:#e6db74">&#34;md&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;body&#34;</span>: <span style="color:#f92672">[</span>
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;---&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;title: </span>$1<span style="color:#e6db74">&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;slug: </span>$2<span style="color:#e6db74">&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;date: </span>$CURRENT_YEAR<span style="color:#e6db74">-</span>$CURRENT_MONTH<span style="color:#e6db74">-</span><span style="color:#e6db74">${</span>CURRENT_DATE<span style="color:#e6db74">}</span><span style="color:#e6db74">T</span><span style="color:#e6db74">${</span>CURRENT_HOUR<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span>$CURRENT_MINUTE<span style="color:#e6db74">:</span>$CURRENT_SECOND<span style="color:#e6db74">+02:00&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;draft: false&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;author: Natenom&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;#description: &#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;categories:&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;  - </span>$3<span style="color:#e6db74">&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;tags:&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;  - </span>$4<span style="color:#e6db74">&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;---&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">]</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;description&#34;</span>: <span style="color:#e6db74">&#34;Front Matter Blog&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div>
<h2 id="tastenkombinationen" data-numberify>Tastenkombinationen<a class="anchor ms-1" href="#tastenkombinationen"></a></h2>
<p>Eine <a  class='urlextern'  href="https://code.visualstudio.com/docs/getstarted/keybindings#_basic-editing">Liste der Tastenkombinationen</a> für VSCodium.</p>

<h2 id="merk-dir-was" data-numberify>Merk dir was<a class="anchor ms-1" href="#merk-dir-was"></a></h2>
<p>Besonders gut gefällt mir, dass man ein &ldquo;Verzeichnis&rdquo; mit <code>Ctrl + k</code> gefolgt von <code>Ctrl + o</code> öffnen kann und der Editor sich dafür dann die geöffneten Dateien und Ansichten merkt.</p>
<p>So kann ich zwischen Blog und Wiki sehr einfach wechseln und die bearbeiteten Dateien sind weiterhin geföffnet. Das erleichtert die Arbeit.</p>
<p>Alternativ nutzt man die Tastenkombination <code>Ctrl + r</code> und kann dann bisher geöffnete Dateien und oben genannte Verzeichnisse wieder öffnen. Hält man <code>Ctrl</code> dabei gedrückt, werden diese in einem neuen Fenster geöffnet.</p>
<p>Hier z. B. die Ansicht für die Arbeit im Wiki, wo gerade die Selfies vom kleinen Elefanten geöffnet sind:</p>
<p><a  href="2022-09-11-vscodium-mit-meinem-wiki-cover.webp"></p><figure class="image-caption"><picture>
                <source type="image/webp" srcset="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_816x0_resize_q95_h2_catmullrom_2.webp 816w, /2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_1632x0_resize_q95_h2_catmullrom_2.webp 1632w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px" />
                <img alt="Screenshot von VSCodium mit Navigationsbaum links, dem Quelltext der Selfie-Seite des kleinen Elefanten in der Mitte und der Live-Vorschau rechts." srcset="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_816x0_resize_q95_h2_catmullrom_2.webp 816w,/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_1632x0_resize_q95_h2_catmullrom_2.webp 1632w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px"
                     src="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover_hu3887bf5f54664a8d95251105ebf05eb0_205538_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="459" /></picture><figcaption></figcaption></figure><p>
</a></p>

<h2 id="meine-anpassungen-und-installierte-erweiterungen" data-numberify>Meine Anpassungen und installierte Erweiterungen<a class="anchor ms-1" href="#meine-anpassungen-und-installierte-erweiterungen"></a></h2>
<p>Ich habe ein paar kleine Anpassungen für VSCode, die ich hier aufliste, falls ich das irgendwann mal wieder brauche.</p>

<h3 id="weniger-ist-mehr" data-numberify>Weniger ist mehr<a class="anchor ms-1" href="#weniger-ist-mehr"></a></h3>
<p>Ich habe die &ldquo;Status bar&rdquo; (<code>View -&gt; Appearence -&gt; Status bar</code>) unten und die &ldquo;Menu bar&rdquo; (<code>View -&gt; Appearence -&gt; Menu bar</code>) oben ausgeblendet.</p>
<p>Falls man die &ldquo;Status Bar&rdquo; wieder benötigt, kann man sie mit <code>Ctrl + Shift + p</code> und der Eingabe von <code>View: Toggle Status Bar Visibility</code> oder Teilen davon wieder aktivieren.</p>
<p>Für die &ldquo;Menu bar&rdquo; gibt man <code>View: Toggle Menu bar</code> ein. Oder man drückt die <code>Alt</code>-Taste, dann erscheint die Menübar, wird direkt fokusiert, und verschwindet dann wieder, sobald man einen Eintrag gewählt hat oder erneut die <code>Alt</code>-Taste drückt.</p>

<h3 id="hervorhebung-der-aktuellen-zeile" data-numberify>Hervorhebung der aktuellen Zeile<a class="anchor ms-1" href="#hervorhebung-der-aktuellen-zeile"></a></h3>
<p>Die Hervorhebung der aktuellen Zeile gefällt mir bei VSCodium gar nicht, deshalb habe ich das so angepasst, wie ich es von Kate gewohnt bin.</p>
<p>Dazu öffnet man die Datei <code>settings.json</code> via <code>Strg + Shift + p</code> und der Eingabe von <code>Preferences: Open User Settings (JSON)</code> und trägt 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-json" data-lang="json"><span style="display:flex;"><span><span style="color:#e6db74">&#34;workbench.colorCustomizations&#34;</span><span style="color:#960050;background-color:#1e0010">:</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;[Default Dark+]&#34;</span>: {
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&#34;editor.lineHighlightBackground&#34;</span>: <span style="color:#e6db74">&#34;#4587de2a&#34;</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&#34;editor.lineHighlightBorder&#34;</span>: <span style="color:#e6db74">&#34;#4587de2a&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;[Default Light+]&#34;</span>: {
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&#34;editor.lineHighlightBackground&#34;</span>: <span style="color:#e6db74">&#34;#4587de2a&#34;</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&#34;editor.lineHighlightBorder&#34;</span>: <span style="color:#e6db74">&#34;#4587de2a&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Zeilenhervorhebung ohne Anpassung im Dark Theme mit kaum sichtbarer Umrandung:</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-zeilenhervorhebung-ohne-anpassung.webp" />
			         <img alt="Screenshot. Kaum sichtbare Umrandung der aktuellen Zeile." src="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-zeilenhervorhebung-ohne-anpassung.webp" title="" width="493" height="21" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>
<p>Und mit Anpassung:</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-zeilenhervorhebung-mit-anpassung.webp" />
			         <img alt="Screenshot. Blauer Hintergrund in der Zeile." src="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-zeilenhervorhebung-mit-anpassung.webp" title="" width="493" height="21" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>
<p>Damit zusätzlich auch noch die Zeilennummer hervorgehoben wird, fügt man hinzu:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span><span style="color:#e6db74">&#34;editor.renderLineHighlight&#34;</span><span style="color:#960050;background-color:#1e0010">:</span> <span style="color:#e6db74">&#34;all&#34;</span><span style="color:#960050;background-color:#1e0010">,</span>
</span></span></code></pre></div>
<h3 id="installierte-erweiterungen" data-numberify>Installierte Erweiterungen<a class="anchor ms-1" href="#installierte-erweiterungen"></a></h3>
<ul>
<li><code>streetsidesoftware.code-spell-checker-german</code> für Rechtschreibüberprüfung</li>
</ul>

<h2 id="fazit" data-numberify>Fazit<a class="anchor ms-1" href="#fazit"></a></h2>
<p>Ich habe diesen Blogbeitrag schon mit VSCodium geschrieben und währenddessen hier dokumentiert und ausprobiert.</p>
<p>Mein Fazit bisher ist, dass ich mich mit diesem Editor besser auf Inhalte fokussieren kann, da ich nicht ständig andere Tools benutzen muss. Wie z. B. eine Konsole für das aktuelle Datum und die Uhrzeit fürs Front-Matter, weil man auch Bilder (zumindest in der Markdown-Standard-Syntax) über den Dateiexplorer von VSCodium direkt einfügen kann.</p>
<p>Desweiteren brauche ich kein laufendes Hugo und keinen Browser, in dem die Vorschau angezeigt wird. Diese zeigt zwar genau das Ergebnis, wie es auch später online aussehen wird, aber das ist für meine Sachen meist nur zur Endkontrolle vor dem Veröffentlichen notwendig.</p>
<p>Ich kann mir vorstellen, dass man das Bauen mit Hugo auch noch in VSCodium einrichten könnte, aber ich mache das lieber extern. Ich brauche einen guten Editor zum Bearbeiten, aber keine eierlegende Wollmilchsau für alles zusammen.</p>]]></content:encoded><enclosure url="https://natenom.de/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/2022-09-11-vscodium-mit-meinem-wiki-cover.webp" length="205538" type="image/webp"/></item><item><title>Mein Workflow zum Schreiben von Blogbeiträgen (Hugo)</title><link>https://natenom.de/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/</link><pubDate>Sat, 19 Feb 2022 12:56:02 +0100</pubDate><guid>https://natenom.de/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/</guid><description><![CDATA[<div class="shortcode-notice update">
    <div class="shortcode-notice-title update">
        Update</div>
    <div class="notice-content">2022-09-11: Seit heute nutze ich VSChromium, <a  href="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/">siehe hier</a>.</div>
</div>


<p>Ich beschreibe hier, wie ich meine Blogbeiträge schreibe, welche Werkzeuge ich dafür benutze, zeige, wie das im Einzelnen aussieht, was man beachten sollte und so weiter.</p>
<p>Statt eine Anwendung für alles zu verwenden, wie das der Fall bei einigen auf Electron basierenden Editoren für Markdown ist, nutze ich mehrere Tools, von denen jedes eine Sache gut kann. Und ich bin damit auch zufrieden.</p>]]></description><content:encoded><![CDATA[<div class="shortcode-notice update">
    <div class="shortcode-notice-title update">
        Update</div>
    <div class="notice-content">2022-09-11: Seit heute nutze ich VSChromium, <a  href="/2022/09/wechsel-von-kate-zu-vscodium-fuer-markdown/">siehe hier</a>.</div>
</div>


<p>Ich beschreibe hier, wie ich meine Blogbeiträge schreibe, welche Werkzeuge ich dafür benutze, zeige, wie das im Einzelnen aussieht, was man beachten sollte und so weiter.</p>
<p>Statt eine Anwendung für alles zu verwenden, wie das der Fall bei einigen auf Electron basierenden Editoren für Markdown ist, nutze ich mehrere Tools, von denen jedes eine Sache gut kann. Und ich bin damit auch zufrieden.</p>
<h2 id="start-eines-blogbeitrags" data-numberify>Start eines Blogbeitrags<a class="anchor ms-1" href="#start-eines-blogbeitrags"></a></h2>
<p>Zuerst erstelle ich ein sogenanntes <code>Page Bundle</code>. Das ist ein Verzeichnis, in welchem sich alle für einen Blogbeitrag relevanten Daten befinden. Das mache ich mit Dolphin, dem Dateibrowser von KDE.</p>
<p>In diesem <code>Page Bundle</code> erstelle ich zunächst die Datei <code>index.md</code> und öffne sie mit Kate. Diese Datei enthält den gesamten Markdown Quelltext des Blogbeitrags.</p>
<p>Dazu kommen während des Schreibens optional beliebige weitere Dateien wie Fotos, Screenshots oder Videos, die aber auch in Unterverzeichnissen organisiert werden können.</p>
<p>Hier die Verzeichnisstruktur (das <code>Page Bundle</code>) zu Beginn des Blogbeitrags:</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>2022-02-fixme-arbeitsweise-blog-hugo
</span></span><span style="display:flex;"><span>└── index.md
</span></span></code></pre></div>
<h2 id="editor--kate" data-numberify>Editor – Kate<a class="anchor ms-1" href="#editor--kate"></a></h2>
<p>Zuerst füge ich einen selbst erstellen Text Snippet (siehe nächster Abschnitt) für das Front Matter in die geöffnete <code>index.md</code> ein, das in etwa so aussieht:</p>

<h2 id="hahahugoshortcode1215s1hbhb" data-numberify><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-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">title</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">slug</span>: <span style="color:#ae81ff">FIXME # Würde ich hier nichts eintragen, würde Hugo den Namen des Page Bundles</span> <span style="color:#75715e"># verwenden, also &#34;2022-02-fixme-arbeitsweise-blog-hugo&#34;.</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">date</span>: <span style="color:#ae81ff">FIXME</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">author</span>: <span style="color:#ae81ff">Natenom</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">description</span>: <span style="color:#ae81ff">FIXME</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">categories</span>:
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>- <span style="color:#f92672">tags</span>:
</span></span><span style="display:flex;"><span>- <span style="color:#75715e">***</span></span></span></code></pre></div><a class="anchor ms-1" href="#hahahugoshortcode1215s1hbhb"></a></h2>
<div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content">Man kann für diese ersten Schritte natürlich auch Archetypes und <code>hugo new -k […]</code> verwenden, welches das Verzeichnis und die Datei <code>index.md</code> automatisch erstellen würde. Aber ich mache das schneller manuell, als erst in die Shell zu wechseln.</div>
</div>
<div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content">Nach viel <a  href="/2022/02/suche-nach-editor-fuers-schreiben-markdown/">Ausprobieren mit verschiedenen Editoren</a> zum Schreiben von Markdown für meinen Blog habe ich mich entschieden, weiterhin den Editor Kate zu verwenden. Kate (KDE Advanced Editor) ist der vielseitige Standardeditor von KDE.</div>
</div>

<h3 id="text-snippets" data-numberify>Text Snippets<a class="anchor ms-1" href="#text-snippets"></a></h3>
<p>Seit ich Markdown für meinen Blog verwende, brauche ich immer wieder einen gewissen Satz von immer den selben Textbausteinen für Formatierungen, die Hugo nicht von Haus aus mitbringt und die als Shortcodes realisiert sind. Z. B. zum Einbinden von Bildern oder Videos oder für schöne Hinweis-Boxen. Dafür nutze ich Text Snippets.</p>
<p>Für <a  class='urlextern'  href="https://docs.kde.org/stable5/en/kate/kate/kate-application-plugin-snippets.html">Kate gibt es Text Snippets als Plugin</a> und man muss dieses aktivieren unter <code>Settings -&gt; Configure Kate -&gt; Plugins -&gt; Snippets Tool View</code>. Sofort erscheint rechts in der Seitenleiste <code>Snippets</code>. Klickt man dort drauf, werden bereits vordefinierte Snippets angezeigt. Diese habe ich gelöscht, da ich sie nicht benötige.</p>
<div class="shortcode-notice tip">
    <div class="shortcode-notice-title tip">
        Tip</div>
    <div class="notice-content">Man kann mit einem Rechtsklick auf den Eintrag <code>Snippets</code> diesen auch in eine andere Sidebar verschieben, nach links oder nach unten. Das geht auch mit allen anderen Einträgen.</div>
</div>
<p>Zuerst legt man ein eigenes Snippet Repository an. Wichtig hierbei ist die Angabe eines Namensraums (Namespace). Innerhalb diesem sind die Snippets später auswählbar. Unten kann man noch auswählen, ob die Snippets für alle oder nur für bestimmte Dateitypen nutzbar sind.</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-16-snippet-repo-in-kate.png" />
			         <img alt="Snippet Repository in Kate" src="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-16-snippet-repo-in-kate.png" title="Snippet Repository in Kate" width="500" height="335" loading="lazy" /></picture><figcaption>Snippet Repository in Kate</figcaption></figure><p>
</p>
<p>Hier die Liste meiner Snippets zum Schreiben von Blogbeiträgen:</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-16-meine-snippets-in-kate.png" />
			         <img alt="Meine Snippets in Kate" src="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-16-meine-snippets-in-kate.png" title="Meine Snippets in Kate" width="153" height="342" loading="lazy" /></picture><figcaption>Meine Snippets in Kate</figcaption></figure><p>
</p>
<p>Dabei bedeuten die Abkürzungen:</p>
<ul>
<li><code>bi</code> – builtin</li>
<li><code>sc</code> – shortcode</li>
<li><code>th</code> – theme (Für Shortcodes, die vom Theme bereitgestellt werden.)</li>
</ul>
<p>Einfügen kann man die Snippets, in dem man in Kate die Tastenkombination <code>Strg + Leertaste</code> drückt. Es erscheint ein kleines Overlay, in dem man mit den Cursortasten den passenden Eintrag auswählt:</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-16-meine-snippets-in-kate-overlay.png" />
			         <img alt="Meine Snippets in Kate – Overlay zum Einfügen" src="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-16-meine-snippets-in-kate-overlay.png" title="Meine Snippets in Kate – Overlay zum Einfügen" width="188" height="202" loading="lazy" /></picture><figcaption>Meine Snippets in Kate – Overlay zum Einfügen</figcaption></figure><p>
</p>
<div class="shortcode-notice warnung">
    <div class="shortcode-notice-title warnung">
        Warnung</div>
    <div class="notice-content">Das Einfügen von Snippets in Kate funktioniert bei mir nur korrekt, wenn der Cursor am Ende einer Zeile steht, da sonst die ersten Zeichen des Snippets fehlen.</div>
</div>

<h3 id="rechtschreibkorrektur" data-numberify>Rechtschreibkorrektur<a class="anchor ms-1" href="#rechtschreibkorrektur"></a></h3>
<p>Kate kann auch eine auf dem System installierte Rechtschreibkorrektur <a  class='urlextern'  href="https://docs.kde.org/trunk5/en/plasma-desktop/kcontrol/spellchecking/index.html">einbinden</a>. Ich habe mich für Hunspell entschieden (<code>apt install hunspell hunspell-de-de</code>).</p>
<p>Zusätzlich zu den Systemeinstellungen kann in KDE (<code>Systemsettings -&gt; Regional Settings -&gt; Spell Check</code>) lässt sich die zu überprüfende Sprache auch in Kate unten in der Leiste einstellen (de_DE steht da in meinem Screenshot).</p>

<h3 id="konsole--für-die-helferlein" data-numberify>Konsole – für die Helferlein<a class="anchor ms-1" href="#konsole--für-die-helferlein"></a></h3>
<p>Mit <code>F4</code> wird im Kate-Fenster eine Shell gestartet und man kann dort Dinge tun, wie z. B. meine Helferlein für Hugo nutzen. Dabei wird die Shell automatisch in dem Verzeichnis gestartet, in dem sich auch die bearbeitete Datei befindet.</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-17-konsole-innerhalb-von-kate.png" />
			         <img alt="Im Kate Editor wurde ein Temrinal geöffnet und zeigt eine Liste von Tags" src="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-17-konsole-innerhalb-von-kate.png" title="Eine in Kate geöffnete Konsole mit einem ausgeführten Kommando." width="753" height="346" loading="lazy" /></picture><figcaption>Eine in Kate geöffnete Konsole mit einem ausgeführten Kommando.</figcaption></figure><p>
</p>
<p>Man kann die Konsole ausblenden und später wieder einblenden (beides mit <code>F4</code>). Sie wird erst richtig geschlossen, wenn man sich dort ausloggt (<code>Strg + d</code> oder <code>exit</code>).</p>
<p>In dem Screenshot ist übrigens einer meiner <a  href="/2022/02/kategorien-und-tags-anzahl-vorkommen-hugo-anzeige-und-filter/">Helferlein für Hugo zu sehen, mit dem ich nach bereits verwendeten Tags suchen</a> kann.</p>

<h2 id="vorschau-hugo--browser" data-numberify>Vorschau (Hugo + Browser)<a class="anchor ms-1" href="#vorschau-hugo--browser"></a></h2>
<p>Für die Vorschau verwende ich einen im Hintergrund laufenden Hugo-Server und Konqueror, den Webbrowser von KDE.</p>
<div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content"><p>Es gibt zwar für Kate <a  class='urlextern'  href="https://docs.kde.org/trunk5/en/kate/kate/kate-application-plugin-preview.html">Document Preview Plugin</a>, das für verschiedene Sprachen eine Vorschau generiert. Diese scheint aber nur fürs Drucken gedacht zu sein, wird seitenweise dargestellt und sieht insgesamt nicht hilfreich aus.</p>
<p>Ich habe mir deshalb auch externe Tools angeschaut, die aus einer Markdown-Datei eine Vorschau rendern, z. B. <a  class='urlextern'  href="https://github.com/joeyespo/grip">grip</a>. Das Aussehen der gerenderten Dateien gefiel mir aber gar nicht.</p>
</div>
</div>

<h3 id="hugo-server-mit-eigenem-verzeichnis-nur-für-entwürfe" data-numberify>Hugo: Server mit eigenem Verzeichnis nur für Entwürfe<a class="anchor ms-1" href="#hugo-server-mit-eigenem-verzeichnis-nur-für-entwürfe"></a></h3>
<p>Da das Rendern meines gesamten Blogs relativ lange dauert, nutze ich fürs Schreiben von Blogbeiträgen ein eigenes Content-Verzeichnis <code>/home/hugo-light/content</code>, das ich Hugo als Parameter übergebe:</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 -E -D -F -v -c /home/hugo-light/content/
</span></span></code></pre></div><ul>
<li><code>-E</code> rendert auch verfallene Beiträge (expired).</li>
<li><code>-D</code> rendert auch Entwürfe, die auf Entwurfsmodus eingestellt sind (tag <code>draft:</code>).</li>
<li><code>-F</code> rendert auch Beiträge, deren Datum in der Zukunft liegt.</li>
<li><code>-c</code> gibt das alternative Content-Verzeichnis an.</li>
</ul>
<p>Da in diesem Verzeichnis nur ein paar wenige Entwürfe liegen, ist natürlich auch die Zahl der Kategorien und Tags entsprechend klein.</p>
<p>Der Server von Hugo läuft die ganze Zeit im Hintergrund, merkt automatisch, wenn eine Seite geändert wurde (nachdem man sie in Kate gespeichert hat) und rendert dann die gesamte Webseite lokal neu. Der Webbrowser lädt bei Änderungen die Seite neu, sodass man stehts den aktuellen Stand sieht.</p>

<h3 id="browser-konqueror-zeigt-vorschau-an" data-numberify>Browser: Konqueror zeigt Vorschau an<a class="anchor ms-1" href="#browser-konqueror-zeigt-vorschau-an"></a></h3>
<p>Rechts neben Kate platziere ich in der benötigten Größe eine Instanz des KDE Browsers <a  class='urlextern'  href="https://apps.kde.org/konqueror/">Konqueror</a>, der mir die Webseite anzeigt und automatisch neu lädt, sobald Hugo im Hintergrund die Seite nach einer Änderung neu gerendert hat.</p>
<p></p><figure class="image-caption"><a href="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/2022-02-17-screenshot-bildschirm-kate-und-konqueror-dark.png"><picture>
                <source type="image/webp" srcset="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_6a197d5a847ee01402897712b93f4813.webp 360w,/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_0123d42b88f51d73b93f6fc62ffb0981.webp 500w,/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_685bb694291fe21d554fe35776a35a60.webp 816w, /2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_d235a8f30809872f534cd502d1a4ed21.webp 1632w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px" />
                <img alt="Links der Kate Editor und rechts der Browser mit der Vorschau des Blogbeitrags" srcset="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_6a197d5a847ee01402897712b93f4813.webp 360w, /2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_0123d42b88f51d73b93f6fc62ffb0981.webp 500w, /2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_685bb694291fe21d554fe35776a35a60.webp 816w,/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_d235a8f30809872f534cd502d1a4ed21.webp 1632w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px"
                     src="/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/images/_huc81aee8ec0c9abf7dad5ab9813f78e1c_581949_685bb694291fe21d554fe35776a35a60.webp" title="Konqueror zeigt die von Hugo stets aktuell gerenderte Version automatisch an." loading="lazy" width="816" height="459" /></picture></a><figcaption>Konqueror zeigt die von Hugo stets aktuell gerenderte Version automatisch an.</figcaption></figure><p>
</p>

<h2 id="schreiben-schreiben-schreiben-" data-numberify>Schreiben, schreiben, schreiben …<a class="anchor ms-1" href="#schreiben-schreiben-schreiben-"></a></h2>
<p>Jetzt geht es nur noch um die Inhalte. Text schreiben, Screenshots machen und Bilder z. B. mit dem figure Shortcode in den Blogbeitrag einbinden.</p>
<p>Während des Schreibens füge ich auch immer wieder neue Tags zum Front Matter hinzu, falls ich bestimmte Programme erwähne oder neue Themen beschreibe.</p>
<p>Als dieser Blogbeitrag hier fertig war, sah das <code>Page Bundle</code> so 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>2022-02-fixme-arbeitsweise-blog-hugo
</span></span><span style="display:flex;"><span>├── cover.png
</span></span><span style="display:flex;"><span>├── images
</span></span><span style="display:flex;"><span>│   ├── 2022-02-16-meine-snippets-in-kate-overlay.png
</span></span><span style="display:flex;"><span>│   ├── 2022-02-16-meine-snippets-in-kate.png
</span></span><span style="display:flex;"><span>│   ├── 2022-02-16-snippet-repo-in-kate.png
</span></span><span style="display:flex;"><span>│   ├── 2022-02-17-konsole-innerhalb-von-kate.png
</span></span><span style="display:flex;"><span>│   ├── 2022-02-17-screenshot-bildschirm-kate-und-konqueror-dark.png
</span></span><span style="display:flex;"><span>│   └── 2022-02-17-screenshot-bildschirm-kate-und-konqueror-light.png
</span></span><span style="display:flex;"><span>└── index.md
</span></span></code></pre></div><p>Das von mir verwendete Theme verwendet die Datei cover.png automatisch als Artikelbild, <a  href="/2022/02/hugo-theme-bootstrap-erstellt-automatisch-kleinere-versionen-von-artikelbildern/">Details dazu gibt es hier</a>.</p>

<h2 id="wenn-der-blogbeitrag-fertig-geschrieben-ist" data-numberify>Wenn der Blogbeitrag fertig geschrieben ist<a class="anchor ms-1" href="#wenn-der-blogbeitrag-fertig-geschrieben-ist"></a></h2>
<p>Sobald der Blogbeitrag fertig geschrieben ist, fehlen nur noch wenige Schritte bis zur Veröffentlichung:</p>
<ul>
<li>Im Front Matter <code>date:</code> an die aktuelle Zeit anpassen. Den String fürs aktuelle Datum und der Uhrzeit im passenden Format liefert mein Helferlein <a  href="/2022/02/ein-neues-helferlein-fuer-die-arbeit-mit-hugo/">hugo-date-now</a>.</li>
<li>Umbenennen des Verzeichnisnamens des <code>Page Bundle</code> (richtiges Datum statt fixme).</li>
<li>Verschieben des <code>Page Bundle</code> in das Content-Verzeichnis der Produktivumgebung des Blogs, in dem alle Beiträge enthalten sind.</li>
<li>In Git:
<ul>
<li><code>git add .</code></li>
<li><code>git commit -m &quot;Neuer Blogbeitrag Arbeitsweise mit Kate, Konqueror und Hugo&quot;</code></li>
</ul>
</li>
<li>Hugo den gesamten Blog rendern lassen: <code>hugo --cleanDestinationDir --minify</code></li>
<li>Alle Dateien per Rsync auf den Webserver hochladen.</li>
</ul>
<p>Ab dann ist der Blogbeitrag öffentlich sichtbar und erscheint auch im Feed.</p>

<h2 id="und-auf-dem-smartphone" data-numberify>Und auf dem Smartphone?<a class="anchor ms-1" href="#und-auf-dem-smartphone"></a></h2>
<p>Auf dem Smartphone kann ich auch Blogbeiträge schreiben, mit der App <a  class='urlextern'  href="https://f-droid.org/en/packages/net.gsantner.markor/">Markor</a>. Dank Nextcloud werden meine Entwürfe synchronisiert.</p>
<p>Um sie zu veröffentlichen, muss ich aber erst an den PC und dort die letzten Schritte ausführen.</p>

<h2 id="verbesserungspotential" data-numberify>Verbesserungspotential<a class="anchor ms-1" href="#verbesserungspotential"></a></h2>
<p>Da geht noch eine ganze Menge. Z. B. könnte man den Workflow so gestalten, dass ich neue Blogbeiträge nur mit git zu einen Repository pushen müsste, das dann einen Server dazu veranlasst, den Blog zu generieren und zu veröffentlichen.</p>
<p>Oder es ermöglichen, dass Blogbeiträge veröffentlicht werden, die man in einem Page Bundle an einen bestimmten Ort auf dem Server hochgeladen hat. Und noch Vieles mehr.</p>
<p>Dem Theme widme ich mich in den nächsten Tagen und werde berichten.</p>

<h2 id="tipps-und-hinweise" data-numberify>Tipps und Hinweise<a class="anchor ms-1" href="#tipps-und-hinweise"></a></h2>
<ul>
<li>Verzeichnisstrukturen kann man sehr schön mit dem Kommando <code>tree</code> ausgeben lassen, das es in jeder gängigen Linux-Distribution als Paket geben sollte. In Debian im Paket <code>tree</code>.</li>
<li>Ich habe mir auf eine Empfehlung hin auch <a  class='urlextern'  href="https://github.com/autokey/autokey">Autokey</a> angesehen. Das ist ein eigenes Tool zur Bereitstellung von Textsnippets. Es gefällt mir aber nicht, da es ein eigenes Fenster läuft, das zwar an der Position des Cursors geöffnet wird, jedoch den Editor überlagert und man die Maus benutzen muss, um das gewünschte Element auszuwählen. Ich mag die Maus jedoch nicht bedienen, wenn ich gerade schreibe. Auch gibt es noch z. B. <a  class='urlextern'  href="https://espanso.org/">Espanso</a>, das mir aber auch nicht zusagt, weil es die ganze Zeit läuft und alles auswertet, was man per Tastatur eingibt.</li>
<li>Es gibt auch die Möglichkeit, innerhalb von Snippets in Kate JavaScript zu verwenden, um Dinge zu tun. Hier ein Beispiel für ein <a  class='urlextern'  href="https://niko.maziachvili.nl/nerding/kate-snippets/">Snippet mit JavaScript</a>.</li>
<li>Eine Liste der verschiedenen Rechtschreibkorrekturen <a  class='urlextern'  href="https://wiki.archlinux.org/title/Language_checking">gibt es hier</a>.</li>
<li>Eine <a  class='urlextern'  href="https://www.markdownguide.org/tools/hugo/">Liste der Markdown-Formatierungen, die Hugo von Haus aus unterstützt</a>.</li>
</ul>]]></content:encoded><enclosure url="https://natenom.de/2022/02/workflow-zum-schreiben-von-blogbeitraegen-hugo/cover.png" length="583859" type="image/png"/></item><item><title>Ein neues Helferlein für die Arbeit mit Hugo</title><link>https://natenom.de/2022/02/ein-neues-helferlein-fuer-die-arbeit-mit-hugo/</link><pubDate>Wed, 09 Feb 2022 20:14:06 +0100</pubDate><guid>https://natenom.de/2022/02/ein-neues-helferlein-fuer-die-arbeit-mit-hugo/</guid><description><![CDATA[Bevor ich einen Blogbeitrag veröffentliche, möchte ich meist das aktuelle Datum mit Uhrzeit im Front Matter eintragen. Dieser Wert bestimmt, wann laut Blog der Beitrag veröffentlicht wurde. Den benötigten String erstellt mir ein Alias in der .bashrc:
alias hugo-date-now=&#39;date +&#34;%Y-%m-%dT%H:%M:%S%:z&#34; | xsel -i -b ; echo &#34;Check your clipboard :)&#34;&#39; Da man in meinem Editor Kate direkt eine Konsole starten kann, tue ich das, gebe hugo-date-now ein und als Ergebnis befindet sich der benötigte String mit aktuellem Datum und Uhrzeig in der Zwischenablage.]]></description><content:encoded><![CDATA[<p>Bevor ich einen Blogbeitrag veröffentliche, möchte ich meist das aktuelle Datum mit Uhrzeit im Front Matter eintragen. Dieser Wert bestimmt, wann laut Blog der Beitrag veröffentlicht wurde. Den benötigten String erstellt mir ein Alias in der .bashrc:</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>alias hugo-date-now<span style="color:#f92672">=</span><span style="color:#e6db74">&#39;date +&#34;%Y-%m-%dT%H:%M:%S%:z&#34; | xsel -i -b ; echo &#34;Check your clipboard :)&#34;&#39;</span></span></span></code></pre></div>
<p>Da man in meinem Editor Kate direkt eine Konsole starten kann, tue ich das, gebe <code>hugo-date-now</code> ein und als Ergebnis befindet sich der benötigte String mit aktuellem Datum und Uhrzeig in der Zwischenablage. Den kann ich dann im Front Matter eintragen, z. B. für diesen Blogbeitrag hier:</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-text" data-lang="text"><span style="display:flex;"><span>2022-02-09T20:14:06+01:00</span></span></code></pre></div>
]]></content:encoded></item></channel></rss>