<?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>Open Graph on Natenoms Blog</title><link>https://natenom.de/tags/open-graph/</link><description>Recent content in Open Graph on Natenoms Blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright/><lastBuildDate>Tue, 03 May 2022 12:28:47 +0200</lastBuildDate><atom:link href="https://natenom.de/tags/open-graph/index.xml" rel="self" type="application/rss+xml"/><item><title>Auswirkungen der Dezentralität von Mastodon und Fediverse – Traffic und Last für Webserver</title><link>https://natenom.de/2022/05/auswirkungen-von-dezentralitaet-mastodon-fediverse-traffic-und-last-fuer-webserver/</link><pubDate>Tue, 03 May 2022 12:28:47 +0200</pubDate><guid>https://natenom.de/2022/05/auswirkungen-von-dezentralitaet-mastodon-fediverse-traffic-und-last-fuer-webserver/</guid><description><![CDATA[<p>Wenn man z. B. auf Twitter einen Blogbeitrag teilt, dann prüft der Twitter-Bot, ob es Meta-Angaben wie <code>twitter:image</code> und <code>twitter:description</code> im HTML-Quelltext des Blogbeitrags gibt, um anhand dieser Information das genannte Coverbild vom Server abzurufen und auf der eigenen Plattform mit Vorschaubild und Textauszug darzustellen.</p>
<p><a  class='urlextern'  href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards">Twitter Cards</a> nennt sich dieser Standard. Daneben gibt es noch den Standard &ldquo;<a  class='urlextern'  href="https://ogp.me/">Open Graph</a>&rdquo; (<code>og:image</code> und <code>og:description</code>), den Facebook verwendet, aber auch Mastodon und Friendica.</p>]]></description><content:encoded><![CDATA[<p>Wenn man z. B. auf Twitter einen Blogbeitrag teilt, dann prüft der Twitter-Bot, ob es Meta-Angaben wie <code>twitter:image</code> und <code>twitter:description</code> im HTML-Quelltext des Blogbeitrags gibt, um anhand dieser Information das genannte Coverbild vom Server abzurufen und auf der eigenen Plattform mit Vorschaubild und Textauszug darzustellen.</p>
<p><a  class='urlextern'  href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards">Twitter Cards</a> nennt sich dieser Standard. Daneben gibt es noch den Standard &ldquo;<a  class='urlextern'  href="https://ogp.me/">Open Graph</a>&rdquo; (<code>og:image</code> und <code>og:description</code>), den Facebook verwendet, aber auch Mastodon und Friendica.</p>
<p>Im Fall von Facebook und Twitter holt sich deren Bot das einmalig vom Webserver ab, auf dem der Blog ausgeliefert wird.</p>
<p>Und was passiert in einem Netzwerk aus hunderten und möglicherweise tausenden von Instanzen? Richtig, jede Instanz macht das selbe wie Twitter und Facebook.</p>

