Fryboyter

Kommentarfunktion Isso unter Hugo deaktivieren

Ein Bekannter von mir nutzt für seine Internetseite ein selbst (schlecht) programmierte Lösung. Er hat sich nun selbst für eine Kombination aus Hugo und Isso entschieden. Allerdings stört es ihn, dass man die Kommentarfunktion nicht deaktivieren kann.

Daher hat er mich nach einer Alternative für Isso gefragt. Da ich aber keine Erfahrungen mit anderen Kommentarfunktionen habe, habe ich mir überlegt, wie man Isso trotzdem für einzelne Artikel deaktivieren kann. Was leichter als gedacht ist.

Isso bindet man normalerweise wie folgt ein.

<section id="isso-thread" data-title="Fryboyter.de um Suchfunktion erweitert"></section>
<noscript><p>Die Kommentarfunktion kann nur mit aktiviertem Javascript genutzt werden</p></noscript>

Damit wird die Eingabemaske aber immer angezeigt. Wie kann man also verhindern, dass diese bei bestimmten Artikeln nicht angezeigt wird? Die Lösung ist bei Hugo if else.

{{ if ne .Params.nocomments true }}
<section id="isso-thread" data-title="{{ .Title }}"></section>
<noscript><p>Die Kommentarfunktion kann nur mit aktiviertem Javascript genutzt werden</p></noscript>
{{ else }}
<p>Die Kommentarfunktion ist für diesen Artikel deaktiviert</p>
{{ end }}

Hiermit wird geprüft, ob nocomments nicht true ist. Wenn ja, wird die Eingabemaske von Isso angezeigt. Ist nocomments allerdings true, wird der Hinweis angezeigt, dass die Kommentarfunktion deaktiviert ist.

Soll nun bei einem bestimmten Artikel die Kommentarfunktion deaktiviert werden, erweitert man den Frontmatter-Bereich einfach entsprechend.

---
title: Kommentarfunktion Isso unter Hugo deaktivieren
date: 2019-07-06T20:12:06+0200
categories:
- OSBN
- Allgemein
tags:
- Hugo
- Isso
- Kommentarfunktion
nocomments: true
slug: kommentarfunktion-isso-unter-hugo-deaktivieren
---
Ein Bekannter von mir nutzt für seine Internetseite ein selbst (schlecht) programmierte Lösung. Er hat sich nun selbst...

Das war es auch schon. Was man auch noch machen könnte, wäre anhand von nocomments: true zu prüfen ob die Javascript-Datei von Isso überhaupt geladen werden soll oder nicht.

OSBN | Allgemein

Fryboyter.de um Suchfunktion erweitert

Fryboyter.de stellt für mich hauptsächlich eine persönliche Wissensdatenbank dar die ich Dritten zur Verfügung stelle. Seit ich die Seite auf Hugo umgestellt habe, habe ich festgestellt, dass ich eine Suchfunktion vermisse.

In der Dokumentation von Hugo sind zwar einige Lösungen genannt, aber diese sagen mir aus diversen Gründen nicht wirklich zu.

Schlussendlich habe ich mich nun dazu entschieden vorerst eine Suchfunktion im Footer einzubauen mit der man über die Suchmaschine DuckDuckGo die Seite durchsuchen kann. So wirklich glücklich bin ich damit zwar auch nicht aber es funktioniert zumindest und kommt ohne Javascript aus.

OSBN | Allgemein

Planetlinux

Vor einiger Zeit habe ich von einem OSBN-Mitglied die Domain planetlinux.de übernommen. Ideen waren damals genug vorhanden. Zum Beispiel eine Seite ähnlich Distrowatch auf der diverse Distributionen vorgestellt werden. Oder so etwas wie Linuxjourney. Nur eben in deutscher Sprache.

Was ist daraus geworden? Im Grunde nutze ich die Domain nur um dort diverse Dinge zu testen. Zum Beispiel den Umstieg von Wordpress auf Bolt CMS. Was vor allem daran liegt, dass ich zwar Ideen habe (ob diese gut sind sei mal dahin gestellt) aber diese technisch meist nicht umsetzen kann. Zumindest nicht alleine, da mir oft das nötigen Wissen fehlt.

Da ich die Domain aber weiterhin gut finde, möchte ich irgendetwas sinnvolles damit anstellen. Allerdings stellen sich mir zwei Fragen. Was? Und wer hat Interesse mitzuhelfen? Was den finanziellen Aspekt betrifft, wird die Domain über INWX verwaltet und ist auf meinem Überspace aufgeschaltet. Die hierbei entstehenden Kosten trage ich.

