Grav: Weitere Optimierungen für mein Blog

09.07.2023 22:46 Uhr

Ich möchte ein paar der Sachen hier mal festhalten, die ich in den letzten Tagen umgestellt und weiterentwickelt hab. Ein bisschen für mich zur Dokumentation und evtl. inspiriert oder hilft es jemand, der Ärger mit Grav hat. Ich finde es zeigt vor allen Dingen auch ganz gut, dass solche Flat-File-CMS nicht unbedingt was für jede:n sind. Grade, wenn man z.B. von Wordpress kommt und derartige Funktionalitäten als selbstverständlich erachtet. Mag sein, dass es Pro-Themes oder kostenpflichtige Plugins für Grav gibt, die einem hier die Arbeit abnehmen. Anyway...

Vorbereiten der Artikel

Ich mach das zukünftig so, dass ich die Artikel an Ort und Stelle vorbereite mit einem Passwortschutz. Sie sind dann quasi schon veröffentlicht aber noch nicht für jeden zugänglich. Im RSS-Feed, der Startseite, Suche usw. landen sie noch nicht. Erst, wenn ich den Passwortschutz entferne und die entsprechenden Einstellungen setze oder lösche. Dazu gleich mehr. Bislang hab ich die Artikel auf einer versteckten Seite außerhalb des Blogs vorbereitet und dann umkopiert. Super nervig. Warum? Es gibt zwar ein Plugin für Previews von noch nicht veröffentlichten Seiten, dafür muss man aber die Sessions aktivieren und das will ich nicht, weil dann auch für ganz normale Besucher Cookies gespeichert werden.

Frontmatter sieht also jetzt im Einzelnen (was das angeht) so aus während der Vorbereitung:

---
published: true
title: 'Grav: Weitere Optimierungen für mein Blog'
metadata:
    description: 'Übersichtlichere Artikel-Templates, weniger Arbeit'
comments:
    id: 
taxonomy:
    category:
        - webdev
    tag:
        - webdev
        - grav
        - blogging
        - cms
        - twig
    outlet:
        - xblog
        - xrss
media_order: hero.jpg
###
### DELETE WHEN PUBLISHING
###
pp_protect: '1'
pp_password_hash: 45cf7f553...
sitemap:
    ignore: true 
simplesearch:
    process: false    
---

Zur Freischaltung ändere ich dann Folgendes:

  • den Block unter dem Kommentar komplett rauslöschen. Dann greifen die Defaults, also der Passwortschutz wird entfernt, die Seite erscheint in der Suche und in der Sitemap.
  • Outlet auf blog und rss stellen (das "x" entfernen), dadurch erscheint der Artikel auf der Startseite, auf der Blog-Indexseite und im RSS-Feed
  • Nachdem ich bei Mastodon gepostet hab, die ID des Posts für die Kommentare eintragen

OG:IMG automatisch

In metadata.html.twig

{% raw %}

{% if not header.metadata['og:image'] %}    
    <meta name="og:image" property="og:image" 
    content="{{ uri.base ~ (page.media.images|first.cropZoom(1200, 630).url) }}" />
{% endif %}   

{% endraw %}

Also, wenn kein og:image gesetzt wurde, soll das erste Bild im Ordner der Seite zurechtgeschnitten und dafür genutzt werden. Damit das Hero-Image als erstes Bild und Vorlage erkannt wird, im Frontmatter Folgendes angeben

media_order: hero.jpg

In der gleichen Datei hab ich Defaults für andere Metadaten gesetzt, falls sie auf der Seite nicht gesetzt wurden.

Mehr zu Open-Graph. Das Bild z.B. ist in der Regel das, das beim Teilen in den Sozialen Medien angezeigt wird.

Anzahl Likes beim Titel

... und bei den Teaser-Kacheln z.B. auf der Blog-Indexseite. Fand das ne gute Idee.

Weitere Defaults

Einiges in die site.yaml verschoben, dann kann man es sich in den Pages selbst sparen und muss sich nicht bei jedem Artikel wieder fragen "Wie war das noch? muss ich das auch berücksichtigen?". system.yaml nochmal zu prüfen hat auch Sinn gemacht.

Next

  • hero anzeigen, wenn ein hero.jpg im Ordner der Seite liegt, sonst nicht.(1)
  • Ähnliches Handling für die Songs wie bei den Bildern.
  • Darkmode-Switch endlich mal verbessern

(1) Nachtrag vom 13.7.: Hab das für den kommenden Rückblick so gelöst erstmal. Das müsste dann noch ins Template und ob das mit dem Alttext im Frontmatter-Part so cool ist, weiß ich noch nicht.

Nachtrag vom 23.7.: Wenn man das ins template (partials/blog-item.html.twig) übernimmt, fehlt es im Feed. Außerdem hab ich gemerkt, dass auf der Blog-Index-Seite noch eine Abfrage gibt, die taxonomy.outlet nicht berücksichtigt und den neusten Blogbeitrag zeigt, auch wenn er noch passwortgeschützt ist (weil Datum der VÖ überschritten wurde).

hero_alt: 'Beitragsbild. Weiße und violette Hortensien in meinem Harten.'
---

{% if page.media['hero.jpg'] %}
{{ page.media['hero.jpg'].html(page.header.hero_alt, page.header.hero_alt, '')|raw }}
{% endif %}

Querverweise

  • Alle Artikel zu GRAV in diesem Blog
Letzte Änderung: 28.01.2024 15:34 Uhr
teilen mit Elk
Sascha
von
Antworten, Likes, Boosts.
« Vorheriger Artikel Nächster Artikel »