<h2 id="last-für-den-webserver" data-numberify>Last für den Webserver<a class="anchor ms-1" href="#last-für-den-webserver"></a></h2>
<p>Nachdem ich heute einen Blogbeitrag auf Mastodon verlinkt hatte, habe ich danach die Logs des Webservers ausgewertet mit dem Befehl:</p>
<pre><code>cat blog.log | cut -d'&quot;' -f 6 | grep -E -i &quot;friendica|mastodon&quot; | grep -v Bot | sort | uniq
</code></pre>
<p>Ergebnis:</p>
<pre><code>[…]
http.rb/5.0.4 (Mastodon/3.5.1; +https://floss.social/)
[…]
http.rb/5.0.4 (Mastodon/3.5.1; +https://freiburg.social/)
http.rb/5.0.4 (Mastodon/3.5.1; +https://graz.social/)
http.rb/5.0.4 (Mastodon/3.5.1; +https://hannover.social/)
[…]
http.rb/5.0.4 (Mastodon/3.5.1; +https://hessen.social/)
[…]
</code></pre>
<p>Insgesamt waren es 110 verschiedene Instanzen. Das bedeutet, dass 110 mal der Quelltext des Blogbeitrags und das Coverbild heruntergeladen wurden. Man sollte daher gut wählen, wie groß das Coverbild ist.</p>

<h2 id="skaliert-nicht-gut" data-numberify>Skaliert nicht gut<a class="anchor ms-1" href="#skaliert-nicht-gut"></a></h2>
<p>Ich habe einen relativ kleinen Account auf Mastodon mit um 680 Followern. Was aber, wenn jemand viele Tausend oder gar Millionen Follower hat, die auf tausenden verschiedenen Instanzen sind? Das skaliert dann vermutlich irgendwann nicht mehr sehr gut.</p>
<p>Angenommen, ein Coverbild wäre 1 MB groß und es würden 3000 Instanzen abrufen, dann hätte man nur für das Verlinken eines Blogbeitrags schon 3 GB Traffic verursacht. Dazu kommt, dass die Bots der Instanzen ziemlich zur selben Zeit alles abrufen. Ich habe das live im Log des Webservers verfolgt und das ballert da ordentlich durch.</p>

<h2 id="lösung" data-numberify>Lösung?<a class="anchor ms-1" href="#lösung"></a></h2>
<p>Eine Idee von jemandem auf Mastodon war, dass die Mastodon Instanz, auf dem man den Blogbeitrag zuerst teilt, selbst eine Vorschau und den Text dazu erstellt und die anderen Instanzen das dort abholen. Das würde die Last aber nur vom Webserver weg und hin zu der Instanz des Benutzers verschieben. Besser wäre es, wenn man das auf verschiedene Server verteilen könnte.</p>]]></content:encoded></item><item><title>Twitter Cards/Open Graph im Docsy-Theme für Hugo (in meinem neuen Wiki)</title><link>https://natenom.de/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/</link><pubDate>Sun, 10 Apr 2022 06:49:51 +0200</pubDate><guid>https://natenom.de/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/</guid><description>&lt;p>Ich habe mich heute wieder mal damit beschäftigt, weshalb Bilder nicht in die Metadaten für Twitter Cards bzw. Open Graph eingebunden werden, obwohl entsprechend konfiguriert.&lt;/p></description><content:encoded><![CDATA[<p>Ich habe mich heute wieder mal damit beschäftigt, weshalb Bilder nicht in die Metadaten für Twitter Cards bzw. Open Graph eingebunden werden, obwohl entsprechend konfiguriert.</p>
<h2 id="bisher-hat-es-nicht-funktioniert" data-numberify>Bisher hat es nicht funktioniert<a class="anchor ms-1" href="#bisher-hat-es-nicht-funktioniert"></a></h2>
<p>Als ich mich das <a  href="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/#twitter-cards-und-open-graph">letzte Mal damit beschäftigte</a>, fand ich nur gewisse Variablennamen und diese haben nicht dazu geführt, dass Bilder für Twitter Cards und/oder Open Graph hinterlegt wurden. Ich kann heute nicht mehr nachvollziehen, was ich damals gefunden hatte, die entsprechende Datei gibt es im aktuellen Theme gar nicht mehr. Beide damals gefundenen Variablen tun daher auch weiterhin nicht. Ich vermute, dass ich damals &ldquo;überarbeitet&rdquo; war und den Wald vor lauter Bäumen nicht mehr gesehen hatte.</p>

<h2 id="so-funktioniert-es" data-numberify>So funktioniert es<a class="anchor ms-1" href="#so-funktioniert-es"></a></h2>
<p>Heute hatte ich mehr Glück: Das Docsy-Theme verwendet keine eigene Implementierung dieser beiden Dinge sondern die interne von Hugo. In der Datei themes/docsy/layouts/partials/head.html steht in Zeile 26 bis 29:</p>
<pre><code>{{ template &quot;_internal/opengraph.html&quot; . -}}
{{ template &quot;_internal/schema.html&quot; . -}}
{{ template &quot;_internal/twitter_cards.html&quot; . -}}
</code></pre>
<p>Die Beschreibungen für diese internen Templates gibt es in der offiziellen Dokumentation, hier für <a  class='urlextern'  href="https://gohugo.io/templates/internal/#twitter-cards">Twitter Cards</a> und hier für <a  class='urlextern'  href="https://gohugo.io/templates/internal/#open-graph">Open Graph</a>.</p>
<p>Jetzt gibt es auch ein Vorschaubild, wenn man eine Wiki-Seite auf Mastodon, Twitter, Facebook oder einer anderen Website teilt.</p>

<h2 id="prioritäten" data-numberify>Prioritäten<a class="anchor ms-1" href="#prioritäten"></a></h2>
<p>Es funktioniert also genau so, wie auch in meinem Blog (bzw. im Blog wurde es mal vom Theme-Entwickler an das Verfahren in Hugo internals angepasst):</p>
<ul>
<li>Priorität 1 (höchste): Es wird das erste Bild verwendet, das im Front Matter im Parameter <code>images</code> definiert wird. Dabei wird das so angegebene Bild aber relativ zum Root-Verzeichnis der Website eingebunden und nicht relativ zum Page Bundle.</li>
<li>Priorität 2: Es wird das erste Bild verwendet, das im Namen den Substring <code>feature</code>, <code>cover</code> oder <code>thumbnail</code> enthält. Es können somit Bilder im aktuellen Page Bundle eingebunden werden und diese werden auch richtig verlinkt.</li>
<li>Priorität 3: Es wird das erste Bild verwendet, das in der Konfiguration der Website im Parameter <code>images</code> angegeben wird. (bei mir im Wiki ist dies aktuell <code>images = [&quot;/images/natenom-avatar.png&quot;]</code>.</li>
</ul>
<p>Ich verwende immer Priorität 2.</p>

<h2 id="ergebnis" data-numberify>Ergebnis<a class="anchor ms-1" href="#ergebnis"></a></h2>
<p>So sieht das dann z. B. auf Twitter aus:</p>
<p></p><figure class="image-caption"><picture><source type="webp" srcset="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-tweet-mit-link-zum-neuen-wiki-cover.webp" />
			         <img alt="Tweet mit eingebundenem Bild aus dem Wiki" src="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-tweet-mit-link-zum-neuen-wiki-cover.webp" title="" width="468" height="450" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>

<h2 id="beschreibung-nicht-automatisch" data-numberify>Beschreibung nicht automatisch<a class="anchor ms-1" href="#beschreibung-nicht-automatisch"></a></h2>
<p>Im Gegensatz zum Theme, das ich im <a  href="https://natenom.de/">Blog</a> verwende, wird im Wiki mit dem Theme Docsy immer die Beschreibung (<code>description</code>) &ldquo;Natenoms Wiki&rdquo; eingefügt, wenn keine solche im Front Matter definiert wurde. Im Blog wird in einem solchen Fall ein Ausschnitt (die ersten x Zeichen eines Blogbeitrags) verwendet.</p>
<p>Im Wiki muss ich das daher im Front Matter angeben, z. B. für den Bereich <a  href="https://wiki.natenom.de/docs/muellsammeln/">Müllsammeln</a> mit:</p>
<pre><code>---
title: Müll sammeln
tags:
- Plogging
- Müll
- Pforzheim
- Enzkreis
- Müllsammeln
- Neuhausen
import_status: done
description: &quot;Ich sammle Müll. Sowohl in kleinem Rahmen zwischendurch als auch in etwas größeren Rahmen mit [Fahrrad](/docs/fahrrad/meine_fahrraeder/mtb) und [Fahrradanhänger](/docs/fahrrad/fahrradanhaenger). Die 'kleine' Ausrüstung (Müllgreifer und Mülltüten) habe ich fast immer dabei, wenn ich mit dem [Fahrrad](/docs/fahrrad) unterwegs bin.&quot;
---
</code></pre>
<p>Diese Beschreibung wird auch automatisch auf der Seite oberhalb der Tags angezeigt. Dabei freut es mich sehr, dass man offenbar auch Shortcodes innerhalb des Front Matters benutzen kann, sodass ich hier einfach die ersten Sätze der Seite in die Beschreibung verschieben kann.</p>
<p>Die Verwendung von <code>&lt;!--more--&gt;</code> funktioniert leider nicht. Damit kann man in anderen Themes definieren, dass der Bereich vom Anfang des Beitrags/der Seite bis zu dieser Zeichenkette als Beschreibung verwendet werden soll.</p>
<p><a  class='urlextern'  href="https://gohugo.io/content-management/summaries/">Hier in der Dokumentation</a> von Hugo ist das mit der <code>Page Summery</code> erläutert.</p>
<p>So sieht es jetzt mit einer Beschreibung aus:
</p><figure class="image-caption"><a href="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki.webp"><picture>
                <source type="image/webp" srcset="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_816x0_resize_q95_h2_catmullrom_2.webp 816w, /2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_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="Seite im Wiki mit einer Beschreibung" srcset="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_816x0_resize_q95_h2_catmullrom_2.webp 816w,/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_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/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-wiki_hudcea60e6fcfd217ae859589cc63b9723_88588_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="409" /></picture></a><figcaption></figcaption></figure><p>
</p>
<p>Die Beschreibung wird auch, und das wusste ich bisher nicht, in der Liste der Unterseiten eines Bereichs eingefügt. Das gefällt mir.</p>
<p></p><figure class="image-caption"><a href="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten.webp"><picture>
                <source type="image/webp" srcset="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_360x0_resize_q95_h2_catmullrom_2.webp 360w,/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_500x0_resize_q95_h2_catmullrom_2.webp 500w,/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" />
                <img alt="Description in Seitenlisten" srcset="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_360x0_resize_q95_h2_catmullrom_2.webp 360w, /2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_500x0_resize_q95_h2_catmullrom_2.webp 500w, /2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_816x0_resize_q95_h2_catmullrom_2.webp 816w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"
                     src="/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-description-in-seitenlisten_hudf10d64b13e9bd3b02fbdbc11977662a_38494_816x0_resize_q95_h2_catmullrom_2.webp" title="" loading="lazy" width="816" height="352" /></picture></a><figcaption></figcaption></figure><p>
</p>]]></content:encoded><enclosure url="https://natenom.de/2022/04/twitter-cards-open-graph-docs-theme-hugo-in-meinem-neuen-wiki/2022-04-10-tweet-mit-link-zum-neuen-wiki-cover.webp" length="35056" type="image/webp"/></item><item><title>Umzug von DokuWiki nach Hugo – Teil 4 – Einrichten und fertig</title><link>https://natenom.de/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/</link><pubDate>Sun, 20 Mar 2022 15:09:47 +0100</pubDate><guid>https://natenom.de/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/</guid><description>&lt;p>Heute geht es weiter mit der Einrichtung meines neuen Wikis, das seit heute nachmittag &lt;a href="https://wiki.natenom.de/">bereits online ist&lt;/a>.&lt;/p></description><content:encoded><![CDATA[<p>Heute geht es weiter mit der Einrichtung meines neuen Wikis, das seit heute nachmittag <a  href="https://wiki.natenom.de/">bereits online ist</a>.</p>
<h2 id="zugriff-auf-informationen-von-git" data-numberify>Zugriff auf Informationen von Git<a class="anchor ms-1" href="#zugriff-auf-informationen-von-git"></a></h2>
<p>Das Theme <code>docsy</code>, das ich für mein neues Wiki verwende, zeigt auf Wunsch und mit Hilfe von Git Zusatzinformationen an.</p>
<p>Zur Aktivierung trägt man die folgende Zeile in den Hauptbereich der Konfiguration in der <code>config.toml</code> ein:</p>
<pre><code>enableGitInfo = true
</code></pre>
<p>Ich werde das für meinen Blog erst aktivieren, wenn es ein öffentliches Repo für mein Wiki gibt.</p>

<h3 id="letzte-bearbeitung-und-beschreibung" data-numberify>Letzte Bearbeitung und Beschreibung<a class="anchor ms-1" href="#letzte-bearbeitung-und-beschreibung"></a></h3>
<p>Wenn Git aktiviert ist, wird automatisch unter jeder Seite das Datum der letzten Bearbeitung angezeigt, dazu die Commit-ID und die Commit-Beschreibung.</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-19-screenshot-wiki.natenom.com-letzte-bearbeitung-git.png" />
			         <img alt="" src="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-19-screenshot-wiki.natenom.com-letzte-bearbeitung-git.png" title="" width="530" height="109" loading="lazy" /></picture><figcaption></figcaption></figure><p>
</p>

<h3 id="links-zum-git-repo" data-numberify>Links zum Git-Repo<a class="anchor ms-1" href="#links-zum-git-repo"></a></h3>
<p>Dann trägt man noch im Bereich <code>[params]</code> in der <code>config.toml</code> die Variable <code>github_repo = &quot;https://github.com/&lt;user&gt;/&lt;repo&gt;&quot;</code> ein.</p>
<p>Dann werden auch Links generiert, die auf den letzten Commit einer Seite verlinken.</p>
<div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content">Ich überlege noch, ob ich das Wiki in Zukunft in ein öffentliches Repo auf Github oder eine andere Plattform legen werde. Es könnte aber auch ein privates Repo sein, damit man zumindest Pull Requests und Issues erstellen könnte. Hat dazu jemand Erfahrungen, würde mich gerne dazu austauschen.</div>
</div>

<h2 id="feeds" data-numberify>Feeds<a class="anchor ms-1" href="#feeds"></a></h2>
<p>Man kann noch den Atom Feed für die Website aktivieren 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">outputs</span>]
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">section</span> = [ <span style="color:#e6db74">&#34;HTML&#34;</span>, <span style="color:#e6db74">&#34;RSS&#34;</span> ]</span></span></code></pre></div>
<div class="shortcode-notice warnung">
    <div class="shortcode-notice-title warnung">
        Warnung</div>
    <div class="notice-content"><p>Meine Seiten im Wiki haben bisher kein Datum im Front Matter und es wird leider nicht das letzte Änderungsdatum mit Git ausgelesen, sodass die Datumsangaben im Feed mit <code>&lt;pubDate&gt;Mon, 01 Jan 0001 00:00:00 +0000&lt;/pubDate&gt;</code> angegeben werden.</p>
<p>In der Sitemap sind dagegen valide Datumsangaben enthalten, die scheinbar von Git kommen. Ich werde mir das genauer anschauen und versuchen, das auch für den Feed so hinzubiegen.</p>
<p>Deshalb habe ich den Feed für mein Wiki noch nicht aktiviert.</p>
</div>
</div>

<h2 id="druckansicht" data-numberify>Druckansicht<a class="anchor ms-1" href="#druckansicht"></a></h2>
<p>Es gibt im Theme auch die Möglichkeit, eine Druckansicht hinzufügen (rechts oben), die dann z. B. den gesamten Hauptbereich <a  href="https://wiki.natenom.de/docs/fahrrad">Fahrrad</a> in einer einzigen Seite anzeigt. Das werde ich vielleicht später aktivieren.</p>
<p>Dazu muss man in der <code>config.toml</code> noch im Bereich <code>outputs</code> hinzufügen:</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">outputs</span>]
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">section</span> = [ <span style="color:#e6db74">&#34;HTML&#34;</span>, <span style="color:#e6db74">&#34;RSS&#34;</span>, <span style="color:#e6db74">&#34;print&#34;</span> ]</span></span></code></pre></div>
<p><a  class='urlextern'  href="https://www.docsy.dev/docs/adding-content/print/">Dokumentation</a></p>

<h2 id="startseite-meines-neuen-wikis" data-numberify>Startseite meines neuen Wikis<a class="anchor ms-1" href="#startseite-meines-neuen-wikis"></a></h2>
<p>Ich kann ja nix bei so Websachen, das weiß man ja. Deshalb versuche ich immer, das irgendwie zu nutzen, war mir das System vorgibt, wie zum Beispiel die Möglichkeit des Themes Docsy, ein Cover auf der Startseite zu nutzen. Dessen Beschreibung <a  class='urlextern'  href="https://www.docsy.dev/docs/adding-content/shortcodes/#blockscover">gibt es hier</a>.</p>
<p>Die Themenbereiche darunter wurden mit dem Shortcode <code>Card Pane</code> erstellt. Hier die <a  class='urlextern'  href="https://www.docsy.dev/docs/adding-content/shortcodes/#card-panes">Dokumentation dazu</a>.</p>
<p>Dafür ist die Datei <code>content/de/_index.md</code> zuständig. Dieser Inhalt wird immer angezeigt, wenn man auf das Document Root der Webseite geht (also <code>/</code>).</p>
<p>So sieht die Startseite aktuell aus:</p>
<p></p><figure class="image-caption"><a href="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite.png"><picture>
                <source type="image/webp" srcset="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_360x0_resize_q95_h2_catmullrom_3.webp 360w,/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_500x0_resize_q95_h2_catmullrom_3.webp 500w,/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_816x0_resize_q95_h2_catmullrom_3.webp 816w, /2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_1632x0_resize_q95_h2_catmullrom_3.webp 1632w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px" />
                <img alt="" srcset="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_360x0_resize_q95_h2_catmullrom_3.webp 360w, /2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_500x0_resize_q95_h2_catmullrom_3.webp 500w, /2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_816x0_resize_q95_h2_catmullrom_3.webp 816w,/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_1632x0_resize_q95_h2_catmullrom_3.webp 1632w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px"
                     src="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-wiki.natenom.com-startseite_huad83697db2d152a4d1314f008e655fdc_157723_816x0_resize_q95_h2_catmullrom_3.webp" title="" loading="lazy" width="816" height="425" /></picture></a><figcaption></figcaption></figure><p>
</p>
<div class="shortcode-notice hinweis">
    <div class="shortcode-notice-title hinweis">
        Hinweis</div>
    <div class="notice-content"><p>Per Voreinstellung landet man immer auf / des Wikis. Ich habe keine Möglichkeit gefunden, das zu ändern. Auch würde die Verlinkung des Namens des Wikis links oben gerne so ändern, dass auf <code>/docs</code> verlinkt wird.</p>
<p>Ich habe das erst einmal mit der Startseite gelöst.</p>
</div>
</div>
<div class="shortcode-notice tipp">
    <div class="shortcode-notice-title tipp">
        Tipp</div>
    <div class="notice-content">Es wäre zwar auch möglich, dass man <code>/docs</code> zum Document Root der Webseite macht, aber dadurch würde ich Flexibilität verlieren, die ich später vielleicht noch benutzen können möchte. (<a  href="/2022/03/umzug-dokuwiki-hugo-3-einrichtung/#kaskadierung--docsabc-vs-abc">Hier steht, wie man das machen könnte</a>).</div>
</div>

<h2 id="twitter-cards-und-open-graph" data-numberify>Twitter Cards und Open Graph<a class="anchor ms-1" href="#twitter-cards-und-open-graph"></a></h2>
<p><del>Über das Partial <code>docsy/assets/vendor/bootstrap/site/layouts/partials/social.html</code> werden Twitter Cards und Open Graph Metadaten im Docsy-Theme in eine Seite eingefügt. Dort sind auch <code>twitter:image</code> und <code>og:image</code> enthalten, z. B. für <code>twitter:image</code>:</del></p>
<pre><code>&lt;meta name=&quot;twitter:image&quot; content=&quot;{{ if .IsHome }}{{ .Site.Params.social_image_path | absURL }}{{ else }}{{ .Site.Params.social_logo_path | absURL }}{{ end }}&quot;&gt;
</code></pre>
<p><del>Für die Startseite des Wikis wird somit das Logo aus dem Bereich <code>params</code> in der Variable <code>social_image_path</code> verwendet und für alle anderen Seiten das aus der Variable <code>social_logo_path</code>im Front Matter der einzelnen Seite. Glaube ich. Es hat leider nicht funktioniert.</del></p>
<div class="shortcode-notice update">
    <div class="shortcode-notice-title update">
        Update</div>
    <div class="notice-content">10.04.2022: Ich habe mich heute erneut mit dem Theme beschäftigt und es funktioniert ganz anders. <a  href="/2022/04/docsy-theme-hugo-und-twitter-cards-open-graph/">Die Lösung ist in diesem Blogbeitrag beschrieben</a>.</div>
</div>



<h2 id="weiterleitungen" data-numberify>Weiterleitungen<a class="anchor ms-1" href="#weiterleitungen"></a></h2>
<p>Damit man auch über das alte Wiki noch zu den Inhalten des neuen Wikis kommt, habe ich alles entsprechend weitergeleitet.</p>
<p>Ich habe jeden Hauptbereich des alten wikis einzeln weitergeleitet mit:</p>
<pre><code>rewrite ^/android(.*)$ https://wiki.natenom.de/docs/android$1 redirect;
</code></pre>
<p>Somit kann ich links das Navigationsmenü im alten Wiki stehen lassen und man kommt auch bei Unterseiten im neuen Wiki an. Und auch Menschen, die auf irgend einer fremden Website auf einen Links zum alten Wiki klicken, landen im neuen Wiki.</p>
<div class="shortcode-notice tipp">
    <div class="shortcode-notice-title tipp">
        Tipp</div>
    <div class="notice-content"><p>Ein paar Bereiche habe ich im neuen Wiki umstrukturiert. So liegt z. B. die &ldquo;Radfahrer FAQ&rdquo; im neuen Wiki unterhalb von &ldquo;Fahrrad&rdquo; (<code>/fahrrad/faq/</code>), während sie im alten Wiki unterhalb von &ldquo;Mobilität&rdquo; (<code>/verkehr/projekte/radfahrer_faq/</code>) lag.</p>
<p>Doch auch in solchen Fällen kann man das einfach weiterleiten, da in der Konfiguration von Nginx immer die erste passende Weiterleitung gilt, auf die Nginx stößt. D. h. zuerst leitet man den kleinen, verschobenen Bereich um und dann erst den Rest:</p>
<pre><code>rewrite ^/verkehr/projekte/radfahrer_faq(.*)$ https://wiki.natenom.de/docs/fahrrad/faq$1 redirect;
rewrite ^/verkehr(.*)$ https://wiki.natenom.de/docs/mobilitaet$1 redirect;
</code></pre>
</div>
</div>

<h2 id="informationen-für-menschen--so-wichtig" data-numberify>Informationen für Menschen – So wichtig<a class="anchor ms-1" href="#informationen-für-menschen--so-wichtig"></a></h2>
<p>Für diejenigen Menschen, die in der Seitennavigation (links) im neuen Wiki die Themen vermissen, die nicht im neuen Wiki sind, habe ich für diese dort trotzdem Einträge erstellt. Klickt man diese an, bekommt man die Information, dass sie noch im alten Wiki zu finden sind.</p>
<p>Das betrifft die Bereiche <code>Minecraft</code>, <code>Mumble</code> und <code>Sauerbraten</code>.</p>
<p>Auf der Startseite des neuen Wikis sind diese Bereiche natürlich auch verlinkt.</p>

<h2 id="altes-wiki--keine-änderungen" data-numberify>Altes Wiki – &ldquo;keine Änderungen&rdquo;<a class="anchor ms-1" href="#altes-wiki--keine-änderungen"></a></h2>
<p>Das alte Wiki bleibt erst einmal so bestehen. Mit der Zeit werde ich dann vermutlich die weitergeleiteten Bereiche in der Seitennavigation ausblenden und vielleicht sogar ganz entfernen. Natürlich mit vorherigem Backup.</p>
<p>Dann könnte ich irgendwann einmal die alten Bereiche in eine statische Seite umwandeln und dann DokuWiki selbst entfernen. Dann bräuchte ich kein PHP mehr auf meinem Server.</p>

<h2 id="todo" data-numberify>Todo<a class="anchor ms-1" href="#todo"></a></h2>
<p>Von den <a  href="/2022/03/umzug-dokuwiki-hugo-3-einrichtung/#todo">Todos aus dem letzten Blogbeitrag</a> habe ich das Favicon umgesetzt. Wie das geht, <a  class='urlextern'  href="https://www.docsy.dev/docs/adding-content/iconsimages/#add-your-favicons">steht hier</a>.</p>
<p>Das mit der Nummerierung der Überschriften habe ich angefangen, aber es funktioniert bisher leider noch nicht.</p>
<p>Hinzu kommende Aufgaben:</p>
<ul>
<li>Alle Verlinkungen im Blog auf die umgezogenen Bereiche aufs neue Wiki umschreiben. Es gibt zwar Weiterleitungen, aber auf die will ich mich nicht dauerhaft verlassen.</li>
<li>Bilder für Twitter Cards und Open Graph <a  href="#twitter-cards-und-open-graph">siehe oben</a>.</li>
<li>Feed mit Änderungsdatum aus Git füttern.</li>
</ul>

<h2 id="passt-" data-numberify>Passt 🙂<a class="anchor ms-1" href="#passt-"></a></h2>
<p>Das passt so erst einmal für mich. Ich hatte damit extrem viel Arbeit in den letzten Tagen (und Wochen?) und bin froh, dass es jetzt fertig ist.</p>
<p>Und so sieht mein neues Wiki jetzt aus:</p>
<p></p><figure class="image-caption"><a href="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com.png"><picture>
                <source type="image/webp" srcset="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_360x0_resize_q95_h2_catmullrom_3.webp 360w,/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_500x0_resize_q95_h2_catmullrom_3.webp 500w,/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_816x0_resize_q95_h2_catmullrom_3.webp 816w, /2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_1632x0_resize_q95_h2_catmullrom_3.webp 1632w"
                                          sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px" />
                <img alt="Screenshot meines neuen Wikis" srcset="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_360x0_resize_q95_h2_catmullrom_3.webp 360w, /2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_500x0_resize_q95_h2_catmullrom_3.webp 500w, /2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_816x0_resize_q95_h2_catmullrom_3.webp 816w,/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_1632x0_resize_q95_h2_catmullrom_3.webp 1632w"
                     sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px,(min-width: 1200px) 1632px"
                     src="/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/images/2022-03-20-screenshot-des-wikis-wiki.natenom.com_hu85df17ad9a736ca4911be8d1093e9d26_475016_816x0_resize_q95_h2_catmullrom_3.webp" title="Screenshot meines neuen Wikis" loading="lazy" width="816" height="424" /></picture></a><figcaption>Screenshot meines neuen Wikis</figcaption></figure><p>
</p>]]></content:encoded><enclosure url="https://natenom.de/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/cover.png" length="157723" type="image/png"/></item><item><title>Twitter Cards, Open Graph und Artikelbilder im Hugo-Theme hugo-theme-bootstrap</title><link>https://natenom.de/2022/02/hugo-theme-bootstrap-twitter-open-graph-artikelbilder/</link><pubDate>Mon, 07 Feb 2022 10:41:13 +0100</pubDate><guid>https://natenom.de/2022/02/hugo-theme-bootstrap-twitter-open-graph-artikelbilder/</guid><description>Es gibt Neuerungen im Theme hugo-theme-bootstrap, das hier im Blog verwendet wird. Könnte interessant sein für Menschen, die das Theme auch verwenden.
Artikelbilder Vor dem Update Bisher wurde als Beitragsbild das erste Bild in der Liste der Bilder der Variable images: im Front Matter verwendet: images: - relativer-pfad/bild.jpg # Ergebnis: /blogbeitrag-titel/relativer-pfad/bild.jpg
Oder:
images: - /absoluter-pfad/bild.jpg # Ergebnis: /absoluter-pfad/bild.jpg Nach dem Update Seit dem Update hat sich das verändert. Relative Pfade sind nicht mehr relativ zum aktuellen Beitrag bzw.</description><content:encoded><![CDATA[<p>Es gibt Neuerungen im Theme <a  class='urlextern'  href="https://github.com/razonyang/hugo-theme-bootstrap/">hugo-theme-bootstrap</a>, das hier im Blog verwendet wird. Könnte interessant sein für Menschen, die das Theme auch verwenden.</p>

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

