• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Digging the digital

  • /Now
  • Nieuw? Start hier
    • Blogroll
    • Tag Index
  • WordPress en Indieweb
    • WordPress en het indieweb
    • Hoe gebruik je IndieAuth met WordPress
    • WordPress en webmentions
    • WordPress en Micropub
    • WordPress en de Post Kind plugin
  • Notities
  • Bookmarks
  • Likes

Hoe ik mijn eigen templates update

13 November 2018 by Frank Meeuwsen

Een kleine irritatie kan soms ineens uitbarsten in de gedachte “Ik ga het nú oplossen”. Dat gebeurde me vanavond terwijl ik de voorpagina van deze site bekeek. De blogsoftware Jekyll die ik gebruik, maakt bij het genereren van de pagina’s verschillende versies van de blogpost aan.

Er is een versie genaamd ‘page.content’ die de volledige inhoud van de blogpost laat zien. En Jekyll maakt een versie ‘page.excerpt’ die, je raadt het al, een samenvatting van de blogpost laat zien. De voorpagina van mijn site laat standaard een korte samenvatting zien van de blogpost. Die samenvatting kan ik zelf schrijven in de header, maar dat gebeurt niet altijd. Dan valt Jekyll terug naar het weergeven van de eerste paragraaf op de voorpagina.

Soms zijn mijn blogposts erg kort. Misschien maar één paragraaf. Maar in de template voor de voorpagina werd wel altijd een “Lees verder ” tekst getoond, zelfs als de blogpost maar één paragraaf lang was. Je merkt, mijn kleine irritaties kunnen uit allerlei hoeken komen. Ik wilde dat oplossen en vanavond is het me gelukt.

Excerpt en content vergelijken

Je zou denken dat er een simpele oplossing is: vergelijk de lengtes van page.excerpt en page.content. Als de een korter is dan de ander, dan weet je dat er een “Lees verder” link moet komen.

Was het maar zo simpel…

Al snel kwam ik er achter dat bij het samenstellen van de voorpagina, de daadwerkelijke content per blogpost nog niet is gerenderd. Omdat ik alles in de Markdown opmaaktaal schrijf, is de lengte van page.content dus vrijwel altijd langer dan page.excerpt, tenzij ik geen Markdown in de post gebruik en die kans is klein.

Hieronder zie je een screenshot van de vorige paragraaf zoals ik hem schrijf. Die twee underscores zijn Markdown en zorgen er voor dat de tekst schuingedrukt wordt in de uiteindelijke webpagina.

Tegelijk zorgen die twee extra karakters er voor dat de lengte van die paragraaf in page.content langer is dan dezelfde paragraaf in page.excerpt. Dat is vervelend, maar
gelukkig heeft de onderliggende taal van Jekyll, Liquid, een mooie oplossing. De filter “Markdownify” zorgt er voor dat ik per post op de voorpagina de hele post kan omzetten in een HTML versie. Ik doe dat met

{% assign fullContent = page.content | markdownify %}

De markdown code wordt nu een webpagina. Vervolgens kan ik de lengte van page.content en page.excerpt vergelijken.

{% if page.excerpt != fullContent %}

Als bovenstaande waar is zijn de twee ongelijk en is het nodig om een link te tonen naar de volledige post. Als ze gelijk zijn, dan is er dus geen verschil in de samenvatting en de volledige post en is het onzinnig om een “Lees verder” link te tonen.

Een kleine irritatie die misschien niemand ooit is opgevallen, maar voor nu wel is opgelost. Je kunt de gewijzigde code trouwens bekijken in de Gitlab repository. Net als de rest van de code voor deze site.

Filed Under: webtech Tagged With: blogging, Jekyll, liquid

Footer

Wat is dit?

Frank MeeuwsenDigging the Digital is de digital garden of commonplace book van Frank Meeuwsen. Onderwerpen variëren van indieweb tot nieuwsbrieven, bloggen, muziek en opvallende gebeurtenissen op het internet.

Meer Frank

Bloghelden - De definitieve geschiedenis van webloggend Nederland

On this Day

  • 2 years ago...
    • Huishoudelijke mededeling
    • Hoe we AI buiten het beeldscherm brengen
    • Volgens mij is Dave Winer in zijn een...
    • Hoera! Mijn collega en kneiter-van-ee...
    • Zelfcuratie. Bestaat dat woord eigenl...
  • 3 years ago...
    • Nu mijn Inoreader abonnement afloopt ...
    • Notes from a gopher:// site
  • 5 years ago...
    • OPEN S01E47 – Een nieuw jasje!
  • 6 years ago...
    • Bookmark: Apple wants to kill the ad industry.
  • 7 years ago...
    • 5 favoriete blogs, voor #blogpraat
  • 12 years ago...
    • Buffer – een transparant bedrijf
  • 16 years ago...
    • De toekomst van concertregistratie?
  • 21 years ago...
    • Live en direct in Glimmen City
    • Glenn! Glenn Glenn Glenn!
    • Weblogconferentie 2004
    • Ik ben zó slecht in stopstukjes schrijven…
  • 22 years ago...
    • All of the DJ's…
    • Ghe
    • I fucked Kelly
    • We doen mee!

Archives

Copyright © 2025 · DTD Genesis on Genesis Framework · WordPress · Log in