Auch wenn die sich der Domainname auf Linux bezieht, hätte ich kein Problem dies auch auf verwandte Themen wie Open Source auszuweiten. Was ich allerdings nicht anstrebe ist eine kommerzielle Nutzung wie das Schalten von Werbung oder Artikel die von Unternehmen finanziert werden. Hinsichtlich der verwendeten Technik bin ich ziemlich flexibel solange diese auf einem Uberspace läuft.

Lange Rede, kurzer Sinn. Wer hat Ideen und Lust an einem Hobby-Projekt mitzumachen?

OSBN | Allgemein

Hugo - Inhalt aus Sitemap entfernen

Google Search Console hat herumgemault, dass auf meiner Seite zwei Links durch die robots.txt gesperrt sind obwohl sie in der Sitemap auftauchen. Wie bekomme man diese nun aus der Sitemap heraus die Hugo automatisch erstellt?

Die Lösung ist eigentlich ganz einfach. Als erstes editiert man die betreffenden Artikel und erweitern die Metadaten um sitemap_exclude: true.

---
title: Geheimer Artikel
date: 2019-06-11T19:12:45+0200
sitemap_exclude: true
slug: geheimer-artikel
---

Nun muss noch das Template angepasst werden mit dem die Sitemap erzeugt wird. Hierfür erstellt man im Themeverzeichnis unter layouts/_default die Datei sitemap.xml und füllt diese mit folgendem Inhalt.

{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  {{ range .Data.Pages }}
  <url>
    <loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
    <lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
    <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
    <priority>{{ .Sitemap.Priority }}</priority>{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Lang }}"
                href="{{ .Permalink }}"
                />{{ end }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Lang }}"
                href="{{ .Permalink }}"
                />{{ end }}
  </url>
  {{ end }}
</urlset>

Dies entspricht erst einmal dem Standard-Template für die Sitemap. Nun ändert man Zeile 4 wie folgt ab.

{{ range .Data.Pages }}{{ if ne .Params.sitemap_exclude true }}

Abschließen erweitert man noch die Zeile 21 um ein weiteres {{ end }}.

{{ end }}{{ end }}

Wird nun die Seite neu erzeugt sollten alle Inhalte bei denen sitemap_exclude: true hinterlegt wurde nicht mehr in der Sitemap erscheinen.

Allgemein | OSBN

Manche Artikel werden nun mehrsprachig angeboten

In den letzten Jahren habe ich mir ab und zu überlegt, ob ich zumindest manche Artikel nicht zusätzlich auch auf Englisch veröffentliche. Bisher war mir allerdings die technische Umsetzung zu umständlich. Mit Hugo ist es allerdings schnell gemacht, wie ich heute festgestellt habe.

Als erstes erweitert man die Konfigurationsdatei config.toml um folgende Einträge.

DefaultContentLanguage = "de"

    [languages]
    [languages.de]
        languageName = "Deutsche Version"
        weight = 1
    [languages.en]
        languageName = "English version"
        weight = 2

Mit der ersten Zeile gibt man an, dass de die Standardsprache ist. Der Rest definiert die vorhandenen Sprachen, gibt Ihnen eine Bezeichnung und eine Gewichtung (umso niedriger umso wichtiger).

Nun erzeugt man einen neuen Artikel. Nennen wir die Datei einfach mal manche-artikel-nun-englisch.md. Nehmen wir nun einmal an, der Artikel ist wichtig genug, dass wir ihn nun auch auf Englisch veröffentlichen möchten. Also erzeugen wir einen weiteren Artikel und nennen die Datei manche-artikel-nun-englisch.en.md. Wie man sieht wurde der Titel um ein .en erweitert. Hugo kapiert nun automatisch, dass der Artikel mit .en die englische Version darstellt und die andere die deutsche Version.

Was aber, wenn nun jemand die deutschsprachige Version aufruft, aber kein Deutsch versteht? Hier müsste eine Art Umschalter vorhanden sein. Hierfür kann man zum Beispiel folgenden Code verwenden.

{{ if .IsTranslated }}
    {{ range .Translations }} | <a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a> {{ end}}
{{ end }}

Hiermit wird geprüft, ob der Artikel auch in einer anderen Sprache angeboten wird. Wenn ja wird auf die entsprechenden Versionen verlinkt. Wenn nicht, wird gar nichts angezeigt. Diesen Code habe ich auf fryboyter.de unter die Hauptüberschrift aller Artikel gepackt. Sollte dort nun bei einem Artikel der Link “English version” erscheinen, habe ich mir die Arbeit gemacht und den Artikel auch auf Englisch veröffentlicht. Aktuell wird man diese Verlinkung aber nur bei diesem Artikel finden. Nach und nach werden es aber mehr Artikel werden die ich auf Deutsch und Englisch anbiete (auch ältere).

OSBN | Allgemein