<h3 id="vor-dem-update" data-numberify>Vor dem Update<a class="anchor ms-1" href="#vor-dem-update"></a></h3>
<p>Bisher wurde als Beitragsbild das erste Bild in der Liste der Bilder der Variable <code>images:</code> im Front Matter verwendet:
<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">images</span>:
</span></span><span style="display:flex;"><span>  - <span style="color:#ae81ff">relativer-pfad/bild.jpg</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ergebnis: /blogbeitrag-titel/relativer-pfad/bild.jpg</span></span></span></code></pre></div></p>
<p>Oder:</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 style="color:#f92672">images</span>:
</span></span><span style="display:flex;"><span>  - <span style="color:#ae81ff">/absoluter-pfad/bild.jpg</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ergebnis: /absoluter-pfad/bild.jpg</span></span></span></code></pre></div>

<h3 id="nach-dem-update" data-numberify>Nach dem Update<a class="anchor ms-1" href="#nach-dem-update"></a></h3>
<p>Seit dem Update hat sich das <a  class='urlextern'  href="https://github.com/razonyang/hugo-theme-bootstrap/commit/c08bca72ebc43319d04f419c66f7f88e97755d97">verändert</a>. Relative Pfade sind nicht mehr relativ zum aktuellen Beitrag bzw. Page Bundle sondern immer relativ zum static-Verzeichnis der Website:</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 style="color:#f92672">images</span>:
</span></span><span style="display:flex;"><span>  - <span style="color:#ae81ff">relativer-pfad/bild.jpg</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ergebnis: /relativer-pfad/bild.jpg</span></span></span></code></pre></div>
<p>Dann gibt es noch die Neuerungen, dass fürs Artikelbild automatisch das erste gefundene Bild eines Page Bundles verwendet wird, wenn folgender Dateiname passt (in dieser Reihenfolge) UND KEINE Variable <code>images</code> im Front Matter definiert ist:</p>
<ul>
<li>*feature*</li>
<li>*cover*</li>
<li>*thumbnail*</li>
</ul>
<p>Hierbei sollte ein Bild verwendet werden, das in den Breiten von 180 Pixel und um 500 Pixel noch gut aussieht, da die Artikelbilder in der normalen Ansicht sehr klein und in der mobilen Ansicht sehr groß angezeigt werden.</p>
<p>Vielleicht könnte man hier noch einen Feature Request stellen, damit für das verwendete Bild automatisch die benötigten Größen von Hugo generiert werden. Technisch ist das möglich.</p>

<h2 id="twitter-card-und-open-graph" data-numberify>Twitter Card und Open Graph<a class="anchor ms-1" href="#twitter-card-und-open-graph"></a></h2>
<p>Für die Twitter Card und den Open Graph wird immer das Artikelbild verwendet. Gibt es kein Artikelbild, dann nutzen Twitter Card und Open Graph das in der <code>config.toml</code> eingestellte Bild der Variable <code>logo=</code>. Vor dem Update gab es in letzterem Fall gar kein Bild.</p>
<p>Die Lösung mit dem logo finde ich nicht gut. Denn normalerweise wird das Logo auf der Website oben nur in 30x30 Pixeln dargestellt, auf Twitter oder anderen Social-Media-Plattformen aber mit über 500 Pixeln. Auch hier wäre es meiner Ansicht nach möglich, automatisch die Größenvarianten des Logos von Hugo erstellen zu lassen.</p>
<p>Somit wurde die Handhabung im Theme an die Funktionsweise in Hugo selbst <a  class='urlextern'  href="https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/twitter_cards.html">angeglichen</a>.</p>
<p></p><figure class="image-caption"><picture><source type="png" srcset="/2022/02/hugo-theme-bootstrap-twitter-open-graph-artikelbilder/2022-02-07-beispiel-einer-twitter-card.png" />
			         <img alt="Beispiel einer Twitter Card" src="/2022/02/hugo-theme-bootstrap-twitter-open-graph-artikelbilder/2022-02-07-beispiel-einer-twitter-card.png" title="Beispiel einer Twitter Card" width="417" height="316" loading="lazy" /></picture><figcaption>Beispiel einer Twitter Card</figcaption></figure><p>
</p>
]]></content:encoded><enclosure url="https://natenom.de/2022/02/hugo-theme-bootstrap-twitter-open-graph-artikelbilder/cover.png" length="91714" type="image/png"/></item></channel></rss>